4D v16.3

Print form

Página Inicial

 
4D v16.3
Print form

Print form 


 

Print form ( {tabela ;} formulario {; area1 {; area2}} ) -> Resultado  
Parâmetro Tipo   Descrição
tabela  Tabela in Tabela a qual pertence o formulário, ou tabela padrão, se omitido
formulario  String in Formulário a imprimir
area1  Inteiro longo in Marcador de impressão, a Área de início (se area2 é especificada)
area2  Inteiro longo in Área de fim (se área1 for especificada)
Resultado   Inteiro longo in Altura da área de impressão

Print form simplesmente imprime formulario com os valores atuais dos campos e variáveis. Geralmente este comando se utiliza para imprimir relatórios muito complexos que necessitem um controle total do processo de impressão. Print form não processa registros, nem quebras ou saltos de páginas. Estas operações são sua responsabilidade. Print form imprime campos e variáveis em um marco de tamanho fixo unicamente.

Como Print form não gera um salto de página depois de imprimir o formulário, é fácil combinar diferentes formulários na mesma página. Então, Print form é ideal para efetuar tarefas de impressão completas que envolvam diferentes tabelas e diferentes formulários. Para forçar um salto de página entre formulários, utilize o comando PAGE BREAK. Para passar à seguinte página de um formulário cuja altura é maior que o espaço disponível, chame o comando CANCEL antes do comando  PAGE BREAK.

Podem ser utilizadas três sintaxes diferentes:
  • Impressão da área de detalhe

Sintaxe:

 altura:=Print form(minhaTabela;meuForm)

Neste caso, Print form só imprime a área de detalhe (a área entre a linha cabeçalho e a linha detalhe) do formulário.

  • impressão da área do formulário

Sintaxes:

 altura:=Print form(minhaTabela;meuForm;marcador)

Neste caso, o comando imprimirá a seção designada pelo marcador. Passe no parâmetro marcador uma das constantes do tema Área de formulário:

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

• impressão de seção

Sintaxes:

 altura:=Print form(minhaTabela;meuForm;areaInicio;areaFim)
 
Neste caso, o comando imprimirá a seção incluída entre os parâmetros areaInicio e areaFim Parâmetros. Os valores introduzidos devem ser expressados em píxels.

O valor devolvido por Print form indica a altura da área de impressão. Este valor será considerado automaticamente pelo comando  Get printed height.

As caixas de diálogo de impressão não aparecem quando utiliza Print form. O relatório não utiliza os parâmetros de impressão definidos para o formulário no ambiente Desenho. Há duas formas de especificar os parâmetros de impressão antes de efetuar uma série de chamadas a Print form:

  • Chamar PRINT SETTINGS. Neste caso, você permite ao usuário escolher os parâmetros.
  • Chamar PAGE SETUP. Neste caso, os parâmetros de impressão se especificam por programação.

Print form gera apenas um evento On Printing Detail para o método de formulário.

Print form constrói cada página impressa na memória. Cada página se imprime quando a página em memória está cheia ou quando você chama a PAGE BREAK. Para ter certeza de que a impressão da última página depois de utilizar Print form, deve concluir com o comando PAGE BREAK. Do contrário, se a última página não estiver cheia, permanece em memória e não se imprime.

Atenção: Sub-formulários não são impressos com Print form. Para imprimir apenas um formulário com esses objetos, use PRINT RECORD.

Print form gera só um evento On Printing Detail para o método formulário.

4D Server: Este comando pode ser executado em 4D Server dentro do framework de um procedimento armazenado. Neste contexto:

  • Tenha certeza de que não apareça nenhuma caixa de diálogo na equipe servidor (exceto para um requerimento específico).
  • No caso de um problema relacionado com a impressora (sem papel, impressora desconectada, etc.), não é gerada uma mensagem de erro.

O exemplo a seguir atua da mesma que forma que o comando PRINT SELECTION. Entretanto, o relatório usa um de dois diferentes formulários, dependendo se o registro é para um cheque ou um depósito:

 QUERY([Registro]` Select the records
 If(OK=1)
    ORDER BY([Registro]` Ordenar os registros
    If(OK=1)
       PRINT SETTINGS ` Mostrar as caixas de diálogo de impressão
       If(OK=1)
          For($vlRegistro;1;Records in selection([Registro]))
             If([Registro]Tipo ="Cheque")
                Print form([Registro];"SaídaCheque") ` Utilize um formulário de cheques
             Else
                Print form([Registro];"SaidaDeposito") ` Utilizar outro formulário de depósitos
             End if
             NEXT RECORD([Registro])
          End for
          PAGE BREAK ` Tenha certeza de que a última página se imprima
       End if
    End if
 End if

Veja o exemplo do comando SET PRINT MARKER.



Ver também 

CANCEL
PAGE BREAK
PAGE SETUP
PRINT SETTINGS

 
PROPRIEDADES 

Produto: 4D
Tema: Imprimir
Número 5

Comportamento diferente em modo remoto

 
HISTÓRIA 

Modificado: 4D 2004.5

 
ARTICLE USAGE

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