Saltar al contenido principal
Versión: Siguiente

QR REPORT

QR REPORT ( {tabla ;} doc {; nomMetodo}{; *} )

ParámetroTipoDescripción
tablaTabla🡒Tabla a utilizar para el informe o tabla por defecto si se omite
docCadena🡒Documento de informe rápido a cargar
nomMetodoCadena🡒Nombre del método a llamar
*Operador🡒Eliminación de las cajas de diálogo de impresión

Descripción

QR REPORT imprime un informe para tabla, con ayuda del editor de informes rápidos de 4D. Este editor permite a los usuarios crear sus propios informes. Para mayor información sobre la creación de informes rápidos con la ayuda del editor de informes rápidos, consulte la sección Informes rápidos en el Manual de Diseño de 4D.

Notas:

  • El editor no aparece si la tabla ha sido declarada “Invisible.”
  • Cuando el editor se llama utilizando el comando QR REPORT, las relaciones entre las tablas conservan su estado manual, donde aplique. Este principio permite al desarrollador administrar él mismo este estado utilizando los comandos SET AUTOMATIC RELATIONS y SET FIELD RELATION. Sin embargo, tenga en cuenta que las funcionalidades automáticas se desactivan cuando las tablas relacionadas se visualizan en un formulario listado mostrado utilizando DISPLAY SELECTION, MODIFY SELECTION o un subformulario. Ver Relaciones manuales y automáticas.
  • El editor se llama en una ventana externa y no es posible utilizar el comando QR ON COMMAND en este contexto. Sin embargo, puede utilizar el parámetro nomMetodo para ejecutar código personalizado cuando un comando de interfaz se activa (ver abajo).

El parámetro documento es un documento de informe que fue creado con el editor de informes rápidos y guardado en disco. El documento guarda las especificaciones del informe, no lo registros a imprimir. Si una cadena vacía ("") se pasa en documento, QR REPORT muestra una caja de diálogo de apertura de archivos, en la cual el usuario puede seleccionar el informe a imprimir.
Si el parámetro documento especifica un documento que no existe (por ejemplo, si pasa Char(1) en documento), se muestra el editor de informes rápidos.

El parámetro nomMetodo designa un método de proyecto 4D que se ejecuta cada vez que un comando del editor de informes rápidos es llamado por la selección de un elemento del menú o hacer clic en un botón. Utilizar este parámetro es equivalente a utilizar QR ON COMMAND en el contexto de la ventana del editor de informes rápidos (QR ON COMMAND sólo funciona en el contexto de un área incluida). Por ejemplo, se puede utilizar este parámetro para cambiar el juego de caracteres utilizado por el informe rápido. El método nomMetodo recibe dos parámetros:

ParámetroTipoDescripción
$1Entero largoReferencia del área
$2Entero largoNúmero del comando seleccionado (entero largo). Puede comparar este valor con las constantes del tema QR Comandos (solo son soportados los eventos listados):
ConstanteValorComentario
qr cmd generate2008Compatible editor 64 bits (uso del comando QR RUN recomendado)
qr cmd open2001
qr cmd page setup2006Compatible editor 64 bits
qr cmd print preview2007Compatible editor 64 bits
qr cmd save2002
qr cmd save as2003

Nota: si desea compilar su base, debe declarar los parámetros $1 y $2 explícitamente como enteros largos, incluso si no los utiliza.

Si desea ejecutar el comando inicial elegido por el usuario, utilice la siguiente instrucción en el método nomMetodo:

 QR EXECUTE COMMAND($1;$2)

Si el parámetro nomMetodo es una cadena vacía ( "") o se omite, ningún método se llama y se aplica la operación estándar de QR REPORT.

Una vez seleccionado un informe, se muestran las cajas de diálogo de impresión, a menos que se especifique el parámetro *. Si se especifica este parámetro, no se muestran estas cajas de diálogo y se imprime el informe.

Si no se involucar al editor de informes rápidos, la variable sistema OK toma el valor 1 si se imprime un informe; de lo contrario, toma el valor 0 (cero) (por ejemplo, si el usuario hace clic en Cancelar en las cajas de diálogo de impresión).

4D Server: este comando puede ejecutarse en el servidor 4D Server en el marco de un procedimiento almacenado. En este contexto:

  • Asegúrese de que no aparezca ninguna caja de diálogo en el equipo servidor (excepto para un requerimiento especifico). Para hacer esto, es necesario llamar al comando con el parámetro *.
  • La sintaxis que hace aparecer el editor Quick Report no funciona con 4D Server; en este caso, la variable sistema OK toma el valor 0.
  • En el caso de un problema relacionado con la impresora (sin papel, impresora desconectada, etc.), no se genera un error.

Ejemplo 1

El siguiente ejemplo permite al usuario efectuar una búsqueda en la tabla [Personas], y luego imprime automáticamente el informe “Lista detallada”:

 QUERY([People])
 If(OK=1)
    QR REPORT([People];"Detailed Listing";*)
 End if

Ejemplo 2

El siguiente ejemplo permite al usuario efectuar una búsqueda en la tabla [Personas], y luego seleccionar el informe a imprimir:

 QUERY([People])
 If(OK=1)
    QR REPORT([People];"")
 End if

Ejemplo 3

El siguiente ejemplo permite al usuario efectuar una búsqueda en la tabla [Personas], y luego muestra el editor de informes rápidos de manera que el usuario pueda diseña, guardar, cargar e imprimir informes:

 QUERY([People])
 If(OK=1)
    QR REPORT([People];Char(1))
 End if

Ejemplo 4

Consulte el ejemplo del comando SET FIELD RELATION.

Ejemplo 5

Usted desea convertir el conjunto de caracteres utilizado en un informe rápido llamado utilizando QR REPORT en Mac Roman:

 QR REPORT([MyTable];Char(1);"myCallbackMeth")

El método myCallbackMeth convierte el informe cuando se genera:

 var $1;$2 : Integer
 If($2=qr cmd generate) //si generamos un informe
    var $myblob : Blob
    var $path;$text : Text
    var $type : Integer
    QR EXECUTE COMMAND($1;$2) //ejecución del comando
    QR GET DESTINATION($1;$type;$path) //recuperación del destino
    If(($type=qr HTML file)|($type=qr text file))
       DOCUMENT TO BLOB($path;$myblob)
  //conversión del texto utilizando UTF-8
       $text:=Convert to text($myblob;"UTF-8")
  //uso del conjunto MacRoman
       CONVERT FROM TEXT($text;"MacRoman";$myblob)
  //Devuelve el informe convertido
       BLOB TO DOCUMENT($path;$myblob)
    End if
 Else //de lo contrario, ejecución del comando
    QR EXECUTE COMMAND($1;$2)
 End if

Ver también

PRINT LABEL
PRINT SELECTION
SET ALLOWED METHODS