Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Print form
|
Print form ( {tabela ;} formulario {; formData} {; area1{; area2}} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
tabela | Tabela |
![]() |
Tabela a qual pertence o formulário, ou tabela padrão, se omitido | |||||
formulario | String, Objeto |
![]() |
Formulário a imprimir | |||||
formData | Objeto |
![]() |
Data to associate to the form | |||||
area1 | Inteiro longo |
![]() |
Marcador de impressão, a Área de início (se area2 é especificada) | |||||
area2 | Inteiro longo |
![]() |
Área de fim (se área1 for especificada) | |||||
Resultado | Inteiro longo |
![]() |
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.
No formulário parâmetro, pode passar:
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:
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.
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:
height:=Print form(myTable;myForm;areaStart;areaEnd)
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:
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:
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.
Este formulário se utiliza como diálogo e depois se imprime com modificações:
O método formulario:
If(Form event code=On Printing Detail)
Form.lastname:=Uppercase(Form.lastname)
Form.firstname:=Uppercase(Substring(Form.firstname;1;1))+Lowercase(Substring(Form.firstname;2))
Form.request:=Lowercase(Form.request)
End if
O código que chama ao diálogo depois imprime seu corpo:
$formData:=New object
$formData.lastname:="Smith"
$formData.firstname:="john"
$formData.request:="I need more COFFEE"
$win:=Open form window("Request_obj";Plain form window;Horizontally centered;Vertically centered)
DIALOG("Request_obj";$formData)
$h:=Print form("Request_var";$formData;Form detail)
Produto: 4D
Tema: Imprimir
Número
5
Modificado: 4D 2004.5
Modificado: 4D v16 R6
Modificado: 4D v20
Manual de linguagem 4D ( 4D v20 R7)