Problema al ejecutar archivos JSL en C # .NET<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy intentando ejecutar archivos JSL en un contenedor de C # .NET. Puedo ejecutar los archivos con éxito, pero mi código no espera a que finalice el script. A continuación se muestra una muestra:
JMP.Application jmpInstance = new JMP.Application ();
FileInfo fJSLFile = new FileInfo (@ "C: \ Test \ Test.JSL");
jmpInstance.RunJSLFile (fJSLFile.ToString ());
if (jmpInstance.HasRunCommandErrorString ())
{
lanzar una nueva excepción ApplicationException ("Error con el script JMP:" + jmpInstance.GetRunCommandErrorString ());
}
Re: Problema al ejecutar archivos JSL en C # .NET @Aceite ,
De hecho, logré que funcionara usando tu sugerencia y un poco de suerte jugando. Aquí está mi código C # que funciona.
// Create an instance of JMP and make it visible
JMP.Application MyJMP;
MyJMP = new JMP.Application();
MyJMP.Visible = true;
MyJMP.ShowStartupWindow();
MyJMP.EnableInteractiveMode(true);
// create command
string arg1 = "base = 2"; // arguments to my User defined function in JSL
string arg2 = "expn = 3"; // arguments to my User defined function in JSL
MyJMP.RunCommand(arg1);
MyJMP.RunCommand(arg2);
string FilePathOfFileToRun = "C:\\Test.jsl";
MyJMP.RunJSLFile(FilePathOfFileToRun); // Running the user defined function
// Needed to keep JMP from automatically closing
JMP.DataTable dt = MyJMP.NewDataTable("test");
MyJMP.RunCommand(@Close(Data Table("test""), NoSave)");
Re: Problema al ejecutar archivos JSL en C # .NET @Aceite ,
Gracias por la s nippet Estoy tratando de entender, ¿en qué parte de tu fragmento invocas una función?
TestPower = function({base,expn},{default local},
res = base ^ expn ;
Retrun(res);
);Supongamos que tenemos una función definida por el usuario en JMP como la que se muestra arriba. Ahora, a partir de C #, ¿cómo puedo invocar esta función pasándole los parámetros para base y exp y ejecutar esta función?
El fragmento que compartiste aborda la parte sobre cómo podemos usar la función RunCommand para pasar un valor, pero ¿puedes usar un ejemplo simple como este para explicar el proceso un poco más en detalle?
Entonces, si tengo la función anterior almacenada como TestPower.jsl en mi C: \, ¿puedes compartir amablemente cómo podría ejecutarme usando C #, pasándole los parámetros y llamando a esta función?
Re: Problema al ejecutar archivos JSL en C # .NETYo uso myJMP.RunCommand (comando); para pasar datos a JMP para C #, donde el comando es una cadena que se crea en C # para configurar las variables.
ejemplo
JMP.Application myJMP = new JMP.Application ();
comando de cadena = "a = 1";
myJMP.RunCommand (comando);
Ejemplo de fragmento de código a continuación:
A continuación, establezco las propiedades de los límites de especificaciones en las columnas que tienen especificaciones:
JMP.Application myJMP = new JMP.Application ();
foreach (elemento var en Especificaciones)
{
bool setprops = falso;
StringBuilder SpecList = new StringBuilder ();
if (item.Value.LowerSpec.ToLower ()! = "nan")
{
SpecList.Append ("LSL (Expr (" + item.Value.LowerSpec.ToLower () + ")),");
setprops = true;
}
if (item.Value.UpperSpec.ToLower ()! = "nan")
{
SpecList.Append ("USL (Expr (" + item.Value.UpperSpec.ToLower () + ")),");
setprops = true;
}
// SpecList.Length--; // elimina el último personaje de SB (terminando una coma)
if (setprops)
{
comando = @ "Eval (
Eval Expr ("+
"column (dts, Expr (\" "+ item.Key +" \ ")) << set property (" +
"\" límites de especificación \ "," +
"{" + SpecList.ToString () + "Show Limits (1)}" +
@ "))
); ";
myJMP.RunCommand (comando);
}
}Re: Problema al ejecutar archivos JSL en C # .NET @gpuckett ,
¿Pudiste resolver esto? Estoy buscando ejecutar funciones JSL pasándole parámetros desde C #. ¿Se pregunta si podría compartir alguna idea?