rechercher des noms de colonnes et exécuter une partie du code à l'aide de JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />salut tout le monde
j'ai une exigence où je dois rechercher les noms de colonne du fichier .jmp, puis effectuer certaines étapes uniquement si cette colonne est présente. Comment puis-je inclure cette recherche de colonne dans JSL ? par exemple, j'ai des données dans un fichier Excel avec les noms de colonne "A", "B", "C", "D". La colonne D a un filtre et les options sont "Oui" "Non" et "Peut être" . En utilisant JSL , j'ai regroupé la feuille de données en utilisant Table->tabulate->option . J'ai regroupé les données dans la colonne "D".Maintenant, j'ai un tableau avec des colonnes "oui, non et peut-être". Maintenant, je veux rechercher dans ces colonnes l'option" may be" . Si "peut être" est disponible, je souhaite effectuer certaines étapes. Sinon, je veux effectuer d'autres étapes. comment puis-je inclure cela dans JSL?
Re : rechercher des noms de colonnes et exécuter une partie du code à l'aide de JSLsolution très utile
Re : rechercher des noms de colonnes et exécuter une partie du code à l'aide de JSLoui ça marche. Mais j'ai quelque chose qui m'empêche d'exécuter le code.
Tableau de lignes ( Groupement de colonnes ( : Numéro de série , : Créé par ) )
)
) ;
nouveau = dttab << Transformer en tableau de données ;
liste de nom = { "APPR" , "SEQU APPR" , "SEQU HAPP" , "HAPP" , « RJCT » , "SEQU RJCT" , "SEQU HREJ" , "HREJ" , "DREQ" , "SEQU DREQ" } ; // Dans ces options, je veux obtenir les lignes qui ont des valeurs '0' pour les colonnes DREQ et SEQU DREQ. Ces deux colonnes peuvent contenir des valeurs de 1 ou 0 mais je ne veux pas de lignes avec des valeurs 0.
noms_principal = nouveau << Obtenir les noms de colonne ( Chaîne ) ;
Pour ( je = 1 , je <= N articles ( liste de nom ) , je ++,
Si ( Contient ( noms_principal , liste de nom [ je ] ) == 0 ,
nouveau << Nouvelle colonne ( liste de nom [ je ] , Nombre , << définir chaque valeur ( 1000 ) ) ; // Je définis chaque valeur sur 1000 car j'ai déjà 0 ou 1 pour ces options
) ;
) ;
Dans le code ci-dessus, chaque fois que j'ai les colonnes DREQ et SEQU DREQ, je veux toutes les lignes qui ont les valeurs 0 dans l'une ou l'autre de ces colonnes. Si ces colonnes ne sont pas présentes, la valeur 1000 est affichée dans le code. Mais comment incorporer cette condition selon laquelle je n'ai besoin que de 0 si ces colonnes sont présentes. j'espère que vous avez compris ma question.
Merci beaucoup
Re : rechercher des noms de colonnes et exécuter une partie du code à l'aide de JSLTu y es presque.Vous devez donner un nom à tout pour pouvoir vous y référer plus tard.Ce code devrait fonctionner :
dt = Tableau de données ( "Fiche de données" ) ;
dttab = dt << Tabuler (
Ajouter un tableau (
Tableau des colonnes ( Groupement de colonnes ( : Tâche d'état de l'utilisateur ) ) , // La tâche d'état de l'utilisateur a un état différent à chaque fois et chacune a une valeur de 0 ou 1. A chaque fois en fonction des données, certaines options peuvent manquer.
Tableau de lignes ( Groupement de colonnes ( : Numéro de série , : Créé par ) )
)
) ;
nouveau = dttab << Transformer en tableau de données ;
liste de nom = { "APPR" , "SEQU APPR" , "SEQU HAPP" , "HAPP" , « RJCT » , "SEQU RJCT" , "SEQU HREJ" , "HREJ" , "DREQ" , "SEQU DREQ" } ; //J'ai ces options sous la colonne de la liste déroulante "Tâche d'état de l'utilisateur". Je n'ai pas les mêmes listes déroulantes à chaque fois car il manque des données dans cette colonne.
noms_principal = nouveau << Obtenir les noms de colonne ( Chaîne ) ;
Pour ( je = 1 , je <= N articles ( liste de nom ) , je ++,
Si ( Contient ( noms_principal , liste de nom [ je ] ) == 0 ,
nouveau << Nouvelle colonne ( liste de nom [ je ] , Nombre , << définir chaque valeur ( 1000 ) ) ; // Je définis chaque valeur sur 1000 car j'ai déjà 0 ou 1 pour ces options
) ;
) ;
Re : rechercher des noms de colonnes et exécuter une partie du code à l'aide de JSLPour un étranger, votre script est assez déroutant et il est impossible de dire exactement ce qui ne va pas sans plus d'informations. Essayez de décrire "une erreur" plus en détail.
Une supposition est que vous adressez la mauvaise table ou qu'une table déduite n'existe pas. Vous semblez travailler avec au moins quatre tableaux de données : le tableau intitulé "Fiche de données" et les trois variables du tableau dt , créer une liste & surv_pt_main . Êtes-vous sûr d'avoir ou d'utiliser toutes ces tables ? Par exemple, vous faites dt à partir d'un tableau de "Fiche technique". Mais vous n'utilisez jamais réellement dt ?
Re : rechercher des noms de colonnes et exécuter une partie du code à l'aide de JSLJSL affiche une erreur dans la ligne surv_pt_main.
J'ai écrit le script comme suit :
dt=data table("Data Sheet");
<
Ajouter un tableau(
Column Table( Grouping Columns( :User Status Task ) ), //User Status Task a un statut différent à chaque fois et chacun a une valeur de 0 ou 1. A chaque fois en fonction des données, certaines options peuvent manquer.
Tableau de lignes( Colonnes de regroupement( :Numéro de série,:Créé par) )
))
<< Transformer en tableau de données ;
name_list={"APPR","SEQU APPR","SEQU HAPP","HAPP","RJCT","SEQU RJCT","SEQU HREJ","HREJ","DREQ","SEQU DREQ"} ; //J'ai ces options sous la colonne de la liste déroulante "Tâche d'état de l'utilisateur". Je n'ai pas les mêmes listes déroulantes à chaque fois car il manque des données dans cette colonne.
main_names=create_list<
for(i=0,i<=nitems(name_list),i++,
if(contains(main_names,name_list )==0,
surv_pt_main< ,Number,<
);
);
j'espère que quelqu'un pourra m'aider avec ça.
merci
Re : rechercher des noms de colonnes et exécuter une partie du code à l'aide de JSLJe le fais souvent parce que dans nos données, vous n'êtes pas assuré de toutes les réponses.Si une colonne n'est pas là, je l'ajoute et y mets des 0.Quelque chose comme ça:
// Insérer les colonnes manquantes.
liste de nom = { "Actuel" , "Précédent" , "Cumulatif" } ;
noms_principal = surv_pt_main << Obtenir les noms de colonne ( Chaîne ) ;
// Si une colonne est manquante, ajoutez-la avec un ensemble de 0
pour ( je = 1 , je <= articles ( liste de nom ) , je ++,
si ( contient ( noms_principal , liste de nom [ je ]) == 0 ,
surv_pt_main << Nouvelle colonne ( liste de nom [ je ] , Nombre , << définir chaque valeur ( 0 )) ;
) ;
) ;