Usando funciones dentro de Graph Builder DispatchEstoy construyendo una herramienta para algunos gráficos personalizados. Quiero que los usuarios con los que la comparto puedan modificar fácilmente la herramienta. Para reducir la barrera de entrada, me gustaría usar subfunciones a las que llamo dentro de una función maestra. Cada función secundaria representaría una parte más pequeña de la función principal general.
Mi pregunta: ¿es posible reemplazar los argumentos de 'Despacho' dentro del generador de gráficos como una función? ¿O hay otro enfoque estándar para crear subfunciones más pequeñas que no conozco?
Re: Usando funciones dentro de Graph Builder DispatchGracias Jim por la respuesta a fondo. Pensé que tendría que pasarlo como texto y analizarlo de alguna manera, ¡pero ciertamente no anticipé que fuera tan feo! Bueno, supongo que este es el precio que pago por tener un requisito de nicho. Aunque esto es perfecto para mí. Mientras pueda ocultar la mayor parte del código feo en la función maestra, estoy contento, ya que mi objetivo es que el usuario final lo deje solo. Estoy muy interesado en la comunidad en este momento, pero espero poder reembolsar la ayuda contribuyendo a medida que adquiera más experiencia con el scripting en JMP.
Re: Usando funciones dentro de Graph Builder DispatchAquí hay un código que logra lo que quieres, pero no es muy bonito. Lo que quieres es poder generar código con sustitución, y eso no se maneja muy bien en JMP.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
myfunc = Function( {},
return =
"\[Dispatch(
{},
"2",
ScaleBox,
{Min( 92.9916666666667 ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)]\"
);
Eval(
Substitute(
Expr(
Bivariate( Y( :NPN1 ), X( :PNP1 ), SendToReport( __dispatch__ ) )
),
Expr( __dispatch__ ), Parse( myfunc )
)
);
JMP puede manejar el reemplazo de componentes dentro de la estructura de la plataforma, como pasar un valor mínimo.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
mymin = 80;
Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
SendToReport(
Dispatch(
{},
"2",
ScaleBox,
{Min( Eval( mymin ) ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)
)
);
O lo que creo que es el método preferido, que es generar el gráfico predeterminado, y luego establecer los parámetros después de la generación, donde se podría usar una llamada a una función para establecer condicionalmente los elementos deseados;
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
myfunc = function({},
Report( biv )[Axis Box( 1 )] << Min( 80 );
);
biv = Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
SendToReport(
Dispatch(
{},
"2",
ScaleBox,
{Min( 92.9916666666667 ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)
)
);
myfunc;Re: Usando funciones dentro de Graph Builder DispatchHola Jim,
Gracias por la respuesta. Sin embargo intentaré aclarar un poco mi problema.
Digamos que dentro de Graph Builder en mi script JSL, tengo un bloque de código como:
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(... etcEn esto quizás por ejemplo estoy personalizando el color de las líneas.
¿Es posible para mí crear una función en otro script JSL como:
myDispatch=Function(
{},
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(.... etcy luego dentro del script JSL, en lugar de la función de despacho, tendría myDispatch ().
He intentado esto, y aunque no registra ningún error, no aplica mi función (es decir, el gráfico solo usa los colores de línea predeterminados, etc. e ignora mi función). No puedo hacer que funcione sin escribir explícitamente los argumentos dentro del mismo Graph Builder.
Muchas gracias
Re: Usando funciones dentro de Graph Builder DispatchSi miras:
Ayuda ==> Índice de secuencias de comandos ==> Generador de gráficos
Verá todos los diversos componentes que se pueden manipular en Graph Builder, pasando las solicitudes a la plataforma. Todos estos se pueden poner en funciones de construcción del usuario.
