Referencias de cuadro de informe y botónQuerida comunidad,
Espero que puedas ayudar con esto. El siguiente script de ejemplo crea una tabla y abre la plataforma del generador de perfiles. Además, agrega dos controles al informe. La funcionalidad del botón 'Encender' es establecer el valor de la casilla de verificación en 1/verdadero. Los controles se agregan mediante una referencia al informe del generador de perfiles, 'PF'. Ahora, el problema surge al ejecutar el script dos veces seguidas. Al hacer esto, la referencia 'PF' se sobrescribirá para hacer referencia al informe más reciente. Cuando uso el botón 'Activar' en el informe anterior, ahora establece el valor de la casilla de verificación en el nuevo informe. Por supuesto, este no es el comportamiento que quiero. Supongo que de alguna manera debo usar una referencia única para cada informe. ¿Alguien puede ayudar? Gracias.
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: Referencias de reportes y botonerasAsí que esto funcionó, gracias.
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: Referencias de reportes y botoneras<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />hola craig
Gracias por esto. La casilla de verificación en este ejemplo fue solo para ilustrar el comportamiento. En mi aplicación 'real', Button Box crea un diario a partir de un informe. Entonces, el problema era hacer que el botón hiciera referencia a la ventana de informe correcta. Su solución podría ser útil en otro momento. Gracias.
Re: Referencias de reportes y botonerasSu ejemplo tiene una casilla de verificación que es el siguiente hermano de un cuadro de botón, lo que significa que es muy fácil para el cuadro de botón encontrar la casilla de verificación, si tan solo el cuadro de botón puede encontrarse a sí mismo.Puede, si usa setFunction en lugar de set script.Texto en negrita, abajo.La variable se ha ido.Ahora tiene una función anónima (no asignada a una variable JSL) a la que el cuadro de botones puede pasar "esto"."esto" es el cuadro de botón, y el hermano de "esto" es la casilla de verificación.La variable PF todavía se cambia, pero no estoy seguro de que la necesite.Es posible que la función se arrastre hacia arriba a través de <
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: Referencias de reportes y botonerasLa forma en que manejo estos problemas es crear las referencias a los diferentes objetos con diferentes variables de memoria usando sustituto
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 ) )
)
);
esto creará NewButton1, NewButton2, etc. para cada ejecución posterior.