Hola,
Estoy tratando de encontrar una manera de tomar una instantánea de solo las celdas pobladas de una tabla de datos (es decir, sin paneles laterales, filas en blanco en la parte inferior o columnas en blanco a la derecha).
Recientemente descubrí el cuadro de visualización del cuadro de cuadrícula de datos, que casi me permite hacer lo que quiero, pero necesito una forma de dimensionarlo para que la cuadrícula de celdas pobladas lo llene por completo. Puedo hacerlo manualmente por prueba y error, pero me gustaría hacerlo automáticamente.
es posible? Adjunto a continuación un script de muestra que ilustra lo que estoy tratando de hacer.
Muchas gracias
// Inicio del programa;
Nombres predeterminados hasta aquí (1);
dt = Abrir ("$ SAMPLE_DATA / Popcorn.jmp");
dt << cerrar panel lateral; // Solo quiero ver la cuadrícula de datos;
// Primero colorearé algunas celdas para ilustrar algo;
// Cualquier rendimiento inferior a 9 se pintará de rojo;
CellsToPaint = dt << obtiene filas donde (como columna (: rendimiento) <9);
: rendimiento << celdas de color (Color RGB (1, 0, 0), CellsToPaint);
// Cualquier rendimiento superior a 15 se pintará de verde;
CellsToPaint = dt << obtiene filas donde (como columna (: rendimiento)> 15);
: rendimiento << celdas de color (Color RGB (0, 1, 0), CellsToPaint);
// Póngalo en un cuadro de cuadrícula de datos para que pueda copiarlo como una imagen;
dgb = cuadro de cuadrícula de datos (); dgb << Establecer tabla de datos (dt);
// Si no lo cambio, habrá filas y columnas adicionales en blanco visibles;
// Puedo reducirlo manualmente, pero quiero automatizar este bit si puedo;
dgb << establecer ancho (325);
dgb << establecer altura (340);
// Veamos que tengo ahora;
nueva ventana ("My Data Grid Box", dgb);
Ruta = "$ DESKTOP / snapshot.png";
dgb << guardar imagen (ruta, "png");
// Volver a abrirlo dentro de un cuadro de imagen;
pb = cuadro de imagen (abrir (Ruta, png));
// Y mostrar la imagen final;
nueva ventana ("Mi instantánea", cuadro de panel ("Mi instantánea", pb));
// Fin del programa;
Sí, pensé que esas referencias a los colores estaban ahí por una razón
. . .
Aunque 'NumberColBox ()' y StringColBox () 'entienden' << textColor () 'y' << backgroundColor () ', estos operan en toda la columna como quizás se podría esperar.
Con respecto a la manipulación de los paneles laterales, use support@jmp.com si observa un comportamiento inesperado.
Hola Ian: sí, es cierto que podría hacerlo de esa manera; sin embargo, la motivación subyacente para formular la pregunta era que quería conservar el colorido de la celda que había incorporado en la tabla de datos original. No creo que pueda colorear las celdas individualmente en un Cuadro de tabla de la misma manera que puedo colorear las celdas en una tabla de datos, ¿es así?
Algo más que me confunde es que cuando originalmente armé el ejemplo en la parte superior de este hilo, se suponía que los paneles laterales de la tabla de datos siempre se ocultaban antes de tomar la captura de pantalla (de ahí el "dt << cerrar panel lateral" línea). Sin embargo, he visto que cometí un error allí: esa línea debería para ser "dt << cerrar paneles laterales (1)". Esto parece funcionar correctamente, pero cuando la tabla de datos se copia posteriormente en el cuadro de cuadrícula de datos, el panel lateral a veces (pero no siempre) vuelve a aparecer. Veo que el cuadro de cuadrícula de datos también tiene una propiedad "
Muchas gracias,
David
Dada la forma en que describe lo que necesita, también puede probar:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Popcorn.jmp" );
tb = TableBox();
for(c=1, c<=NCol(dt), c++,
thisCol = Column(dt, c);
if ((thisCol << getDataType) == "Numeric",
// Numeric column
tb << Append(NumberColBox(thisCol << getName, thisCol << getValues)),
// Assumed Character column
tb << Append(StringColBox(thisCol << getName, thisCol << getValues))
);
);
Close(dt, NoSave);
tb << savePicture("$DESKTOP/snapshot.png", "png");