Références des rapports et des boîtes à boutonsChère communauté,
J'espère que vous pourrez nous aider. L'exemple de script ci-dessous crée une table et ouvre la plateforme du profileur. De plus, il ajoute deux contrôles au rapport. La fonctionnalité du bouton « Activer » consiste à définir la valeur de la case à cocher sur 1/true. Les contrôles sont ajoutés en utilisant une référence au rapport du profileur, « PF ». Désormais, le problème se pose lors de l’exécution du script deux fois de suite. En faisant cela, la référence « PF » sera écrasée pour faire référence au rapport le plus récent. Lorsque j'utilise le bouton « Activer » sur l'ancien rapport, il définit désormais la valeur de la case à cocher dans le nouveau rapport. Bien sûr, ce n’est pas le comportement que je souhaite. Je suppose que je dois en quelque sorte utiliser une référence unique pour chaque rapport. Quelqu'un peut-il m'aider ? Merci.
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 : Références des rapports et des boîtes à boutonsDonc ça a marché, merci.
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 : Références des rapports et des boîtes à boutons<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut Craige
Merci pour ça. La case à cocher dans cet exemple servait simplement à illustrer le comportement. Dans ma « vraie » application, la Button Box crée un journal à partir d’un rapport. Le problème était donc que le bouton fasse référence à la bonne fenêtre de rapport. Votre solution pourrait être utile une autre fois. Merci.
Re : Références des rapports et des boîtes à boutonsVotre exemple comporte une case à cocher qui est la prochaine sœur d'une boîte à boutons, ce qui signifie qu'il est très facile pour la boîte à boutons de trouver la case à cocher, si seulement la boîte à boutons peut se trouver.C’est possible, si vous utilisez setFunction plutôt que set script.Texte en gras ci-dessous.La variable a disparu.Vous disposez maintenant d'une fonction anonyme (non affectée à une variable JSL) à laquelle la boîte à boutons peut transmettre "ceci"."this" est la case du bouton, et le frère de "this" est la case à cocher.La variable PF est toujours modifiée, mais je ne suis pas sûr que vous en ayez besoin.Il est possible que la fonction remonte dans la « chaîne parent » pour trouver la plateforme qui contient le bouton.
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 : Références des rapports et des boîtes à boutonsLa façon dont je gère ces problèmes est de créer les références aux différents objets avec différentes variables de mémoire en utilisant un substitut
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 ) )
)
);
cela créera NewButton1, NewButton2, etc. pour chaque exécution ultérieure.