Esta macro explica cómo usar DataCells y AttributeSet para inspeccionar una fila/columna en la pantalla para texto y atributos. En este ejemplo puede ver:
Cómo obtener una colección de DataCells para una posición y longitud dadas.
Cómo iterar por DataCells para formar una cadena de texto
Para comparar, cómo puede hacer algo similar utilizando getText().
Y finalmente, cómo trabajar con atributos, obtener un listado de cadenas o determinar si cadenas específicas están colocadas en una posición dada de la pantalla.
var macro = createMacro(function*() {
'use strict';
// Obtener PresentationSpace para interactuar con el host
var ps = session.getPresentationSpace();
// Declarar variables para uso posterior
var cells;
var text;
var attrs;
// Establecer el tiempo de espera predeterminado para las funciones "wait"
wait.setDefaultTimeout(10000);
// Macro de ejemplo para trabajar con DataCells y Attributes
try {
yield wait.forCursor(new Position(24, 2));
// Obtener DataCells del espacio de presentación.
// Fila 19, col 3 es la pregunta, 35 caracteres de longitud
// "Seleccionar de los siguientes comandos:"
cells = ps.getDataCells({row:19, col:3}, 35);
text = '';
// Puede visualizar texto utilizando getText
yield ui.message("Screen text: " + ps.getText({row:19, col:3}, 35));
// O puede ensamblar el texto de las DataCells en cada posición
for(var index = 0; index < cells.length; index++) {
text = text.concat(cells[index].getChar());
}
// Y visualizar el texto
yield ui.message("Cells text: " + text);
// Obtener los atributos de la primera DataCell (cell[0])
attrs = cells[0].getAttributes();
// Muestra si hay o no atributos en la celda de datos
yield ui.message("Conjunto de atributos vacío: " + attrs.isEmpty());
// Muestra cuántos atributos están configurados
yield ui.message("Número de atributos: " + attrs.size());
// Muestra qué atributos están configurados
yield ui.message("Atributos: " + attrs.toString());
// Mostrar ahora si el atributo de alta intensidad está configurado
yield ui.message("Es de alta intensidad: "
+ attrs.contains(Attribute.HIGH_INTENSITY));
// Mostrar ahora si el atributo subrayado está configurado
yield ui.message("Es subrayado: "
+ attrs.contains(Attribute.UNDERLINE));
// Mostrar ahora si los atributos alfanumérico, intensificado y detectable por lápiz están configurados
yield ui.message("Es alfanumérico, intensificado y detectable por lápiz: "
+ attrs.containsAll([Attribute.ALPHA_NUMERIC, Attribute.HIGH_INTENSITY, Attribute.PEN_DETECTABLE]));
// Mostrar ahora si los atributos alfanumérico, intensificado y detectable por lápiz están configurados
yield ui.message("Es alfanumérico, intensificado y detectable por lápiz: "
+ attrs.containsAll([Attribute.UNDERLINE, Attribute.HIGH_INTENSITY, Attribute.PEN_DETECTABLE]));
} catch (error) {
yield ui.message(error);
}
//Fin Macro Generada
});
// Ejecutar la macro
return macro();