Referenzen zu Berichten und SchaltflächenfeldernLiebe Community,
Ich hoffe, Sie können dabei helfen. Das folgende Beispielskript erstellt eine Tabelle und öffnet die Profiler-Plattform. Zusätzlich werden zwei Steuerelemente an den Bericht angehängt. Die Funktion der Schaltfläche „Einschalten“ besteht darin, den Wert des Kontrollkästchens auf 1/wahr zu setzen. Die Steuerelemente werden mithilfe eines Verweises auf den Profiler-Bericht „PF“ hinzugefügt. Nun tritt das Problem auf, wenn das Skript zweimal hintereinander ausgeführt wird. Dadurch wird die „PF“-Referenz überschrieben, um auf den neuesten Bericht zu verweisen. Wenn ich im alten Bericht die Schaltfläche „Einschalten“ verwende, wird jetzt der Wert des Kontrollkästchens im neuen Bericht festgelegt. Das ist natürlich nicht das Verhalten, das ich möchte. Ich schätze, ich muss irgendwie für jeden Bericht eine eindeutige Referenz verwenden. Kann jemand helfen? Danke schön.
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 )
);
Betreff: Referenzen zu Berichten und SchaltflächenfeldernDas hat also geholfen, danke.
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 ) )
)
);
Betreff: Referenzen zu Berichten und Schaltflächenfeldern<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo Craige
Danke dafür. Das Kontrollkästchen in diesem Beispiel diente nur zur Veranschaulichung des Verhaltens. In meiner „echten“ Anwendung erstellt die Button Box aus einem Bericht ein Journal. Das Problem bestand also darin, dass die Schaltfläche auf das rechte Berichtsfenster verwies. Ihre Lösung könnte sich ein anderes Mal als nützlich erweisen. Danke schön.
Betreff: Referenzen zu Berichten und SchaltflächenfeldernIhr Beispiel verfügt über ein Kontrollkästchen, das das nächste Geschwister eines Schaltflächenfelds ist. Das bedeutet, dass es für das Schaltflächenfeld sehr einfach ist, das Kontrollkästchen zu finden, wenn nur das Schaltflächenfeld sich selbst finden kann.Dies ist möglich, wenn Sie setFunction anstelle von set script verwenden.Fetter Text unten.Die Variable ist weg.Sie verfügen nun über eine anonyme Funktion (die keiner JSL-Variablen zugewiesen ist), an die das Schaltflächenfeld „this“ übergeben kann.„this“ ist das Schaltflächenfeld und das Schwesterfeld von „this“ ist das Kontrollkästchen.Die PF-Variable wird noch geändert, aber ich bin mir nicht sicher, ob Sie sie benötigen.Es ist möglich, dass die Funktion durch die <
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 ) ) );
Betreff: Referenzen zu Berichten und SchaltflächenfeldernDie Art und Weise, wie ich mit solchen Problemen umgehe, besteht darin, mithilfe von replacement Verweise auf die verschiedenen Objekte mit unterschiedlichen Speichervariablen zu erstellen
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 ) )
)
);
Dadurch werden NewButton1, NewButton2 usw. für jede nachfolgende Ausführung erstellt.