17 de octubre de 2006

Detectar el estado de un informe

Hace algunas semanas en un mensaje en el Grupo de Noticias en Español de Visual FoxPro se consultaba sobre como detectar si un informe estaba en modo de vista previa o imprimiéndose, para así agregar una condición de impresión a ciertos controles (campos, etiquetas, imágenes, líneas, etc.) que deben por ejemplo visualizarse en la vista previa, pero no imprimirse.

A partir de Visual FoxPro 8, esto es muy fácil con la función SYS(2040) que nos indica si hay un informe activo, si está en vista previa o se está imprimiendo.

SYS(2040) retorna un caracter "0" si no hay ningún informe activo; "1" si el informe esta en vista previa; ó "2" si el informe se está enviando a la impresora o a un archivo.

Por ejemplo si solo necesitamos visualizar un control en modo de vista previa, se debe agregar como condición de impresión la expresión SYS(2040)="1"

Otra opción, para campos y etiquetas, es utilizar una expresión tipo:

IIF(SYS(2040)="1", "Vista Previa", "Impresora")

Para mas detalles vea la ayuda de la Función SYS(2040) en la documentación de Visual FoxPro.

Luis María Guayán

No hay comentarios. :

Publicar un comentario