Combinazione di tabelle di dati se il numero di tabelle aperte variaCiao,
Ho uno script che ottiene gli elementi scelti dall'utente da una casella di riepilogo. In base al numero di elementi selezionati dall'utente, vengono visualizzate una serie di tabelle. Il numero di nuove tabelle dati è variabile e vorrei combinarle tutte in un'unica tabella più grande denominata Tabella combinata. So che la funzione concatena lo fa, ma mi piacerebbe che fosse scritta in modo da ospitare un numero di tabelle specificato dall'utente.
Da questo pezzo di codice vengono visualizzate una serie di nuove tabelle denominate EachChem, EachChem 2, EachChem 3...ecc. Vorrei combinarli in una tabella più grande chiamata Tabella combinata.
For (i = 1, i <= N Items(lt), i++,
dt << Select Where( :chemical == lt[i] );
dt << Get selected rows
dt << Subset(Output Table("EachChem"), Selected Rows(i));
);
In alternativa, se potessi combinare le tabelle all'interno del ciclo for sopra e finire con una tabella di sottoinsiemi di grandi dimensioni chiamata EachChem, anche questo andrebbe bene.
Qualsiasi aiuto o suggerimento è apprezzato.
Combinazione e pulizia dei datifinestreRi: Combinazione di tabelle di dati se il numero di tabelle aperte variaQuesto dovrebbe fare quello che vuoi
theExpr = "Data Table( \!"EachChem\!") << Concatenate(";
For( i = 2, i <= N Items( lt ), i++,
theExpr = theExpr || " Data Table( \!"EachChem " || Char( i ) || "\!"),"
);
theExpr = theExpr || "Output Table( \!"Combined Table\!" ) );";
Eval( Parse( theExpr ) );Re: Combinazione di tabelle di dati se il numero di tabelle aperte variaGrazie. Ha funzionato.
Se cambiano anche i nomi delle tabelle da concatenare, dovrebbe funzionare quanto segue.
theExpr = " Data Table( \!"" || MaskList[1] || " " || Char( 2 ) || "\!") << Concatenate(";
For( i = 2, i <= N Items(MaskList), i++,
theExpr = theExpr || " Data Table( \!"" || MaskList[i] || " " || Char( 2 ) || "\!"),"
);
theExpr = theExpr || "Output Table( \!"Final Table\!" ) );";
Eval( Parse( theExpr ) );
Nel codice sopra,
MaskList è un elenco che contiene un numero variabile di maschere, a seconda dell'utente. In MaskList sono presenti tabelle associate a ciascuna maschera.
Ad esempio, la prima tabella si chiama Mask1 2 (la seconda tabella con il nome Mask1, da cui il 2 in più), la tabella successiva da concatenare si chiama Mask9 2 (la seconda tabella con il nome Mask9, da cui il 2 in più) e così via.
Questo concatenerà Mask1 2 con Mask9 2 e così via.
Lo metto qui solo a scopo di documentazione.