重做取消<<報告動作你好,
如果我在腳本中運行一些報告更改,然後在啟用 Autorecalc 的情況下運行排除某些行,
所有報告更改都會消失。
如何將所有報告更改插入到分發正文中,這樣它們就不會消失?
謝謝。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
距離=分佈(
自動重新計算( 1 ),
連續分佈(
分位數(0),
匯總統計(1),
列(:重量),
水平佈局( 1 ),
Ppk 能力標註(1),
能力分析(LSL(80),USL(140))
));
PpkValue = (dist << report)[OutlineBox("Long Term Sigma")][NumberColBox(1)][2];
PPKtb = 表格框(
String Col Box("參數", {"Ppk"}),
編號列框(“值”,{PpkValue})
);
(dist << report)[OutlineBox("Summary Statistics")] << Append(PPKtb);
(dist << report)[OutlineBox("Long Term Sigma")] << Delete;
回复:重做取消<<報告操作謝謝你!
“添加圖形腳本”對我來說很好用!回复:重做取消<<報告操作我的腳本旨在為您提供可能使用的方法的指針,希望它能提供足夠的洞察力。我希望我可以通過以下方式改進我的輸入:
我在之前的回復中沒有提到 2 種方法。我提到了 3 種方法,Filter Change Handler、RowState Handler 和 Add Graphics Script。鑑於您需要的細節,您可以選擇使用不同選項中的任何一種。我在下面提供了 2 個腳本,一個使用 RowState Handler,另一個使用 Add Graphics Script。
RowState Handler 與 Filter Change Handler 的實現非常相似。使用它,如果對數據表中的 RowState 列進行了任何更改,就會觸發更改。
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
f = Function( {a}, addit() );
rs = dt << Make RowState Handler( f );
addit();
添加圖形示例 i 更複雜。這主要是因為腳本編寫者必須確定需要比較哪些項目,然後觸發代碼運行。在下面的例子中,檢查均值或標準差是否發生變化會觸發代碼的運行。這可能還不夠,因為您的用戶可能正在改變各種事情……因此需要擴展或完全改變。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function( {},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
(dist << report)[framebox( 2 )] << add graphics script(
If(
theMean != ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1] | theSTD != ((dist
<< report)["Summary Statistics"][Number Col Box( 1 )] << get)[2],
addit()
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
);
addit();
我強烈建議您花時間閱讀腳本指南,並熟悉腳本索引。腳本指南中對 JSL 的概述提供了成為一名精通 JSL 程序員所需的基礎,腳本索引中所有對象和函數的示例對於編寫代碼都是非常寶貴的
回复:重做取消<<報告操作謝謝吉姆。
不幸的是,這個解決方案對我不利。
1.我不想添加本地數據過濾器
2. 當我運行您的腳本並更改本地數據過濾器中的選擇時,分佈重新運行而自定義報告沒有更改。
你的第二個解決方案的語法是什麼( Frame Box() 的圖形腳本)?
再次感謝。
回复:重做取消<<報告操作當您執行 Recalc 時,平台實際上會重新運行,因此您的所有後期修改也需要重新運行。一種方法是使用過濾器更改處理程序或行狀態處理程序,當檢測到過濾器或行狀態發生更改時,它們將運行代碼。也可以在分佈圖中的Frame Box()中添加Graphics Script,在圖形發生變化時觸發代碼的執行。下面的代碼使用 Make Filter Change Handler() 來完成工作
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
filter = dist << Local Data Filter(
Add Filter( columns( :age ) )
);
f = Function( {a}, addit() );
rs = filter << Make Filter Change Handler( f );
addit();
回复:重做取消<<報告操作謝謝。
它確實工作正常,但是當我排除一行時,所有報告更改都會消失。
“將引用更改為以下內容”是什麼意思?
請參閱所附圖片。
回复:重做取消<<報告操作我相信,您的語法有點偏差。更改對以下的引用,它工作正常
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
PpkValue = (dist << report)[Outline Box( "Long Term Sigma" )][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;