Problem beim Ausführen von JSL-Dateien in C#.NET<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich versuche, JSL-Dateien in einem C#.NET-Wrapper auszuführen. Ich kann die Dateien erfolgreich ausführen, aber mein Code wartet nicht, bis das Skript beendet ist. Unten ist ein Beispiel:
JMP.Application jmpInstance = new JMP.Application();
FileInfo fJSLFile = new FileInfo(@C:\Test\Test.JSL);
jmpInstance.RunJSLFile(fJSLFile.ToString());
if (jmpInstance.HasRunCommandErrorString())
{
throw new ApplicationException("Fehler mit JMP-Skript: " + jmpInstance.GetRunCommandErrorString());
}
Betreff: Problem beim Ausführen von JSL-Dateien in C#.NET@ChrisM_X ,
Ich habe es tatsächlich geschafft, es mit Ihrem Vorschlag und etwas Glück beim Herumspielen zum Laufen zu bringen. Hier ist mein C#-Code, der funktioniert.
// 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)");
Betreff: Problem beim Ausführen von JSL-Dateien in C#.NET@ChrisM_X ,
Danke für die s Nippel. Ich versuche zu verstehen, wo in Ihrem Snippet Sie eine Funktion aufrufen?
TestPower = function({base,expn},{default local},
res = base ^ expn ;
Retrun(res);
);Nehmen wir an, wir haben eine benutzerdefinierte Funktion in JMP wie die oben gezeigte. Wie kann ich nun ausgehend von C# diese Funktion aufrufen, indem ich ihr Parameter für base und exp übergebe und diese Funktion ausführe?
Das von Ihnen freigegebene Snippet befasst sich mit dem Teil darüber, wie wir die RunCommand-Funktion verwenden können, um einen Wert zu übergeben, aber können Sie ein einfaches Beispiel wie dieses verwenden, um den Prozess etwas detaillierter zu erklären?
Also, wenn ich die obige Funktion als TestPower.jsl auf meinem C:\ gespeichert habe, können Sie freundlicherweise mitteilen, wie ich mit C# laufen könnte, indem ich die Parameter übergebe und diese Funktion aufrufe?
Betreff: Problem beim Ausführen von JSL-Dateien in C#.NETIch verwende myJMP.RunCommand (Befehl); zum Übergeben von Daten an JMP für C#, wobei Befehl eine Zeichenfolge ist, die Sie in C# zum Einrichten von Variablen erstellen.
Beispiel
JMP.Application myJMP = new JMP.Application();
Zeichenkettenbefehl = "a=1";
myJMP.RunCommand(Befehl);
Beispiel-Code-Snippet unten:
Unten lege ich Spec-Limits-Eigenschaften für Spalten fest, die Specs haben:
JMP.Application myJMP = new JMP.Application();
foreach (var item in Specs)
{
bool setprops = falsch;
StringBuilder SpecList = new StringBuilder();
if (item.Value.LowerSpec.ToLower() != "nan")
{
SpecList.Append("LSL(Expr(" + item.Value.LowerSpec.ToLower() + ")),");
setprops = wahr;
}
if (item.Value.UpperSpec.ToLower() != "nan")
{
SpecList.Append("USL(Expr(" + item.Value.UpperSpec.ToLower() + ")),");
setprops = wahr;
}
// SpecList.Length--; //entfernt das letzte Zeichen von SB (Endkomma)
wenn (setprops)
{
Befehl = @Eval(
Auswertungsausdruck(" +
"column(dts, Expr(\"" + item.Key + "\")) << set property(" +
"\"Spezifikationsgrenzen\"," +
" {" + SpecList.ToString() + " Grenzen anzeigen ( 1 )}" +
@))
); ";
myJMP.RunCommand(Befehl);
}
}Betreff: Problem beim Ausführen von JSL-Dateien in C#.NET@gpuckett ,
Konntest du das herausfinden? Ich möchte JSL-Funktionen ausführen, indem ich Parameter von C # an sie übergebe. Sie fragen sich, ob Sie einen Einblick geben könnten?