<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich bin neu im JSL-Scripting und möchte wissen, wie in Spaltenüberschriften gesucht wird.
Grundsätzlich habe ich eine von anderen Personen vorbereitete Datentabelle verwendet, die ich analysieren muss. Bevor ich mit der Analyse beginne, ändere ich die Spaltenüberschriften durch ein Skript.
Manchmal hat die Datentabelle jedoch nicht den spezifischen Header, den ich chaging bin, und das JSL-Skript bricht ab.
Hier ein Teil meines Codes:
col = Spalte ("% L (i) _MRR"); col << Set Name ("irawLossMRR");
col = Spalte ("% L (i) _QSNR - Production_Avg."); col << Set Name ("irawLossQSNR");
Mein Problem: Wenn es keinen Spaltenkopf "% L (i) _MRR" gibt, bricht das Skript ab und führt den nächsten Befehl nicht aus.
Voraussetzung: Wie wird der Popup-Bildschirm angezeigt, um eine Meldung anzuzeigen: "Keine Spalte% L (i) _MRR", und fahren Sie mit dem nächsten Befehl fort.
- Markennacht -
Es scheint, als wollte er die Fehlermeldung anzeigen, aber fahren Sie mit den restlichen Funktionen zum Umbenennen von Spalten fort. Sie können dies mit einem modalen Dialog (erfordert, dass Sie auf "OK" klicken, bevor das Skript fortgesetzt wird) oder einem Untertitelfenster (hält das Skript nicht an oder erfordert keine Antwort) abhängig von Ihren Vorlieben. In den folgenden Beispielen bezieht sich "alter_name" auf den Spaltennamen, den Sie suchen und ersetzen möchten, und "neuer_name" bezieht sich auf den Namen, durch den Sie ihn ersetzen möchten.
col_names = dt << Spaltennamen (String) abrufen;
if (! enthält (col_names, "old_name"),
dlg = dialog ("Keine Spalte alter_name"),
Taste ("Abbrechen"), Taste ("OK")),
Wenn (dlg ["Button"] == -1, Throw ()),
Spalte ("alter_name") << Name setzen ("neuer_name")
);
So verwenden Sie den nicht modalen Untertitelbefehl:
col_names = dt << Spaltennamen (String) abrufen;
if (! enthält (col_names, "old_name"),
Beschriftung ({x, y}, "Keine alte_Name-Spalte");
Warten (2);
Bildunterschrift (entfernen),
Spalte ("alter_name") << Name setzen ("neuer_name")
);
x und y in der Beschriftung beziehen sich auf die Anzeigekoordinaten. Wenn Sie also eine Auflösung von 1024 x 768 Pixel verwenden, erhalten Sie mit {500,350} ein Beschriftungsfenster, das sich ungefähr in der Mitte des Bildschirms befindet. Sie können den Zeitpunkt des 'wait'-Befehls auch ändern, wenn die Nachricht zu lang (oder nicht lang genug) ist.
Sie müssen die Bedingung für jede Spalte wiederholen und jedes Mal "old_name" und "new_name" ersetzen.
Sie würden etwas wie das Folgende verwenden:
dt = öffnen ( "$ sample_data \ Big Class.jmp" ) ;
col_names = dt << Spaltennamen abrufen ( String ) ;
ob ( ! enthält ( col_names . "Vorname" ) .
dlg = Dialog ( "Spalte nicht gefunden" .
"Warnungsspalte [Vorname] nicht gefunden" .
Taste ( "OK" )) ;
werfen () ;
) ;
Beachten Sie, dass die Funktion enthält die Groß- und Kleinschreibung berücksichtigt.
Grüße,
Peter