다른 조건에 따라 여러 플롯을 만드는 기능을 사용하고 있습니다. 고객에게 그래프를 제시 할 때 그래프를 더 잘 맞추기 위해 (최고의 특이 치) 행을 제외해야 할 때가 있습니다. 글로벌 플래그를 사용하여 해당 상자를 삭제 해야하는지 여부를 설정하려고했지만 어제 플래그가 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." );
);