Bonjour,
à partir d'une discussion d'il y a quelques semaines (ici) J'ai ajouté au script résolu une interface graphique simple afin de sélectionner les colonnes à analyser et le% d'éléments stagnants ou vides dans ces colonnes.
Je veux créer une nouvelle colonne pour vérifier quelles colonnes de ma table sont presque vides ou stagnantes, mais
J'ai un problème lié au fait que je ne parviens pas à verrouiller les colonnes traitées dans la table principale.
Pouvez-vous m'aider
Merci d'avance
voici le code:
Noms par défaut jusqu'ici ( 1 )
globals clairs ();
// code pour choisir parmi toutes les tables ouvertes celle qui sera sélectionnée pour l'analyse
OpenDT = liste ();
Pour (i = 1 , je <= N Table (), i ++,
Insérer dans (OpenDT, Tableau de données ( je ) )
)
dlgDT = Dialogue ( "Sélectionner une table de données pour analyse" , VList (selectDT = Zone de liste (OpenDT)), HList (Button ( "D'ACCORD" ), Bouton( "Annuler" )));
Spectacle (dlgDT);
Si (dlgDT [ "bouton" ] == 1 ,
Retirer (dlgDT, N articles (dlgDT));
Liste d'évaluation (dlgDT);
)
Tableau de données actuel (selectDT [ 1 ]);
// ----------------------------------------- GUI ------ ----------------------------------- //
cd = Dialogue de colonne (
Titre( "Criblage de colonnes" ),
List = ColList ( "sélectionner les colonnes >>" , MinCol ( 1 )),
HList ( "% de colonne vide> (0-100)" ,
"% de colonnes stagnantes <(0-100)" , mypercent = EditNumber ( 90 )),
)
// déclaration de variables
pourcentage = cd [ "mypercent" ];
mylist = cd [ "Liste" ];
dt = selectDT [ 1 ];
delcols = {};
numRows = maintenant (dt);
pour (i = 1 ; maxi = Nitems (liste de lecture), i <= maxi, i ++,
si ( maintenant ( loc ( aslist ( colonne (dt, mylist [i]) << getasmatrix ), mode ( colonne (dt, mylist [i]) << getasmatrix )))> numRows * pourcent / 100 ,
insérer dans (delcols, i);
,
si ( Col N manquant ( colonne (dt, mylist [i]))> numRows * pourcent / 100 ,
insérer dans (delcols, i);
)
)
)
nitems = N articles (delcols);
colname = {};
colnamelist = {};
Pour (p = 1 , p <= nitems, p ++,
colname = Colonne (delcols [p]) << Obtenir le nom ;
Insérer dans (colnamelist, colname (p));
)
subDt1 = dt << Sous-ensemble (Colonnes (liste de colonnes), Nom de la table en sortie ( "vérifier les colonnes supprimées" ));
Je suis désolé, mais je n'ai pas regardé les détails de votre code, ni ce qu'il essaie de faire. Mais peut-être que cela devrait être:
Insert Into( delcols, myList[i] )
plutôt que:
Insert Into( delcols, i )