JSL-Code zum Löschen ausgewählter DatentabelleninhalteIch versuche etwas zu tun, von dem ich denke, dass es sehr einfach zu erreichen sein sollte, aber ich kann die JSL-Anweisung nicht finden, die es mir ermöglicht.Grundsätzlich möchte ich nach der Auswahl verschiedener Spalten und Zeilen den Inhalt der ausgewählten Zellen löschen, nicht die gesamte Spalte oder Zeile.Ich kann dies manuell tun, kann aber den JSL-Befehl dafür nicht finden.Für Vorschläge wäre ich dankbar.
Z.B,
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Rows( [5, 7, 8, 10] );
Column ( "name" ) << Set Selected ( 1 );
Column ( "sex" ) << Set Selected ( 1 );
Löschen Sie nun den Inhalt der ausgewählten Zellen.
Danke.
Betreff: JSL-Code zum Löschen ausgewählter Datentabelleninhalte<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hier gibt es einen Unterschied zwischen den Betriebssystemstandards.Windows verwendet Bearbeiten->Löschen und der Mac verwendet Bearbeiten->Löschen .
Um ein Skript für beides robust zu machen, müssen Sie Folgendes verwenden:
If(Host is( Windows ),
Main Menu( "Clear" ), //Windows
Main Menu( "Delete" ) //Mac
);
-Jeff
Betreff: JSL-Code zum Löschen ausgewählter DatentabelleninhalteDanke Leute für eure Vorschläge,
Schön, mehrere Optionen zu sehen.Ich dachte, es sollte einen typischen Befehl geben, den ich aufrufen könnte, wie von MS vorgeschlagen (Hinweis: Der tatsächliche Befehl lautet Hauptmenü ( "Klar" ) ;, nicht Hauptmenü ( "Löschen" ))
Betreff: JSL-Code zum Löschen ausgewählter DatentabelleninhalteVielen Dank! Weniger Zeichen sind gut, besonders wenn ich tippe. . .
Betreff: JSL-Code zum Löschen ausgewählter DatentabelleninhalteSchöne Funktion, Ian! Um es noch weiter zu vereinfachen, könnten Sie die getrennte Behandlung verschiedener Datentypen vermeiden, indem Sie Empty() verwenden. Es funktioniert sowohl für numerische als auch für Zeichenspalten.
For(c = 1, c <= N Items(selCols), c++, Column(dt, selCols[c])[selRows] = Empty());
Betreff: JSL-Code zum Löschen ausgewählter DatentabelleninhalteEine einfache, aber möglicherweise riskante Methode besteht darin, MainMenu() zum Aufrufen von zu verwenden Löschen Befehl in der Menü bearbeiten. Dies ist riskant, da dadurch alles gelöscht wird, was im aktiven Fenster ausgewählt ist. Stellen Sie daher in einem komplexen Skript sicher, dass Sie im Auge behalten, welches Fenster oben angezeigt wird, wenn der Befehl ausgeführt wird.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Select Rows([5, 7, 8, 10]);
Column("name") << Set Selected(1);
Column("height") << Set Selected(1);
dt << Bring Window To Front;
Main Menu("Delete");
Betreff: JSL-Code zum Löschen ausgewählter DatentabelleninhalteEtwas wie das:
NamesDefaultToHere(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Set up a selection of cells
dt << Select Rows( [5, 7, 8, 10] );
Column (dt, "name" ) << Set Selected ( 1 );
Column (dt, "sex" ) << Set Selected ( 1 );
// Function to set currently selected cells to '.' or ""
clearSelectedCells =
Function({dt}, {Default Local},
selCols = dt << getSelectedColumns;
selRows = dt << getSelectedRows;
for(c=1, c<=NItems(selCols), c++,
dType = Column(dt, selCols[c]) << getDataType;
if (dType == "Numeric",
Column(dt, selCols[c])[selRows] = .
,
Column(dt, selCols[c])[selRows] = ""
);
);
);
// Use the function
clearSelectedCells(dt);