Salut les connaisseurs.
J'ai un tableau récapitulatif lié, dans lequel je sélectionne des lignes, en fonction d'un critère.
Dans ma table principale, je dois maintenant définir une valeur spécifique dans une colonne, pour les lignes sélectionnées.
J'ai fait un tableau de base avec les éléments suivants:
Erreur d'échantillon
s1 0
s1 0
s1 0
s2 0
s2 0
s2 0
J'ai un code très simplifié comme exemple:
dt = table de données actuelle();
dt_sum = dt << Résumé(
Groupe( :échantillon),
Fréq( "Aucun" ),
Poids( "Aucun" )
);
dt_sum << select where (:sample == "s1");
r = dt << obtenir les lignes sélectionnées ;
close(dt_sum, nosave);
colonne(dt, "erreur")[r] = 1 ;
Le code s'exécute, si le dt_sum est fermé. Dans mon code cependant, ce n'est pas possible, car il est nécessaire plus tard.
J'obtiens l'erreur suivante, si dt_sum n'est pas fermé
"Impossible de définir la valeur de la colonne 'erreur' car le numéro de ligne (-1) n'est pas valide.{1}"
De plus, la valeur d'erreur pour les lignes 1 et 4 est changée en 1, mais pas le reste.
Est-ce que l'un d'entre vous peut m'expliquer pourquoi cela ne fonctionne pas, ou m'aider avec une éventuelle solution de contournement ?
Merci d'avance Anders
1. Je pense que vous devriez soumettre le problème au support JMP.Il semble que même si vous pointez directement vers la table de données "dt", il recherche toujours la table de données "dt_sum" et s'y met à jour.
2. Voici une solution de contournement qui permet au code de fonctionner
dt = current data table();
dt_sum = dt << Summary(
Group( :sample),
Freq( "None" ),
Weight( "None" )
);
dt_sum << select where (:sample == "s1");
r = dt << get selected rows;
//close(dt_sum, nosave);
current data table(dt);
column(dt, "error")[r] = 1;