<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />¿Alguien puede pensar en una forma sencilla de duplicar una columna seleccionada en una tabla de datos? Básicamente, me gustaría seleccionar la columna y obtener una "Copia de" con todos los atributos, valores, etc. justo al lado del original, con un solo clic en el elemento del menú. Hacerlo agregando, moviendo, configurando tipos, copiando valores, etc. es una molestia. Supongo que se podría programar como un complemento, pero esperaba que hubiera una forma más sencilla.
¡Gracias!
Gracias, getscript es exactamente lo que me faltaba en mis conocimientos de secuencias de comandos.
Prueba algo como esto. Admite la selección y copia de múltiples columnas.
Nombres predeterminados aquí ( 1 ) ;
dt = Tabla de datos actuales () ;
columnas = dt << obtener columnas seleccionadas ;
Para ( i = 1 , i <= N artículos ( columnas ) , i ++,
dt << borrar selección de columna ;
colscr = columnas [ i ] << obtener guión ;
( evaluar ( Sustituto ( Nombre Expr ( colscr ) , Arg ( Nombre Expr ( colscr ) , 1 ) , "Copia de " || ( columnas [ i ] << obtener nombre ) ) )) << conjunto seleccionado ( 1 ) ;
dt << mover columnas seleccionadas ( Después ( columnas [ i ] ) ) ;
) ;
Entonces creé esto como un complemento. La parte inferior (comentada) fue un intento de copiar las propiedades de la columna pero no funcionó. (Esto era lo que estaba tratando de evitar, pero tuve una reunión larga sin nada mejor que hacer...) Todavía me interesaría si hubiera algo más elegante que este enfoque.
dt = Tabla de datos actual();
selcol = dt << Obtener columnas seleccionadas;
selcolname = dt:selcol << Obtener nombre();
newcname = "Copia de" || nombre de selección;
newc = dt << Nueva columna( newcname );
newclist = dt:newc << Obtener nombre(); //¡en caso de que sea una segunda copia!
muevetr = "dt << Mover columnas seleccionadas({\!"%newclist%\!"}, Después(\!"%selcolname%\!") );";
eval insertar en(movestr,"%");
muevestrexr = Analizar(movestr);
movimientostrexpr;
Para cada fila(dt:newc = dt:selcol);
/*proplist = dt:selcol << Obtener lista de propiedades();
para (i = 1, i < N elementos (lista de propuestas), i ++,
currprop = Char(lista de props );
gotpropstr = "gotprop = dt:selcol << Obtener propiedad(\!"%currprop%\!");";
evaluación insertar en(gotpropstr,"%");
gotpropstrexr = Analizar(gotpropstr);
gotpropstrexpr;
setpropstr = "newc << Lista de evaluación(Establecer propiedad(\!"%currprop%\!", Lista(gotprop)));";
evaluación insertar en(setpropstr,"%");
setpropstrexr = Analizar(setpropstr);
setpropstrexr;
);
newcproplist = dt:newc << Obtener lista de propiedades();
//Mostrar propiedades(dt:selcol);
*/