Beim Versuch, die Anzeigebreite einer Spalte in JSL mit JMP 16.2.0 (MacOS) festzulegen, sehe ich mehrere Probleme, die ich mit JMP 15 nicht gesehen habe.
1. Die Stellen Sie die Anzeigebreite ein Die Funktion scheint in zwei Modi zu arbeiten, je nachdem, wie sie verwendet wird. Wenn es mit einem fest codierten arg-Wert aufgerufen wird, scheint es dauerhaft zu sein.
col = Column("SN");
col << Set Display Width( 200 );Wenn es jedoch mit einem var arg aufgerufen wird, wird es wie gewünscht angezeigt, scheint aber nicht mit der Datei gespeichert zu werden. (Oder zumindest nicht wie erwartet gespeichert.)
x = 100;
col << Set Display Width( x );
Im letzteren Fall wird die Datei, wenn sie gespeichert und dann erneut geöffnet wird, mit der Breite 200 gerendert (vermutlich, weil der vorherige Code ausgeführt wurde). Daher bleibt die 200 durch ein Dateispeichern-Schließen-und-Neuöffnen bestehen, die 100 jedoch nicht.
Noch seltsamer, wenn ich die Tabelle mit JMP 15 öffne, wird die Breite als 100 (und a y = col << Anzeigenbreite erhalten () Anleitung bestätigt das). Aber wenn Sie dann zurückgehen und mit JMP 16 öffnen, wird eine Breite von 200 gerendert. Dies deutet darauf hin, dass tatsächlich beide Werte mit der Datei gespeichert werden, und JMP hat dem Spaltenbreitenattribut in JMP 16 einen neuen Modus hinzugefügt. Als Referenz zeigt die angehängte Datei das Problem.
2. Wenn die Anzeigebreite einstellen() function ist die letzte Funktion im JSL-Skript und verwendet ein variables Argument, es manifestiert sich a Skriptfähig[] Fehler, und der Vorgang scheint nicht stattzufinden. Wenn jedoch ein hartcodierter Wert angegeben wird, scheint alles gut zu funktionieren (und der eingestellte Wert wird im Protokoll angezeigt). Gibt es vielleicht eine neue Syntaxanforderung für diese Funktion oder für JSL-Skriptterminierungen für JMP 16? Mir ist aufgefallen, dass dieses Verhalten bei JMP 15 nicht auftritt.
3. Etwas unzusammenhängend, aber beim Versuch, dies zu verstehen, entdeckt, scheint eine Zeichenfolge mit einem Zeilenumbruchzeichen mit JMP 16 mindestens ein anderes Nicht-Leerzeichen zu erfordern, andernfalls scheint es ignoriert zu werden. Nicht sicher, ob dies eine Designänderung oder ein SQA-Versehen ist.
col << Set Display Width( 200 );
y = col << Get Display Width();
Show(y); Write("\!n");
Write("---");
x=100;
col << Set Display Width( x );
y = col << Get Display Width();
Show(y);Ausgabe:
y = 200;---
y = 200;
Wenn beispielsweise vor dem Zeilenumbruch im String ein Punkt eingefügt wird, ".\!n" , der Zeilenumbruch wird erkannt:
y = 200;.
---
y = 200;
Hi @SteveTerry - Es sieht so aus, als ob <
Eval(EvalExpr(col << Set Display Width( Expr(x) )));
Wir werden uns mit der Korrektur der Bewertung in einer zukünftigen Version befassen.
Für das Zeilenumbruchproblem würde ich vorschlagen, "\! N" anstelle von "\! n" zu versuchen.Ersteres fügt einen Zeilenumbruch ein, der von der Host-Umgebung abhängt, während letzteres ein bestimmtes "Zeilenumbruch"-Zeichen ist.Ihr Beispiel auf meinem Mac scheint ohne die Änderung zu funktionieren, aber ich bin mir nicht sicher, ob dies möglicherweise von den Systemeinstellungen abhängt.
Danke für die Problemumgehung, @danschikore . Bei dem einsamen "\!n"-Problem machte "\!N" keinen Unterschied -- (und "\!n" hat auf einem Mac immer gut funktioniert). Ein Kollege hat dieses Verhalten auch bestätigt (am 16.1). Wie kann ich es am besten dem JMP-Team melden?
Hallo @SteveTerry – bitte melden Sie das Newline-Problem an support@jmp.com . Ich weiß nicht, warum ich das Problem nicht auf meinem Mac gesehen habe, aber sie können möglicherweise einige zusätzliche Tests durchführen und ein Problem erstellen, das die Entwicklung bei Bedarf verfolgen kann.