Hola a todos,
Tengo dificultades con las variables que se evalúan normalmente en una Expr1() y no se evalúan correctamente en otra Expr2() que llama a la primera Expr. Tengo un código donde definí un Expr1() que genera distribuciones de columnas de interés. Tengo otra expresión más adelante, Expr2() que vuelve a llamar a Expr1(). Hay variables en Expr1() que parecen no evaluarse correctamente en Expr2().
Para un objeto visual, Expr2() genera una ventana similar a la siguiente:

La primera expresión, Expr1() es lo que genera la plataforma de distribución incluida debajo del generador de gráficos. El cuadro combinado y los cuadros de botones debajo de las distribuciones permiten al usuario cambiar entre diferentes estadísticas de ajuste, como diferentes R^2, RMSE, Mean Abs Dev, -Logliklihood, etc. Mi intención es actualizar tanto el GB como la Distribución en consecuencia. El GB se actualiza adecuadamente, pero la Distribución no. Al cambiar la estadística de ajuste a RMSE, por ejemplo, este es el resultado:

Actualiza los gráficos de Distribución, pero usa su configuración de tamaño predeterminada y no la configuración de tamaño que establecí en Expr1(). se supone que debe verse así donde los gráficos de distribución tienen el mismo tamaño que en la primera imagen:

La sección de código en Expr1() donde se generan las Distribuciones es la siguiente:
//this part gets column names to insert into Dispatch() below<BR />sfitcol1 = Column( NNYCol + NNcolshift ) << Get Name;
sfitcol2 = Column( NNYCol + 1 + NNcolshift ) << Get Name;
sfitcol3 = Column( NNYCol + 2 + NNcolshift ) << Get Name;<BR /><BR />//in this example, the results are:<BR />//"RMSE Training"<BR />//"RMSE Validation"<BR />//"RMSE Test"
<BR />//this part generates the Distributions that will be used to change my output report in Expr2()
dt_results << Distribution(
Continuous Distribution( Column( Eval( NNYCol + NNcolshift ) ), Quantiles( 0 ) ),
Continuous Distribution( Column( Eval( NNYCol + 1 + NNcolshift ) ), Quantiles( 0 ) ),
Continuous Distribution( Column( Eval( NNYCol + 2 + NNcolshift ) ), Quantiles( 0 ) ),
SendToReport(
Dispatch( {sfitcol1}, "Distrib Histogram", FrameBox, {Frame Size( 60, 100 )} ),
Dispatch( {sfitcol1}, "Distrib Outlier Box", FrameBox, {Frame Size( 30, 100 )} ),
Dispatch( {sfitcol2}, "Distrib Histogram", FrameBox, {Frame Size( 60, 100 )} ),
Dispatch( {sfitcol2}, "Distrib Outlier Box", FrameBox, {Frame Size( 30, 100 )} ),
Dispatch( {sfitcol3}, "Distrib Histogram", FrameBox, {Frame Size( 60, 100 )} ),
Dispatch( {sfitcol3}, "Distrib Outlier Box", FrameBox, {Frame Size( 30, 100 )} )
)
);Si ejecuto Expr1() solo, funciona bien, el problema es que cuando Expr2() llama a Expr1() falla debido a que no evalúa las variables sfitcol# en Dispatch, por lo que no cambia el tamaño de FrameBox. como se supone que debe hacerlo en el código.
La sección de código en Expr2() que intercambia las distribuciones (usando solo el cuadro combinado) se encuentra a continuación:
NNycb = Combo Box(
NNylist,
<<SET></SET>
Jugar con poner la parte de Expr1() en la función del cuadro combinado y luego intentar ejecutar las variables sfitcol y luego enviarlas al informe para modificar el cuadro de marco genera este error en el registro incrustado:
No se puede encontrar el elemento "sfitcol1" en el contexto del esquema {sfitcol1}
No se puede encontrar el elemento "sfitcol1" en el contexto del esquema {sfitcol1}
No se puede encontrar el elemento "sfitcol2" en el contexto del esquema {sfitcol2}
No se puede encontrar el elemento "sfitcol2" en el contexto del esquema {sfitcol2}
No se puede encontrar el elemento "sfitcol3" en el contexto del esquema {sfitcol3}
No se puede encontrar el elemento "sfitcol3" en el contexto del esquema {sfitcol3}
Si luego ingreso manualmente el nombre de la columna, por ejemplo con el primer Envío: Enviar a informe (Envío ({"RMSE Training"}, "Distrib Histogram", Framebox, Frame Size{(60,100)}), entonces cambiará la caja del marco en consecuencia.

Entonces, es posible, y debería funcionar según la forma en que definí las cosas en Expr1(), pero la variable y no el valor (texto) de la variable se pasa al ejecutar cosas en Expr2(). Con la esperanza de recibir algunas sugerencias sobre cómo corregir esto. No creo que necesite usar una solución de tipo Eval(Substitute(Expr())), pero tal vez sí.
Cualquier pensamiento/idea/sugerencia es muy apreciada.
¡Gracias!,
DS