unir varias tablas de la listautilizando el script aquí puedo obtener una lista de tablas de cualquier carpeta. Me gustaría poder unir tablas de la lista creada. quiero que el usuario pueda elegir qué tablas puede unir con un ajuste preestablecido de qué columnas usar para unirse.
Ruta = Seleccionar directorio ("Seleccionar el directorio de datos de Analytics");
Files_All = Archivos en el Directorio (Ruta);
NFS_All = N elementos (Files_All);
Archivos = {};
// Eliminar archivos que no sean de texto
Para (f = 1, f Si (Contiene (Archivos_Todos [f], ".txt")> 0,
Insertar en (Archivos, Archivos_Todos [f]);
);
);
// Preguntar para seleccionar archivos individuales
List_NPr = {};
List_Pr = Archivos;
PromptF = Nueva ventana ("Selección de archivo", << Modal,
Cuadro de lista V (
Cuadro de texto ("Seleccionar archivos deseados"),
Caja de texto(" "),
Cuadro de lista H (
Cuadro de lista V (
Cuadro de texto ("Archivos a procesar:"),
Pr = cuadro de lista (List_Pr, ancho (350), nlines (30)),
Cuadro de botones (">>>> Eliminar seleccionado >>>>",
List_NPr = concat (List_NPr, Pr << Get Selected);
List_Pr = remove (List_Pr, Pr << Obtener índices seleccionados);
Pr << Set Items (List_Pr);
NPr << Establecer elementos (List_NPr);
)),
Caja de texto(" "),
Cuadro de lista V (
Cuadro de texto ("Archivos excluidos:"),
NPr = Cuadro de lista (List_NPr, ancho (350), nlines (30)),
Caja de botones ("<<<< Add Selected <<<<",
List_Pr = concat (List_Pr, NPr << Get Selected);
List_NPr = remove (List_NPr, NPr << Obtener índices seleccionados);
Pr << Set Items (List_Pr);
NPr << Establecer elementos (List_NPr);
)))));
espera (0);
Archivos = List_Pr;
NFS = N elementos (archivos);
);
Re: unir varias tablas de la listaEntonces, ¿cuál es tu pregunta? Tiene un paréntesis derecho extraño en la última línea de su script y no está capturando la lista final.
Aquí está su JSL modificado. FList contiene los archivos seleccionados por el usuario. La última línea muestra las selecciones finales. Ahora tienes que escribir las uniones.
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>Re: unir varias tablas de la lista¡gracias!
En realidad lo descubrí.
Aquí está mi salution si alguien quisiera.
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: unir varias tablas de la listaPor favor, marque su solución como una "Solución". También marcaría a Ian como una solución también.