関数を使用して、さまざまな条件に基づいて複数のプロットを作成しています。 時々、グラフを顧客に提示する際により適切に表示するために(極端な外れ値)行を除外する必要がある場合があります。昨日はフラグが1になる可能性がありますが、テスト条件にはTextbox(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." );
);