<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />mon besoin est: empiler une table avec une sélection dynamique (bien, en quelque sorte) de la colonne à empiler.
J'ai résolu avec une table de configuration dans laquelle les noms des colonnes à empiler sont stockés sous forme de valeurs, puis je fais un "get values" et
assigner le résultat à une chaîne. enfin je nourris cette chaîne pour empiler la commande.
ça marche, mais ...
chaque fois dans mon journal, il est dit
Erreurs trouvées. dans l'accès ou l'évaluation des 'colonnes', argument incorrect (Eval (d))
, colonnes (Eval (d)) "
sans eval, il ne fonctionne pas, avec eval, il fonctionne parfaitement mais pollue mon journal. est-ce que quelqu'un sait pourquoi?
voici le code:
conf3 = open ("\ here is the table de configuration");
// load config, c'est un fichier Excel à éditer par les utilisateurs pour choisir la "classe" qu'ils veulent dans le rapport final
// ces ensembles de classes sont assez stables et la plupart du temps, ils ne sont pas modifiés depuis la dernière exécution, mais il faut parfois ajouter ou modifier une classe
// c'est simplement comme ça: column1: noir blanc rouge column2: rouge blanc etc
d = Column (conf3, i) << get valeurs;
// i est l'index
// Je le fais dans un cycle, chacun étant exécuté pour qu'une table différente s'empile en lisant une colonne différente pour un ensemble de piles différent
// ici, je récupère les valeurs de la i-ème colonne de la configuration, et l'assigne à la chaîne d -> elle est bonne?
snowhite = Open ("\ jmp_tables \ snowhite.jmp", invisible);
// charge la table à empiler
snowhite << Stack (
colonnes (eval (d)),
Colonne d'étiquette source ("classe"), colonne de données empilées ("densité"), nom ("colonnes non empilées") (Conserver (: Split,: ID du lot,: ID du périphérique,)), Table (s) de sortie ;
Oui, j'ai supposé que cela pouvait être un problème quand j'ai remarqué qu'il y avait une "" valeur.
Malheureusement, comme vous l'avez dit, la liste provient d'une colonne de fichier Excel qui insère automatiquement une cellule vide à la fin afin que toutes les colonnes aient la même hauteur. Les valeurs "" sont donc inévitables.
Je vais essayer votre solution, merci!
et oui, mon explication était incorrecte: d n'est pas une chaîne, mais une liste de chaînes, car la commande de pile nécessite une liste, pas une chaîne!
je suppose que ré n’est pas une chaîne ici, mais une liste de chaînes comme << get values donne une liste (ou une matrice pour les variables continues). Si les ensembles de classes dans conf3 diffèrent en nombre d'éléments, la table aura autant de lignes que le plus grand ensemble. Puis pour quelques choix ré contiendra des éléments de chaîne vides, par exemple "". Cela peut être la cause de l'erreur signalée (les colonnes doivent avoir un nom autre que "").
Avec la ligne de code ci-dessous, vous pouvez supprimer toutes les instances de "" de ré avant d'empiler. Ce peut être un moyen plus facile de ranger les listes, mais cela devrait fonctionner.
Tandis que ( Contient ( ré , "" ) > 0 , Retirer ( ré , Contient ( ré , "" ) ) ) ;