보고서 및 버튼 상자 참조친애하는 커뮤니티 여러분,
나는 당신이 이것을 도울 수 있기를 바랍니다. 아래 예제 스크립트는 테이블을 생성하고 프로파일러 플랫폼을 엽니다. 또한 보고서에 두 개의 컨트롤을 추가합니다. '켜기' 버튼의 기능은 확인란의 값을 1/true로 설정하는 것입니다. 컨트롤은 프로파일러 보고서 'PF'에 대한 참조를 사용하여 추가됩니다. 이제 스크립트를 두 번 연속으로 실행하면 문제가 발생합니다. 이렇게 하면 'PF' 참조가 최신 보고서를 참조하도록 덮어쓰게 됩니다. 이전 보고서에서 '켜기' 버튼을 사용하면 이제 새 보고서의 확인란 값이 설정됩니다. 물론 이것은 내가 원하는 행동이 아니다. 모든 보고서에 고유한 참조를 어떻게든 사용해야 할 것 같습니다. 누구든지 도와줄 수 있나요? 감사합니다.
Table 1 = New Table( "Table 1",
Add Rows( 1 ),
New Column( "p1", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [2] ) ),
New Column( "p2", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [3] ) ),
New Column( "model",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( :p1 ^ 2 + :p2 ^ 2 ),
Set Selected
),
Set Row States( [1] )
);
PF = Profiler(
Y( :model ),
Profiler(
1,
Term Value(
p1( 2, Min( 1.9 ), Max( 2.1 ), Lock( 0 ), Show( 1 ) ),
p2( 3, Min( 2.9 ), Max( 3.1 ), Lock( 0 ), Show( 1 ) )
)
)
);
Report( PF )["Prediction Profiler"] << Append(
NewButton = Button Box( "Turn On" );
//NewIndicator = Radio Box();
);
Report( PF )["Prediction Profiler"] << Append( CheckBox = Check Box( "Item 1" ) );
Report( PF )[Button Box( 1 )] << Set Script(
CheckBox << Set( 1 )
);
Re: 보고서 및 버튼 상자 참조그래서 이것이 트릭을 만들었습니다. 감사합니다.
Eval(
Substitute(
Expr(
Report( PF )["Prediction Profiler"] << Append( _NewButton_ = Button Box( "Turn On" ) );
Report( PF )["Prediction Profiler"] << Append( _CheckBox_ = Check Box( "Item 1" ) );
_NewButton_ << Set Script( _CheckBox_ << Set( 1 ) );
),
Expr( __NewButton__ ), Parse( "NewButton" || Char( counter ) ),
Expr( _CheckBox_ ), Parse( "CheckBox" || Char( counter ) )
)
);
Re: 보고서 및 버튼 상자 참조<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요 크레이지
감사합니다. 이 예의 확인란은 단지 동작을 설명하기 위한 것입니다. 내 '실제' 응용 프로그램에서 Button Box는 보고서에서 저널을 생성합니다. 따라서 문제는 버튼이 올바른 보고서 창을 참조하도록 하는 것이었습니다. 귀하의 솔루션은 나중에 도움이 될 수 있습니다. 감사합니다.
Re: 보고서 및 버튼 상자 참조귀하의 예제에는 버튼 상자의 다음 형제인 체크 상자가 있습니다. 이는 버튼 상자만 자신을 찾을 수 있는 경우 버튼 상자가 체크 상자를 찾는 것이 정말 쉽다는 것을 의미합니다.set 스크립트 대신 setFunction을 사용하면 가능합니다.아래에 굵은 텍스트가 있습니다.변수가 사라졌습니다.이제 버튼 상자가 "this"를 전달할 수 있는 익명 함수(JSL 변수에 할당되지 않음)가 생겼습니다."this"는 버튼 상자이고 "this"의 형제는 확인란입니다.PF 변수는 여전히 변경되었지만 필요한지 잘 모르겠습니다.버튼이 있는 플랫폼을 찾기 위해 함수가 <<부모 체인을 통해 크롤링하는 것이 가능합니다.
Table 1 = New Table( "Table 1",
Add Rows( 1 ),
New Column( "p1", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [2] ) ),
New Column( "p2", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [3] ) ),
New Column( "model",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( :p1 ^ 2 + :p2 ^ 2 ),
Set Selected
),
Set Row States( [1] )
);
PF = Profiler(
Y( :model ),
Profiler(
1,
Term Value(
p1( 2, Min( 1.9 ), Max( 2.1 ), Lock( 0 ), Show( 1 ) ),
p2( 3, Min( 2.9 ), Max( 3.1 ), Lock( 0 ), Show( 1 ) )
)
)
);
Report( PF )["Prediction Profiler"] << Append(
Button Box( "Turn On" );
//NewIndicator = Radio Box();
);
Report( PF )["Prediction Profiler"] << Append( Check Box( "Item 1" ) );
Report( PF )[Button Box( 1 )] << Set Function( Function( {this}, (this << sib) << Set( 1 ) ) );
Re: 보고서 및 버튼 상자 참조이러한 문제를 처리하는 방법은 대체를 사용하여 다양한 메모리 변수를 사용하여 다양한 개체에 대한 참조를 만드는 것입니다.
Names Default To Here( 1 );
// Create a counter that initializes only the first time it is run, so it increments for each execution
If( Is Empty( counter ) == 1,
counter = 0
);
counter = counter + 1;
Eval(
Substitute(
Expr(
Report( PF )["Prediction Profiler"] << Append(
__NewButton__ = Button Box( "Turn On" );
//NewIndicator = Radio Box();
)
),
Expr( __NewButton__ ), Parse( "NewButton" || Char( counter ) )
)
);
그러면 후속 실행마다 NewButton1, NewButton2 등이 생성됩니다.