4D v16.3

Print form

Inicio

 
4D v16.3
Print form

Print form 


 

Print form ( {tabla ;} formulario {; area1 {; area2}} ) -> Resultado 
Parámetro Tipo   Descripción
tabla  Tabla in Tabla a imprimir, o Tabla por defecto, si se omite
formulario  Cadena in Formulario a imprimir
area1  Entero largo in Marcador de impresión, o Área de inicio (si area2 se especifica)
area2  Entero largo in Área de fin (si área1 se especifica)
Resultado  Entero largo in Altura de la sección impresa

Print form simplemente imprime formulario con los valores actuales de los campos y variables. Generalmente este comando se utiliza para imprimir informes muy complejos que necesiten un control total del proceso de impresión. Print form no procesa registros, ni rupturas o saltos de páginas. Estas operaciones son su responsabilidad. Print form imprime campos y variables en un marco de tamaño fijo únicamente.

Como Print form no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Entonces, Print form es ideal para efectuar tareas de impresión complejas que involucren diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando PAGE BREAK. Para pasar a la siguiente página de un formulario cuya altura es mayor que el espacio disponible, llame el comando CANCEL antes del comando PAGE BREAK.

Se pueden utilizar tres sintaxis diferentes:

  • Impresión del área de detalle

Sintaxis:

 altura:=Print form(miTabla;miForm)

En este caso, Print form sólo imprime el área de detalle (el área entre la línea encabezado y la línea detalle) del formulario.

  • Impresión del área del formulario

Sintaxis:

 altura:=Print form(miTabla;miForm;marcador)

En este caso, el comando imprimirá la sección designada por el marcador. Pase en el parámetro marcador una de las constantes del tema Área de formulario :

Constante Tipo Valor
Form break0 Entero largo 300
Form break1 Entero largo 301
Form break2 Entero largo 302
Form break3 Entero largo 303
Form break4 Entero largo 304
Form break5 Entero largo 305
Form break6 Entero largo 306
Form break7 Entero largo 307
Form break8 Entero largo 308
Form break9 Entero largo 309
Form detail Entero largo 0
Form footer Entero largo 100
Form header Entero largo 200
Form header1 Entero largo 201
Form header10 Entero largo 210
Form header2 Entero largo 202
Form header3 Entero largo 203
Form header4 Entero largo 204
Form header5 Entero largo 205
Form header6 Entero largo 206
Form header7 Entero largo 207
Form header8 Entero largo 208
Form header9 Entero largo 209

• Impresión de sección

Sintaxis:

 altura:=Print form(miTabla;miForm;areaInicio;areaFin)

En este caso, el comando imprimirá la sección incluida entre los parámetros areaInicio y areaFin Parámetros. Los valores introducidos deben expresarse en píxeles.

El valor devuelto por Print form indica la altura del área de impresión. Este valor será tomado en cuenta automáticamente por el comando Get printed height.

Las cajas de diálogo de impresión no aparecen cuando utiliza Print form. El informe no utiliza los parámetros de impresión definidos para el formulario en el entorno Diseño. Hay dos formas de especificar los parámetros de impresión antes de efectuar una serie de llamadas a Print form:

  • Llamar PRINT SETTINGS. En este caso, usted le permite al usuario elegir los parámetros.
  • Llamar PAGE SETUP. En este caso, los parámetros de impresión se especifican por programación.

Print form construye cada página impresa en memoria. Cada página se imprime cuando la página en memoria está llena o cuando usted llama a PAGE BREAK. Para asegurar la impresión de la última página después de utilizar Print form, debe concluir con el comando PAGE BREAK (excepto en el contexto de un OPEN PRINTING JOB, ver nota). De lo contrario, si la última página no está llena, permanece en memoria y no se imprime.

Atención: si el comando se llama en el contexto de un trabajo de impresión abierto con OPEN PRINTING JOB, NO debe llamar a PAGE BREAK para la última página porque se imprime automáticamente por el comando CLOSE PRINTING JOB. Si llama PAGE BREAK en este caso, se imprime una página vacía.

Este comando imprime las áreas y objetos externos (por ejemplo, las áreas 4D Write o 4D View). El área se reinicializa para cada ejecución del comando.

Atención: Print form no imprime subformularios. Para imprimir sólo un formulario con tales objetos, utilice mejor PRINT RECORD.

Print form genera sólo un evento On Printing Detail para el método formulario.

4D Server: este comando puede ejecutarse en 4D Server dentro del framework 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 específico).
  • En el caso de un problema relacionado con la impresora (sin papel, impresora desconectada, etc.), no se genera un mensaje de error.

Print form no imprime subformularios. Para imprimir sólo un formulario con tales objetos, utilice mejor PRINT RECORD.

Print form genera únicamente un evento On Printing Detail por método de formulario.

4D Server: este comando puede ejecutarse en 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 una necesidad específica).
  • En el caso de un problema relacionado con la impresora (sin papel, impresora desconectada, etc.), no se genera un mensaje de error.

El siguiente ejemplo funciona como lo haría un comando PRINT SELECTION. Sin embargo, el informe utiliza uno de los dos formularios diferentes, dependiendo de si el registro es para un cheque o para un depósito:

 QUERY([Registro]` Select the records
 If(OK=1)
    ORDER BY([Registro]` Ordenar los registros
    If(OK=1)
       PRINT SETTINGS ` Mostrar las cajas de diálogo de impresión
       If(OK=1)
          For($vlRegistro;1;Records in selection([Registro]))
             If([Registro]Tipo ="Cheque")
                Print form([Registro];"SalidaCheque") ` Utilice un formulario de cheques
             Else
                Print form([Registro];"SalidaDeposito") ` Utilizar otro formulario de depósitos
             End if
             NEXT RECORD([Registro])
          End for
          PAGE BREAK ` Asegúrese de que la última página se imprima
       End if
    End if
 End if



Ver también 

CANCEL
PAGE BREAK
PAGE SETUP
PRINT SETTINGS

 
PROPIEDADES 

Producto: 4D
Tema: Impresión
Número 5

Comportamiento diferente en modo remoto

 
HISTORIA 

Modificado: 4D 2004.5

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)