Ayuda para la creación de secuencias de comandos de una ventana interactiva que se actualiza según las opciones del usuarioEstimados,
Estoy escribiendo un script que se implementará para los usuarios de mi organización para realizar algunas estadísticas rápidas simples para el usuario sin tener que invocar la plataforma de distribución. El script está debajo con una captura de pantalla de lo que tengo actualmente, luego una lista de las cosas con las que tengo problemas. Los usuarios ejecutarán JMP 16.1, yo ejecuto JMP Pro 16.0. Todas las máquinas son Windows 10, máquinas de 64 bits.
El propósito previsto de la secuencia de comandos es mostrar las columnas numéricas (tal vez más adelante me ocupe de las columnas categóricas) y, según el botón de opción seleccionado, realizará algunas estadísticas simples y mostrará los resultados en la misma ventana con una columna denominada Estadísticas. para el tipo de estadística calculada y Valores para los resultados de dichos cálculos. El cuadro del panel Resultados debe actualizarse al seleccionar el botón de opción después de haber seleccionado la columna adecuada en el cuadro del panel Seleccionar columna.
Script JMP actual (FYI, lo estoy probando en el archivo familiar Big Class.jmp):
Names Default To Here( 1 );
//Clear Symbols();
//the width of the column list box in pixels
lbWidth = 100;
dt = Current Data Table();
//List of statistics to calculate
StatsListA = {"Mean", "Std Dev", "Max", "Min", "Range", "N"};
StatsListB = {"95% quantile", "50% quantile", "5% quantile"};
StatsListC = {};
//Expression to do math
MathA = Expr(
response_col = Column( dt, Eval( Eval Expr( Expr( ycols ) ) ) );
ymean = Col Mean( response_col );
ystdev = Col Std Dev( response_col );
ymin = Col Min( response_col );
ymax = Col Max( response_col );
yrange = ymax - ymin;
yN = Col Number( response_col );
NumResultsA = {ymean, ystdev, ymin, ymax, yrange, yN};
);
//Expresseion for other math
MathB = Expr(
);
ValueDlg = Expr(
nwin = New Window( "GUI for quick stats",
<<RETURN result=""></RETURN>
Esto es lo que tengo hasta ahora:

Aquí está la lista de cosas con las que estoy teniendo problemas:
- La llamada a Radio Box() enumera el nombre de la variable local "StatsListA", etc. en lugar de enumerar las estadísticas que se calcularán. Por ejemplo, el primer botón de radio debería tener la siguiente lista detrás: Mean, Std Dev, Max, Min, Range, N. Esto también debería ser para StatsListB y StatsListC (aún no he definido la lista C). No estoy seguro de cómo hacer que evalúe la lista predefinida que hago en la parte superior del código JSL. Preferiría no tener que escribir todos y cada uno de los elementos, ya que podría querer cambiar los elementos de la lista y es más fácil cambiar la variable local StatsListX en lugar de editar la llamada de Radio Box() cada vez.
- En este momento, preferiría no enumerar TODAS las columnas, sino solo numéricas. Cuando cambio la opción en Col List Box() de Todo a Numérico (con o sin ""), obtengo una lista vacía de columnas. No puedo entender por qué sucede esto, cuando debería enumerar solo las columnas numéricas cuando tengo esa opción definida.
- Creo que este es el más difícil: como se mencionó anteriormente, me gustaría que los resultados en el cuadro "Resultados" del Panel se actualicen con una columna a la izquierda "Estadísticas" (que enumera las estadísticas de StatsListX y los resultados del cálculo para esos estadísticas en la columna de la derecha "Valores". Esto debe actualizarse con cada clic de un botón de opción. Entonces, si originalmente estaba mirando :altura, pero quería mirar :peso, seleccionaría :peso y luego haría clic en uno de los botones de radio para obtener el resumen estadístico relevante. Intenté seguir el ejemplo de Set Function que se muestra aquí, pero no tuve éxito (no conozco muy bien la llamada de Set Function).

Se pretendía llamar a Expr() para MathA cerrando la ventana original y abriendo una nueva con los resultados, pero después de investigar un poco más en las discusiones de JMP, descubrí que uno puede actualizar los campos dentro de una ventana existente, que es como prefiero abordar este problema. Entonces, sé que la codificación original en la parte superior de mi código no es el código correcto para lo que pretendo hacer.
Cualquier ayuda en esto es muy apreciada.
¡Gracias!,
SD
secuencias de comandosRe: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioEsto es tan bueno. Gracias por esta discusión.
Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioHola todos,
Me gustaría darle las gracias por los cambios que sugiere en curso. He hecho algunos cambios en el guión y me gusta más la última versión modificada, así que realmente aprecio las contribuciones de los demás. El guión actualizado se publicará al final de esta respuesta. Este nuevo script también proporciona estadísticas resumidas para los tipos de datos de caracteres. También modifiqué ligeramente el diseño de los paneles.
@jthi , me han parecido muy buenas tus sugerencias, y las he incorporado. Me gustan los nombres de los encabezados de colores para las estadísticas de resultados. También, similar a lo que @ErraticAttack tenía en su código, lo hice para que las estadísticas se actualizaran al seleccionar una nueva columna O al seleccionar un nuevo resultado numérico. Permití que los resultados de las estadísticas de los personajes cambiaran su tamaño vertical porque podría haber muchos niveles, como para la tabla de datos Big Class.jmp. Las estadísticas categóricas también se actualizarán al cambiar a ese tipo de columna, pero arrojarán un error si se selecciona la columna de caracteres y luego alguien hace clic en una opción de estadística numérica. Mantuve la sugerencia de ancho para que la ventana no siguiera cambiando el tamaño del ancho. Lo siento @ErraticAttack , no estoy tan familiarizado en este momento con la definición de nuevos espacios de nombres y cómo modificó el código. Parece muy útil y una buena manera de abordar las cosas, solo necesito aprender a hacerlo correctamente.
Estoy seguro de que hay otras sugerencias sobre cómo mejorar esto, especialmente la estética. Si es así, publique, pero asegúrese de etiquetarme para que sepa que ha habido una actualización de esta discusión. Gracias de nuevo a todos por las mejoras sugeridas.
¡Gracias!,
SD
debajo
//GUI for quickly reporting statistics written by D. Schmidt, ver1.5
//Thanks to JMP User community members: jthi, ian_jmp, and ErraticAttach for helpful suggested changes.
Names Default To Here( 1 );
Clear Symbols();
//the width of the column list box in pixels
lbWidth = 217;
dt = Current Data Table();
//dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//List of statistics to calculate
StatsList1 = {"µ", "σ", "Max", "Min", "Range(Δ)", "N"};
StatsList2 = {"Quantiles", "5%", "25%", "50%", "75%", "95%"};
StatsList3 = {"N", "N Missing", "N 0", "Prop 0", "Prop non-0"};
maxStatCount = Max( N Items( StatsList1 ), N Items( StatsList2 ), N Items( StatsList3 ) );
//RadioBox() arguments
rbArg = Eval List( {Concat Items( StatsList1, ", " ), Concat Items( StatsList2, ", " ), Concat Items( StatsList3, ", " )} );
rbcArg = {"Select for categorical columns"};
//Statistics to Calculate
statMean = Expr( Col Mean( tempCol ) );
statStd = Expr( Col Std Dev( tempCol ) );
statMax = Expr( Col Max( tempCol ) );
statMin = Expr( Col Min( tempCol ) );
statRange = Expr(
Col Max( tempCol ) - Col Min( tempCol )
);
statN = Expr( Col Number( tempCol ) );
statQ95 = Expr(
Col Quantile( tempCol, 0.05 )
);
statQ75 = Expr(
Col Quantile( tempCol, 0.25 )
);
statQ50 = Expr(
Col Quantile( tempCol, 0.5 )
);
statQ25 = Expr(
Col Quantile( tempCol, 0.75 )
);
statQ5 = Expr(
Col Quantile( tempCol, 0.95 )
);
statMiss = Expr(
Col N Missing( tempCol )
);
statZero = Expr(
N Items( Loc( tempCol << get as matrix, 0 ) )
);
statProp0 = Expr( statZero / statN );
statPropn0 = Expr( 1 - statProp0 );
CatStats = Expr(
coltype = tempCol << Get Data type;
If( coltype == "Character",
catdist = dt << Distribution( Nominal Distribution( Column( tempCol ) ), Invisible );
rpt_catdist = catdist << Report;
lvl = rpt_catdist[String Col Box( 1 )] << Get;
Count = rpt_catdist[Number Col Box( 1 )] << Get;
Prob = rpt_catdist[Number Col Box( 2 )] << Get;
SummNMiss = rpt_catdist[List Box( 7 )][2] << Get Text;
SummLvl = rpt_catdist[List Box( 8 )][1] << Get text;
numNMiss = Num( SummNMiss );
numLvl = Num( SummLvl );
catdist << Close Window;
);
Insert Into( lvl, {"N Missing", "N Levels"} );
Insert Into( Count, numNMiss );
Insert Into( Count, numLvl );
);
//List for results
StatList = Eval List( {StatsList1, StatsList2, StatsList3} );
StatListRes1 = Expr(
Eval List( {statMean, statStd, statMax, statMin, statRange, statN} )
);
StatListRes2 = Expr(
Eval List( {., statQ95, statQ75, statQ50, statQ25, statQ5} )
);
StatListRes3 = Expr(
Eval List( {statN, statMiss, statZero, statProp0, statPropn0} )
);
StatListRes = Expr(
Eval List( {StatListRes1, StatListRes2, StatListRes3} )
);
//User window
ValueDlg = Expr(
nwin = New Window( "GUI for quick stats",
<<RETURN result=""></RETURN>
Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioHola @jimloughlin ,
Creo que fue solo un código de depuración que @jthi estaba usando al proporcionar sus ediciones sugeridas a mi código original que publiqué. Estoy publicando uno actualizado que tiene en cuenta algunas ediciones sugeridas de otras personas que escribieron en este hilo. Te etiquetaré cuando publique el guión actualizado. Lo tengo funcionando bien con la tabla de datos Big Class.jmp.
¡Gracias!,
SD
Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioArrojando mis dos centavos aquí.A menudo es mejor separar la secuencia de comandos tanto como sea posible en unidades o funciones aisladas lógicamente.Con ese fin, me parece mucho mejor eliminar la lógica del árbol de visualización y aplanar las definiciones de funciones tanto como sea posible.
En mi solución de ejemplo a continuación, verá que todas las funciones tienen como alcance el uno mismo espacio de nombres y que la primera línea de cada función abarca el uno mismo espacio de nombresEn la práctica, lo que he hecho es crear un contenedor de metaprogramación que hace esto automáticamente de modo que no tengo que definir explícitamente el uno mismo espacio de nombres o incluir el self = espacio de nombres ("nombre") línea como el primer argumento de cada función.Si crea muchas GUI interactivas, es posible que desee hacer algo similar, ya que ahorra una gran cantidad de trabajo.Esto también tiene la ventaja de no tener que envolver el script en un Eval( Eval Expr( "<CÓDIGO>" ) )</CÓDIGO> bloquear.
Además, si sigue esta ruta, me resulta más fácil producir un envoltorio para los cuadros de visualización incorporados que pueden llamar directamente al uno mismo funciones y no tener la necesidad de poner tanta placa de caldera dentro del << Establecer Función() mensajes
/* quick stats */
self = New Namespace();
self:tool name = "Quick Stats";
Eval( Eval Expr(
self:initialize = Function( {}, // called before the display tree is generated
self = Namespace( Expr( self << Get Name ) );
self:table = Current Data Table();
self:radio inputs = {
"Mean, Std Dev, Max, Min, Range, N",
"Quantiles: 0.05, 0.25, 0.50, 0.75, 0.95",
"N, N Missing, N Zero, Prop 0, Prop non-0"
};
self:stat list = {
{"Mean", "Std Dev", "Max", "Min", "Range", "N"},
{"5%", "25%", "50%", "75%", "95%"},
{"N", "N Missing", "N Zero", "Prop 0", "Prop non-0"}
};
1
);
self:content = Function( {}, // holds the display tree
self = Namespace( Expr( self << Get Name ) );
self:container = H Splitter Box(
V List Box(
H List Box(
Lineup Box( N Col( 1 ), Spacing( 0 ),
Spacer Box( <<SET auto="" stretching=""></SET>self:window << Update Window;
self:finalize();
) );
self << Get Name;
Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioCuando ejecuto statsstart.jcl, aparece el siguiente error:
Nombre sin resolver: tempCol{1} en acceso o evaluación de 'tempCol' , tempCol/*###*/
¿Quizás porque estoy ejecutando v13.2.1?
Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioDespués de que el script funcione principalmente como lo desea, hay un par de cosas visuales que consideraría:
- El tamaño de la tabla cambia y hace que la ventana "rebote" un poco
- Si el usuario no tiene ninguna columna seleccionada habrá un error
- Si no hay tablas de datos abiertas, puede detener la ejecución del script e informar al usuario
- Si el usuario cambia la columna en Col List Box, tal vez debería volver a calcular las estadísticas con la selección actual de Radio Box O dejar la tabla vacía.
Un par de ideas:
- Para el cuadro del panel Resultados. Puede usar Establecer anchos para evitar que la tabla cambie el tamaño horizontal y el marcador de posición oculto String Col Box con un tamaño de lista predefinido para evitar cambios de tamaño vertical
- Seleccione el cuadro del panel Columnas. Puede agregar Max Selected (1) para evitar que el usuario seleccione varias columnas.
- Elija el cuadro del panel Estadísticas rápidas. Algún tipo de "manejo de errores" si el usuario no tiene ninguna columna seleccionada.
Guión completo con algunas modificaciones:
Ver más...Names Default To Here( 1 );
//Clear Symbols(); //dont like using this
If(N Items(Get Data Table List()) == 0,
Throw("No datatables open. Stopping...");
stop();
);
//the width of the column list box in pixels
lbWidth = 205;
dt = Current Data Table();
//dt = Open("$SAMPLE_DATA/Big Class.jmp");
//List of statistics to calculate
StatsList1 = {"Mean", "Std Dev", "Max", "Min", "Range", "N"};
StatsList2 = {"Quantiles", "5%", "25%", "50%", "75%", "95%"};
StatsList3 = {"N", "N Missing", "N Zero", "Prop 0", "Prop non-0"};
maxStatCount = Max(N Items(StatsList1), N Items(StatsList2), N Items(StatsList3));
//Statistics to Calculate
statMean = Expr( Col Mean( tempCol ) );
statStd = Expr( Col Std Dev( tempCol ) );
statMax = Expr( Col Max( tempCol ) );
statMin = Expr( Col Min( tempCol ) );
statRange = Expr(
Col Max( tempCol ) - Col Min( tempCol )
);
statN = Expr( Col Number( tempCol ) );
statQ95 = Expr(
Col Quantile( tempCol, 0.05 )
);
statQ75 = Expr(
Col Quantile( tempCol, 0.25 )
);
statQ50 = Expr(
Col Quantile( tempCol, 0.5 )
);
statQ25 = Expr(
Col Quantile( tempCol, 0.75 )
);
statQ5 = Expr(
Col Quantile( tempCol, 0.95 )
);
statMiss = Expr(
Col N Missing( tempCol )
);
statZero = Expr(
N Items( Loc( tempCol << get as matrix, 0 ) )
);
statProp0 = Expr( statZero / statN );
statPropn0 = Expr( 1 - statProp0 );
//RadioBox() argument
rbArg = Eval List( {Concat Items( StatsList1, ", " ), Concat Items( StatsList2, ", " ), Concat Items( StatsList3, ", " )} );
//List for results
StatList = Eval List( {StatsList1, StatsList2, StatsList3} );
StatListRes1 = Expr(
Eval List( {statMean, statStd, statMax, statMin, statRange, statN} )
);
StatListRes2 = Expr(
Eval List( {., statQ95, statQ75, statQ50, statQ25, statQ5} )
);
StatListRes3 = Expr(
Eval List( {statN, statMiss, statZero, statProp0, statPropn0} )
);
StatListRes = Expr(
Eval List( {StatListRes1, StatListRes2, StatListRes3} )
);
//User window
ValueDlg = Expr(
nwin = New Window( "GUI for quick stats",
<<RETURN result=""></RETURN>
Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioHola @jthi y @ian_jmp ,
¡Gracias a ambos por su gran ayuda! Gracias por los dos últimos consejos finales. @jthi , pude superar el "problema" alfabético de la matriz asociativa. Me gusta el poder de los AA, puedo ver dónde pueden ser útiles, pero necesito que se mantenga un cierto orden debido a los usuarios.
Pude hacer los cambios con la sugerencia de listas y su sugerencia para el problema de Count Zero que tenía. ¡Gracias! El código funciona como se esperaba, ahora tendré que expandirlo para hacer columnas categóricas y luego encuestar a mis usuarios para ver qué lista real de estadísticas necesitan.
¡Gracias, de nuevo, por toda su ayuda! El código de trabajo (al menos para las columnas numéricas) se encuentra a continuación.
¡Gracias!,
SD
Names Default To Here( 1 );
Clear Symbols();
//the width of the column list box in pixels
lbWidth = 205;
dt = Current Data Table();
//dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//List of statistics to calculate
StatsList1 = {"Mean", "Std Dev", "Max", "Min", "Range", "N"};
StatsList2 = {"Quantiles", "5%", "25%", "50%", "75%", "95%"};
StatsList3 = {"N", "N Missing", "N Zero", "Prop 0", "Prop non-0"};
//Statistics to Calculate
statMean = Expr( Col Mean( tempCol ) );
statStd = Expr( Col Std Dev( tempCol ) );
statMax = Expr( Col Max( tempCol ) );
statMin = Expr( Col Min( tempCol ) );
statRange = Expr(
Col Max( tempCol ) - Col Min( tempCol )
);
statN = Expr( Col Number( tempCol ) );
statQ95 = Expr(
Col Quantile( tempCol, 0.05 )
);
statQ75 = Expr(
Col Quantile( tempCol, 0.25 )
);
statQ50 = Expr(
Col Quantile( tempCol, 0.5 )
);
statQ25 = Expr(
Col Quantile( tempCol, 0.75 )
);
statQ5 = Expr(
Col Quantile( tempCol, 0.95 )
);
statMiss = Expr(
Col N Missing( tempCol )
);
statZero = Expr(
N Items( Loc( tempCol << get as matrix, 0 ) )
);
statProp0 = Expr( statZero / statN );
statPropn0 = Expr( 1 - statProp0 );
//RadioBox() argument
rbArg = Eval List( {Concat Items( StatsList1, ", " ), Concat Items( StatsList2, ", " ), Concat Items( StatsList3, ", " )} );
//List for results
StatList = Eval List( {StatsList1, StatsList2, StatsList3} );
StatListRes1 = Expr(
Eval List( {statMean, statStd, statMax, statMin, statRange, statN} )
);
StatListRes2 = Expr(
Eval List( {., statQ95, statQ75, statQ50, statQ25, statQ5} )
);
StatListRes3 = Expr(
Eval List( {statN, statMiss, statZero, statProp0, statPropn0} )
);
StatListRes = Expr(
Eval List( {StatListRes1, StatListRes2, StatListRes3} )
);
//User window
ValueDlg = Expr(
nwin = New Window( "GUI for quick stats",
<<RETURN result=""></RETURN>Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuario1. Debido al uso de la matriz asociativa, las estadísticas se reordenarán. Tal vez podría usar listas y modificar las referencias para usar índices
2. Podría funcionar modificar la forma en que calcula los valores 0. Por ejemplo, podría usar el ejemplo Loc () con N elementos ():
statZero = Expr(N Items(Loc(tempCol << get as matrix, 0)));

Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioHola @jthi y @ian_jmp ,
¡Muchas gracias a los dos por los comentarios rápidos! Sus sugerencias funcionaron muy bien y pude hacer mucho más progreso. Ahora tengo problemas con solo dos cosas probablemente muy simples, incluyo el código actualizado a continuación. Solo como información, eliminé algunos valores en: altura y agregué algunos ceros en: altura para probarlo
Problemas:
- Cuando lista las estadísticas las hace por orden alfabético, me gustaría mantener el orden que tengo definido en mis listas, ¿es posible?
- Estoy tratando de calcular la proporción cero y distinto de cero contando primero el número de ceros. Desafortunadamente, no está funcionando del todo bien. Puedo poner el resumen dentro de Expr(), pero luego no puedo definir la matriz asociativa y no obtengo los cálculos posteriores correctos. Estoy seguro de que hay una manera más fácil de hacer esto, pero no pude encontrar ningún comando directo en JSL para contar solo ceros. Ingresé 5 valores faltantes y 7 valores cero manualmente. Por lo tanto, la propiedad distinta de cero debe ser 0,8 y la propiedad cero debe ser 0,2.
Names Default To Here( 1 );
Clear Symbols();
//the width of the column list box in pixels
lbWidth = 205;
dt = Current Data Table();
//dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//List of statistics to calculate
StatsListA = {"Mean", "Std Dev", "Max", "Min", "Range", "N"};
StatsListB = {"Quantiles", "5%", "25%", "50%", "75%", "95%"};
StatsListC = {"N", "N Missing", "N Zero", "Prop 0", "Prop non-0"};
//RadioBox() argument
rbArg = Eval List( {Concat Items( StatsListA, ", " ), Concat Items( StatsListB, ", " ), Concat Items( StatsListC, ", " )} );
//Statistics to Calculate
statMean = Expr( Col Mean( tempCol ) );
statStd = Expr( Col Std Dev( tempCol ) );
statMax = Expr( Col Max( tempCol ) );
statMin = Expr( Col Min( tempCol ) );
statRange = Expr(
Col Max( tempCol ) - Col Min( tempCol )
);
statN = Expr( Col Number( tempCol ) );
statQ95 = Expr(
Col Quantile( tempCol, 0.05 )
);
statQ75 = Expr(
Col Quantile( tempCol, 0.25 )
);
statQ50 = Expr(
Col Quantile( tempCol, 0.5 )
);
statQ25 = Expr(
Col Quantile( tempCol, 0.75 )
);
statQ5 = Expr(
Col Quantile( tempCol, 0.95 )
);
statMiss = Expr(
Col N Missing( tempCol )
);<BR /><BR />//Here's where I'm having trouble with the N Zero and proportions zero and non-zero.
Expr(
Summarize( dt, eg = By( tempCol ), em = Count( tempCol ) )
);
PropTemp1 = Expr(
Associative Array( eg, em )
);
statZero = Expr( PropTemp1["0"] );
statProp0 = Expr( statZero / statN );
statPropn0 = Expr( 1 - statProp0 );
maths = Associative Array();
maths["StatListA"] = Associative Array( StatsListA, {statMean, statStd, statMax, statMin, statRange, statN} );
maths["StatListB"] = Associative Array( StatsListB, {., statQ95, statQ75, statQ50, statQ25, statQ5} );
maths["StatListC"] = Associative Array( StatsListC, {statN, statMiss, statZero, statProp0, statPropn0} );
rbOptions = maths << Get Keys;
//User window
ValueDlg = Expr(
nwin = New Window( "GUI for quick stats",
<<RETURN result=""></RETURN>
Gracias nuevamente por su ayuda hasta ahora, y espero que pueda ayudar con estas otras pequeñas cosas.
¡Gracias!,
SD
Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioCon respecto al punto 1., y agregando solo un poco a la respuesta de @jthi , tu puedes hacer:
Names Default To Here( 1 );
//the width of the column list box in pixels
lbWidth = 100;
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//List of statistics to calculate
StatsListA = {"Mean", "Std Dev", "Max", "Min", "Range", "N"};
StatsListB = {"95% quantile", "50% quantile", "5% quantile"};
//RadioBox() argument
rbArg = EvalList({ConcatItems(StatsListA, ", "), ConcatItems(StatsListB, ", ")});
//Window
New Window( "GUI for quick stats",
Panel Box( "Select Columns", ColListData = Col List Box( dt, all, <<SET data="https://community.jmp.com/" type=""></SET>
Re: Ayuda para crear una ventana interactiva que se actualice según las opciones del usuarioHice algunas pruebas rápidas y adjunté el script. Tiene posibles ideas sobre cómo abordar esto, pero podrían no ser las mejores soluciones.
1. Manejado con matrices y expresiones asociativas.
2. Tuve que usar una sintaxis extraña para este ColListData = Col List Box(dt, All, <
3. Set Function está manejando esto con Evals.
El guión adjunto le dará la mejor idea de cómo me acerqué a esto por ahora.
