joindre plusieurs tables de la listeen utilisant le script ici, je peux obtenir une liste de tables à partir de n'importe quel dossier. j'aimerais pouvoir joindre des tables à partir de la liste créée. Je veux que l'utilisateur puisse choisir les tables qu'il peut rejoindre avec un préréglage des colonnes à utiliser pour se joindre.
Path = Pick Directory("Select Analytics Data Directory");
Files_All = Fichiers dans le répertoire (chemin) ;
NFS_All = N éléments (Files_All);
Fichiers = {} ;
//Suppression des fichiers non textuels
Pour (f=1, f < NFS_All+1, f++,
Si(Contient(Tous_Fichiers[f],"".txt") > 0,
Insérer dans(Fichiers,Fichiers_Tous[f]);
);
);
// Invite à sélectionner des fichiers individuels
List_NPr = {} ;
List_Pr = Fichiers ;
PromptF = Nouvelle fenêtre("Sélection de fichier", << Modal,
Zone de liste V(
Zone de texte ("Sélectionner les fichiers souhaités"),
Zone de texte(" "),
H Zone de liste(
Zone de liste V(
Zone de texte("Fichiers à traiter :"),
Pr = ListBox(List_Pr, width(350), nlines(30)),
Boîte à boutons(">>>> Supprimer la sélection >>>>",
List_NPr = concat(List_NPr, Pr << Get Selected);
List_Pr = remove(List_Pr, Pr << Obtenir les indices sélectionnés);
Pr << Définir les éléments (List_Pr);
NPr << Définir les éléments (List_NPr);
)),
Zone de texte(" "),
Zone de liste V(
Zone de texte("Fichiers exclus :"),
NPr = ListBox(List_NPr, width(350), nlines(30)),
Boîte à boutons("<<<< Ajouter la sélection <<<<",
List_Pr = concat(List_Pr, NPr << Get Selected);
List_NPr = remove(List_NPr, NPr << Obtenir les indices sélectionnés);
Pr << Définir les éléments (List_Pr);
NPr << Définir les éléments (List_NPr);
)))));
attendre(0);
Fichiers = List_Pr ;
NFS = N éléments (fichiers);
);
Re : Joindre plusieurs tables à partir de la listeVeuillez marquer votre solution comme "Solution".Je marquerais également Ian comme une solution aussi.
Re : Joindre plusieurs tables à partir de la listemerci!
je l'ai compris en fait.
voici mon salut si quelqu'un le souhaite.
Clear Globals();
Clear Symbols();
Main Menu("Minimize All");
//Set text export preferences
//Preferences(Export Settings(Export Table Headers));
//Preferences(Export Settings(End of Field(Tab)));
//Initial prompt to select split level
Prompt = New Window ("Output Selection", <<MODAL> 0,
Insert Into(Files,Files_All[f]);
);
);
//Prompt to select individual files
List_NPr = {};
List_Pr = Files;
PromptF = New Window("File Selection", << Modal,
V List Box(
Text Box ("Select Desired Files"),
Text Box(" "),
H List Box(
V List Box(
Text Box("Files to join:"),
Pr = List Box(List_Pr, width(350), nlines(30)),
Button Box(">>>> Remove Selected >>>>",
List_NPr = concat(List_NPr, Pr << Get Selected);
List_Pr = remove(List_Pr, Pr << Get Selected Indices);
Pr << Set Items(List_Pr);
NPr << Set Items(List_NPr);
)),
Text Box(" "),
V List Box(
Text Box("Files Excluded:"),
NPr = List Box(List_NPr, width(350), nlines(30)),
Button Box("<<<< Add Selected <<<<",
List_Pr = concat(List_Pr, NPr << Get Selected);
List_NPr = remove(List_NPr, NPr << Get Selected Indices);
Pr << Set Items(List_Pr);
NPr << Set Items(List_NPr);
)))));
wait(0);
Files = List_Pr;
NFS = N Items(Files);
// table that others join
Fullpath = Path||Files[1];
DT_old = Open( Fullpath,private);
DT_old << Minimize Window;
//loop to join other tables
For (a=2, a < NFS+1, a++,
Fullpath = Path||Files[a];
DT_new = Open( Fullpath,private);
DT_new << Minimize Window;
join_name = "Limits" || char(a);
dt_old << join( with(data table(dt_new)),
Merge Same Name Columns,
By Matching Columns(
:A = :A,
:B = :B,
:C = :C,
),
Drop multiples( 1, 0 ),
Name( "Include non-matches" )(1, 1),
Output Table( join_name )
);
close(dt_old, nosave);
dt_old = data table(join_name);
);
</MODAL>Re : Joindre plusieurs tables à partir de la listeQuelle est donc votre question ? Vous avez une parenthèse droite superflue dans la dernière ligne de votre script et vous ne capturez pas la liste finale.
Voici votre JSL modifié.FList contient les fichiers sélectionnés par l'utilisateur.La dernière ligne montre les sélections finales.Vous devez maintenant créer un script pour les jointures.
Path = Pick Directory( "Select Analytics Data Directory" );
Files_All = Files In Directory( Path );
NFS_All = N Items( Files_All );
Files = {};
//Remove non-text files
For( f = 1, f < NFS_All + 1, f++,
If( Contains( Files_All[f], ".txt" ) > 0,
Insert Into( Files, Files_All[f] )
)
);
//Prompt to select individual files
List_NPr = {};
List_Pr = Files;
PromptF = New Window( "File Selection",
<<MODAL>>>> Remove Selected >>>>",
List_NPr = Concat( List_NPr, Pr << Get Selected );
List_Pr = Remove( List_Pr, Pr << Get Selected Indices );
Pr << Set Items( List_Pr );
NPr << Set Items( List_NPr );
FList = List_Pr;
)
),
Text Box( " " ),
V List Box(
Text Box( "Files Excluded:" ),
NPr = List Box( List_NPr, width( 350 ), nlines( 30 ) ),
Button Box( "<<<< Add Selected <<<<",
List_Pr = Concat( List_Pr, NPr << Get Selected );
List_NPr = Remove( List_NPr, NPr << Get Selected Indices );
Pr << Set Items( List_Pr );
NPr << Set Items( List_NPr );
FList = List_Pr;
)
)
)
)
);
Wait( 0 );
Files = List_Pr;
NFS = N Items( Files );
show(FList);</MODAL>