JSL - 如何获得分析类型有没有一种简单的方法可以告诉我从JSL角度看什么类型的分析?我想知道大纲框是否是Oneway,Bivariate等。 我认为有一种简单的方法可以做到这一点,比如分析<<类名(但是没有用 - 只返回OutlineBox)。
我想根据任何给定窗口中的分析类型运行不同的代码。 这是假设我没有明确创建分析并知道它是什么。 我能想到的唯一方法就是使用下面的代码,但对我来说,它感觉非常玻璃化。 这是唯一的方法吗?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
analysis = dt << Fit Y by X(
Y( :weight ),
X( :height, :sex )
);
for(i=1, i<=nitems(analysis), i++,
if(contains(Log Capture(print(analysis[i])), "Oneway"),
Print("It's a Oneway"),
Print("It's not Oneway")
);
);
@Craige_Hales , @女士 , @Jeff_Perkinson
Re:JSL - 如何获得分析类型谢谢 @pmroz ,是的,我经常使用类似于你的char()函数,再次,不知道为什么我现在没有想到它。
XPATH功能看起来非常有用。 语法看起来并不太复杂,W3schools上有教程,所以这是一个加号。 https://www.w3schools.com/xml/xpath_intro.asp
使用XPATH我可以选择我想要的类型的报告。 超级有用!要不得不深入研究这一点。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
analysis = dt << Fit Y by X(
Y( :weight ),
X( :height, :sex )
);
OnewayReports = Current report()<< xpath("//OutlineBox[contains(@helpKey, 'Oneway Report')]/.");
oneway = OnewayReports[1];
oneway << Set Title("Test");Re:JSL - 如何获得分析类型对不起,我太快回答了,并没有真正理解这个问题。
在你的例子中的循环中炭(分析[I]) 会得到与之相同的结果
日志捕获(打印(分析[i]))。
对于更复杂的场景,xpath()也值得探索。例如,此代码示例返回当前报表中的字符串列表。
Current report()<< xpath("//OutlineBox[contains(@helpKey, 'Report')]/@helpKey");Re:JSL - 如何获得分析类型很高兴它有所帮助。 我一直在使用 CHAR() 函数将事物转换为文本以写入Oracle,以保存对话框状态。 特别是我把它用于列表。 请注意,反向处理需要解析。
a = {"xyz", "Hello", "World"};
b = char(a);
"{\!"xyz\!", \!"Hello\!", \!"World\!"}"
c = parse(b);
{"xyz", "Hello", "World"}
Re:JSL - 如何获得分析类型谢谢!显而易见的解决方案有时可以逃避你,我不确定我的想法在哪里。 我仍然希望box对象包含名称或类型参数。
Re:JSL - 如何获得分析类型如何将分析列表转换为char然后解析结果?
ca = char(analysis);
analysis_list = words(ca, "{}[], ");
{"Bivariate", "Oneway"}Re:JSL - 如何获得分析类型这似乎只是返回分析对象:
scriptObjs = analysis << get scriptable object;
print(scriptObjs);
print(analysis);
print(scriptObjs == analysis); //returns true
我仍然使用我的log capture()方法来删除scriptsObjs。
Re:JSL - 如何获得分析类型
analysis << get scriptable object;
返回分析列表