<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Qualcuno riesce a pensare a un modo semplice per duplicare una colonna selezionata in una tabella dati? Fondamentalmente, vorrei selezionare la colonna e ottenere una "Copia di" con tutti gli attributi, i valori, ecc. Proprio accanto all'originale, con un singolo clic sulla voce di menu. Farlo aggiungendo, spostando, impostando tipi, copiando valori ecc. è una seccatura. Suppongo che potrebbe essere scritto come componente aggiuntivo, ma speravo che ci fosse un modo più semplice.
Grazie!
Grazie, getscript è esattamente ciò che mi mancava nella mia conoscenza dello scripting!
Prova qualcosa del genere. Supporta la selezione e la copia di più colonne.
Nomi predefiniti qui ( 1 ) ;
dt = Tabella dati corrente () ;
col = dt << ottenere le colonne selezionate ;
Per ( io = 1 , io <= N articoli ( col ) , io ++,
dt << cancellare la selezione della colonna ;
colscr = col [ io ] << getscript ;
( Val ( Sostituire ( Nome Espr ( colscr ) , Arg ( Nome Espr ( colscr ) , 1 ) , "Copia di " || ( col [ io ] << ottenere il nome ) ) )) << insieme selezionato ( 1 ) ;
dt << spostare le colonne selezionate ( Dopo ( col [ io ] ) ) ;
) ;
Quindi l'ho creato come componente aggiuntivo. La parte inferiore (commentata) era un tentativo di copiare le proprietà della colonna ma non ha funzionato. (Questo era quello che stavo cercando di evitare, ma ho avuto una lunga riunione senza niente di meglio da fare...) Sarei comunque interessato se ci fosse qualcosa di più elegante di questo approccio.
dt = Tabella dati corrente();
selcol = dt << Ottieni colonne selezionate;
selcolname = dt:selcol << Ottieni nome();
newcname = "Copia di " || selcolnome;
newc = dt << Nuova colonna( newcname );
newclist = dt:newc << Ottieni nome(); //nel caso si tratti di una seconda copia!
movestr = "dt << Sposta colonne selezionate({\!"%newclist%\!"}, Dopo(\!"%nomeselcol%\!") );";
eval insert into(movestr,"%");
movestrexpr = Analizza(movestr);
movestrexpr;
Per ogni riga (dt:newc = dt:selcol);
/*proplist = dt:selcol << Ottieni elenco proprietà();
for(i=1, i < N elementi(proplist), i ++,
currprop = Char(proplista );
gotpropstr = "gotprop = dt:selcol << Ottieni proprietà(\!"%currprop%\!");";
eval insert into(gotpropstr,"%");
gotpropstrexpr = Analizza(gotpropstr);
hopropstrexpr;
setpropstr = "newc << Elenco valori(Imposta proprietà(\!"%currprop%\!", Elenco(gotprop)));";
eval insert into(setpropstr,"%");
setpropstrexpr = Analizza(setpropstr);
setpropstrexpr;
);
newcproplist = dt:newc << Ottieni elenco proprietà();
//Mostra proprietà(dt:selcol);
*/