<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
Actuellement, dans le cadre de mon analyse, je crée plusieurs fichiers basés sur les limites des cartes de contrôle. Ces fichiers sont générés sans titre. Je dois réunir toutes les analyses, mais le problème que j'ai est que je dois exclure certaines tables de données de ma jointure. Il y a 2 tables que je dois exclure de ma boucle – Ref Data et Limits_Key.
Voir ci-dessous:

J'utilisais ce code pour placer toutes les tables dans une liste :
num_tables = ntable();
liste_ensemble de données = {} ;
Pour (z = 1, z <= num_tables, z++,
dt = Tableau de données (z);
column_names = dt << obtenir les noms de colonnes ;
colonnes_valides = 1 ;
si (colonnes_valides,
one_name = dt << Obtenir le nom ;
Insérer dans (dataset_list, one_name);
);
); // fin pour
//show(liste_ensemble_de_données);
num_tables = nitems(dataset_list);
Pour (q = num_tables, q >= 1, q--,
If( !Commence par( dataset_list , "Sans titre" ),
Supprimer de (dataset_list, q)
)
);
Afficher (liste_données);
J'espérais utiliser quelque chose comme ce qui suit pour rejoindre les tables (à l'exclusion des 2 mentionnées ci-dessus)
t_count = (N Table());
afficher (t_count);
t_count = (t_count) -2 ;
dt_old = Table de données (t_count);
show(dt_old);
Show(dt_old << obtenir le nom());
dt_new = Table de données("temp_ref");
Pour (i = 3, i <= t_count, i++,
//show(Tableau de données );
dt_ancien = dt_nouveau ;
Show(dt_old << obtenir le nom());
dt_new = dt_old << Rejoindre (
Avec(Tableau de données(i)),
Fusionner les colonnes du même nom,
En faisant correspondre les colonnes (:_LimitsKey = :_LimitsKey,
:_Écran = :_Écran,
:SOUS-ENSEMBLE = :SOUS-ENSEMBLE),
Supprimer les multiples (0, 0),
Nom("Inclure les non-correspondances")(1, 1),
Table de sortie( "Limites" )
);
Fermer (dt_old);
);
Quelqu'un pourrait-il m'aider ou me donner quelques indications ?
Vous pouvez filtrer les tables inutiles dès la toute première boucle.Vous vous retrouverez avec une table appelée LimitsNNN, où NNN est le nombre de tables sans titre.Essayez quelque chose comme ça.
num_tables = Tableau N () ;
liste_ensemble de données = {} ;
Pour ( z = 1 , z <= num_tables , z ++,
dt = Tableau de données ( z ) ;
un_nom = dt << Obtenir le nom ;
Si ( Commence avec ( un_nom , "Sans titre" ) ,
Insérer dans ( liste_ensemble de données , un_nom )
) ;
) ; // fin pour
Montrer ( liste_ensemble de données ) ;
dt_old = tableau de données ( liste_ensemble de données [ 1 ]) ;
pour ( je = 2 , je <= articles ( liste_ensemble de données ) , je ++,
dt_nouveau = tableau de données ( liste_ensemble de données [ je ]) ;
join_name = "Limites" || carboniser ( je ) ;
dt_old << rejoindre ( avec ( dt_nouveau ) ,
Fusionner les colonnes du même nom ,
Par colonnes correspondantes (
: _LimitesClé = : _LimitesClé ,
: _Écran = : _Écran ,
: SOUS-ENSEMBLE = : SOUS-ENSEMBLE
) ,
Supprimer les multiples ( 0 , 0 ) ,
Nom ( "Inclure les non-correspondances" )( 1 , 1 ) ,
Tableau de sortie ( join_name )
) ;
fermer ( dt_old , nosave ) ;
dt_old = tableau de données ( join_name ) ;
) ;