Buongiorno,
partendo da una discussione di un paio di settimane fa (Qui) , ho aggiunto allo script risolto una semplice interfaccia grafica per selezionare le colonne da analizzare e la percentuale di elementi stagnanti o vuoti in tali colonne.
Voglio creare una nuova colonna per controllare quali colonne del mio tavolo sono quasi vuote o stagnanti, ma
Ho un problema che non sono in grado di bloccare le colonne elaborate alla tabella principale, nel mio script qualcosa è sbagliato,
Mi potete aiutare
Grazie in anticipo
qui il codice:
Nomi predefiniti qui ( 1 );
chiari globali ();
// codice per scegliere tra tutte le tabelle aperte che verranno selezionate per l'analisi
OpenDT = Elenco ();
Per (i = 1 , io <= N Tabella (), i ++,
Inserire (OpenDT, Tabella dati ( io ) )
);
dlgDT = Dialogo ( "Seleziona tabella dati per analisi" , VList (selectDT = Casella di riepilogo (OpenDT)), HList (pulsante ( "OK" ), Pulsante ( "Annulla" )));
Mostrare (dlgDT);
Se (dlgDT [ "pulsante" ] == 1 ,
Rimuovere da (dlgDT, N articoli (dlgDT));
Eval List (dlgDT);
);
Tabella dei dati corrente (selezionareDT [ 1 ]);
// ----------------------------------------- GUI ------ ----------------------------------- //
cd = Finestra di dialogo delle colonne (
Titolo( "Screening di colonne" ),
List = ColList ( "seleziona Colonne >>" , MinCol ( 1 )),
HList ( "% della colonna vuota> (0-100)" ,
"% di colonne stagnanti <(0-100)" , mypercent = EditNumber ( 90 )),
);
// dichiarazione delle variabili
percent = cd [ "Mypercent" ];
mylist = cd [ "Elenco" ];
dt = selectDT [ 1 ];
delcols = {};
numRows = nrows (Dt);
per (I = 1 ; maxi = Nitems (lista mia), i <= maxi, i ++,
Se ( nrows ( loc ( aslist ( colonna (Dt, mylist [i]) << getasmatrix ), modalità ( colonna (Dt, mylist [i]) << getasmatrix )))> numRows * percent / 100 ,
inserire (delcols, i);
,
Se ( Col N mancante ( colonna (dt, mylist [i]))> numRows * percent / 100 ,
inserire (delcols, i);
);
);
);
nitems = N articoli (delcols);
nome = {};
colnamelist = {};
Per (p = 1 , p <= nitem, p ++,
nome_colonna = Colonna (delcols [p]) << Ottieni il nome ;
Inserire (colnamelist, colname (p));
);
subDt1 = dt << sottoinsieme (Columns (colnamelist), Nome tabella di output ( "controlla le colonne rimosse" ));
Mi dispiace, ma non ho guardato i dettagli del tuo codice, né quello che sta cercando di fare. Ma forse dovrebbe essere:
Insert Into( delcols, myList[i] )
piuttosto che:
Insert Into( delcols, i )