Ciao, ho un set di colonne con dati per più prodotti per righe. Ho bisogno di dividere questi dati creando nuove colonne identiche con suffisso del nome del prodotto e copiando solo i dati del prodotto corrispondenti dalle colonne precedenti. Ho solo bisogno di aiuto per copiare i dati appropriati. Stavo provando a farlo con selezioni e copia e incolla, ma non sono sicuro di come fare. La regione di interesse inizia da dt << Seleziona dove in poi.
Names Default To Here( 1 );
dt = Current Data Table();
colNames = dt << Get Column Names(String);
//Select set of columns to split
for (i = nitems(colNames), i > 0, i--,
if (!contains(colNames[i], "SPC"),
remove from(colNames, i);
);
);
//Add new columns with product name suffix and copy/paste properties
Summarize(unique_values=by(:Products));
colNames2=colNames;
for (k = nitems(unique_values), k > 0, k--,
for (i = nitems(colNames), i > 0, i--,
colNames2[i] = colNames[i] || " " || unique_values[k];
dt << New Column( colNames2[i] );
);
for( j = 1, j <= nitems(colNames), j++,
colProps = Column( dt, colNames[j] ) << Get Column Properties;
Column( dt, colNames2[j] ) << Add Column Properties( colProps );
);
<U><STRONG> dt << Select Where( :Products == unique_values[k] );
dt << selectColumns(colNames);
dt << Copy;
dt << selectColumns(colNames2);
dt << Paste;</STRONG></U>
);
Ciao, se vuoi copiare e incollare il valore in base alla selezione della riga, puoi scrivere codice come il seguente.
Spero possa essere d'aiuto.
dt << Select Where( :Products == unique_values[k] );
r = dt << Get Selected Rows();
val = As Column( colNames[i] )[r];
For( h = 1, h <= N Row( val ), h++,
As Column( colNames2[i] )[r[h]] = val[h]
);