Code JSL pour effacer le contenu de la table de données sélectionnéeJ'essaie de faire quelque chose qui, je pense, devrait être très facile à accomplir, mais je ne trouve pas l'instruction JSL qui me le permettra.Fondamentalement, après avoir sélectionné plusieurs colonnes et lignes, je souhaite supprimer le contenu des cellules sélectionnées, et non la colonne ou la ligne entière.Je peux le faire manuellement, mais je ne trouve pas la commande JSL pour le faire.Toute suggestion serait appréciée.
Par exemple,
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Rows( [5, 7, 8, 10] );
Column ( "name" ) << Set Selected ( 1 );
Column ( "sex" ) << Set Selected ( 1 );
Supprimez maintenant le contenu des cellules sélectionnées.
Merci.
Re : Code JSL pour effacer le contenu de la table de données sélectionnée<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Il y a une différence entre les normes de système d'exploitation ici.Windows utilise Édition->Effacer et le Mac utilise Édition->Supprimer .
Donc, pour rendre un script robuste à l'un ou l'autre, vous devrez utiliser :
If(Host is( Windows ),
Main Menu( "Clear" ), //Windows
Main Menu( "Delete" ) //Mac
);
-Jeff
Re : Code JSL pour effacer le contenu de la table de données sélectionnéeMerci les gens pour vos suggestions,
Agréable de voir plusieurs options.Je pensais qu'il devrait y avoir une commande typique que je pourrais appeler comme suggéré par MS (Remarque : la commande réelle est Menu principal ( "Clair" ) ;, pas Menu principal ( "Supprimer" ))
Re : Code JSL pour effacer le contenu de la table de données sélectionnéeMerci beaucoup! Moins de caractères, c'est bien, surtout avec ma frappe. . .
Re : Code JSL pour effacer le contenu de la table de données sélectionnéeBelle fonction Ian ! Pour le simplifier davantage, vous pouvez éviter de traiter différents types de données séparément en utilisant Empty(). Cela fonctionne pour les colonnes numériques et de caractères.
For(c = 1, c <= N Items(selCols), c++, Column(dt, selCols[c])[selRows] = Empty());
Re : Code JSL pour effacer le contenu de la table de données sélectionnéeUne méthode simple mais potentiellement risquée consiste à utiliser MainMenu() pour invoquer le Supprimer commande dans le Modifier le menu. C'est risqué car cela supprimera tout ce qui est sélectionné dans la fenêtre active. Ainsi, dans un script complexe, assurez-vous de garder une trace de la fenêtre qui sera en haut lorsque la commande sera exécutée.
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 : Code JSL pour effacer le contenu de la table de données sélectionnéeQuelque chose comme ça:
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);