Código JSL para borrar el contenido de la tabla de datos seleccionadosEstoy tratando de hacer algo que creo que debería ser muy fácil de lograr, pero no puedo encontrar la instrucción JSL que me lo permita.Básicamente, después de seleccionar varias columnas y filas, quiero eliminar el contenido de las celdas seleccionadas, no toda la columna o fila.Puedo hacer esto manualmente, pero no puedo encontrar el comando JSL para hacerlo.Cualquier sugerencia sera apreciada.
P.ej,
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Rows( [5, 7, 8, 10] );
Column ( "name" ) << Set Selected ( 1 );
Column ( "sex" ) << Set Selected ( 1 );
Ahora elimine el contenido de las celdas seleccionadas.
Gracias.
Re: código JSL para borrar el contenido de la tabla de datos seleccionados<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hay una diferencia entre los estándares del sistema operativo aquí.Usos de Windows Editar->Borrar y la Mac usa Editar->Eliminar .
Entonces, para hacer que un script sea robusto para cualquiera de los dos, deberá usar:
If(Host is( Windows ),
Main Menu( "Clear" ), //Windows
Main Menu( "Delete" ) //Mac
);
-Jeff
Re: código JSL para borrar el contenido de la tabla de datos seleccionadosGracias gente por sus sugerencias,
Es bueno ver varias opciones.Estaba pensando que debería haber un comando típico al que pudiera llamar como lo sugiere MS (Nota: el comando real es Menú principal ( "Claro" ) ;, no Menú principal ( "Borrar" ))
Re: código JSL para borrar el contenido de la tabla de datos seleccionados¡Muchas gracias! Menos caracteres es bueno, especialmente con mi escritura. . .
Re: código JSL para borrar el contenido de la tabla de datos seleccionadosBuena función Ian! Para simplificarlo aún más, puede evitar tratar diferentes tipos de datos por separado utilizando Empty(). Funciona tanto para columnas numéricas como de caracteres.
For(c = 1, c <= N Items(selCols), c++, Column(dt, selCols[c])[selRows] = Empty());
Re: código JSL para borrar el contenido de la tabla de datos seleccionadosUn método simple pero potencialmente arriesgado es usar MainMenu() para invocar el Borrar comando en el Menú de edición. Es arriesgado porque eliminará todo lo que esté seleccionado en la ventana activa. Entonces, en un script complejo, asegúrese de realizar un seguimiento de qué ventana estará en la parte superior cuando se ejecute el comando.
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");
Re: código JSL para borrar el contenido de la tabla de datos seleccionadosAlgo como esto:
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);