我正在使用函數根據不同的條件創建多個圖。有時它要求我排除(極端異常值)行,以便在將圖表呈現給我們的客戶時更好地擬合圖表。我嘗試使用全局標誌來設置是否需要刪除該框,但我發現昨天有可能標誌將 = 1,但測試條件沒有文本框(5)。
文本框會自動獲取自己的幻燈片,因此我需要將其刪除。
任何幫助,將不勝感激
GraphPlot = Function(
{dt, Yaxis },
Eval(
Substitute(
Expr(
gb = dt << Graph Builder(
Invisible,
Where( dt:chnl == chan & dt:astate == attn & dt:pstate == phas ),
// Size( 1440, 1040 ),
show control panel( 0 ),
show legend( 0 ),
Subtitle Alignment( "Left" ),
Show Subtitle( 1 ),
Variables(
Y( Eval( Yaxis ) ),
X( :FREQ_GHz ),
Group X( :wafer_number ),
Overlay( :RowCol )
),
Elements( Smoother( X, Y, legend( 19 ), lambda( 0.0001 ) ) ),
)
),
Expr( plot ), plot,
Expr( chan ), chan,
Expr( attn ), attn,
Expr( phas ), phas,
Expr( mode ), mode,
Expr( tst ), tst
)
);
Report( gb )[Axisbox( 1 )] << Min( 7 ) << Inc( 1 ) << Add Ref Line( 8, "Solid", "Black", "m106", 1 ) << Add Ref Line( 17.5, "Solid", "Black", "m105", 1 ) << Label Row( Show Major Grid( 1 ) );
Report( gb )[Axisbox( 2 )] << Inc( 2 ) << Minor Ticks( 1 ) << Label Row( Show Major Grid( 1 ) );
(gb << Top Report)[Text Box( 1 )] << Delete;
// This may or may not happen on every condition
// I tried creating a flag when i actually exclude parts however
// The flag is global and not specific on a test condition
If( excludeFlag == 1, Report( gb )[Text Box( 5 )] << Delete );
Report( gb )[Framebox( 1 )] << Frame Size( 781, 655 );
Report( gb )[Outline Box( 1 )] << Set Title( Eval Insert( WaferListSQLString || " ^tst^" ) );
Report( gb )[Text Edit Box( 2 )] << Set Font Size( 15 ) << Set Font Style( "Bold" );
Report( gb )[Text Edit Box( 1 )] << Set Font Size( 25 ) << Set Font Style( "Bold" );
);我不確定你的問題是什麼。但是,如果您說當您檢測到 excludeFlag == 1 時有時 Text Box(5) 不存在並且導致問題,那麼您可以使用 Try() 函數解決該問題
If( excludeFlag == 1, Try( Report( gb )[Text Box( 5 )] << Delete) );
如果您不確定刪除是否會成功但會導致錯誤情況,您可以將其用作 Try() 函數的參數。 可能沒有任何文本框對像或可能有多個。 如果您找到第一個文本,我會檢查文本以確保它是您要刪除的文本。
Try(
text = (gb << Top Report)[Text Box( 1 )] << Get Text;
If( Contains( text, "what I am looking for" ),
(gb << Top Report)[Text Box( 1 )] << Delete;
),
Throw( "No text box found." );
);