Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
FORM LOAD

FORM LOAD 


 

FORM LOAD ( {Tabela ;} formulario {; *} ) 
Parâmetro Tipo   Descrição
Tabela  Tabela in Formulário de tabela para carregar (se omitido, carrega um formulário do projeto)
formulario  String, Objeto in Nome do formulário de projeto a abrir para impressão ou string Vazia para fechar o formulário de projeto atual
Operador in Se passar = o comando se aplica a base local quando se executa desde um componente (parâmetro ignorado fora deste contexto)

O comando FORM LOAD se utiliza para carregar o formulario (projeto ou tabela) em memória com o propósito de imprimir seus dados ou analisar seus conteúdos. Só pode haver um formulário atual por processo.

No parâmetro formulário pode passar:

  • o nome do formulário ou
  • a rota (em sintaxe POSIX) a um arquivo válido .json que contenha uma descrição do formulário a usar (ver Form file path), ou
  • um objeto que contenha uma descrição do formulário

Para que este comando possa ser executado, uma tarefa de impressão deve ser aberta de antemão usando o comando OPEN PRINTING JOB. O comando OPEN PRINTING JOB faz uma chamada implícita ao comando [#cmd id="1299"/], pelo que neste contexto é necessário executar [#cmd id="1103"/]. Uma vez carregado, o formulario se converte no formulário de impressão atual. Todos os comandos de gestão de objetos, e em particular, o comando Print object, trabalham com este formulário.

Se um formulário de impressão já tiver sido carregado previamente (através de uma chamada anterior ao comando FORM LOAD), ele é fechado e substituído por  formulario. Pode abrir e fechar vários formulários projeto na mesma sessão de impressão. Mudar de formulário de impressão através do comando FORM LOAD não gera saltos de página. É responsabilidade do desenvolvedor manejar os saltos de página.

Só o evento formulário On Load se executa durante a abertura do formulário, assim como os métodos dos objetos do formulário. Os outros eventos de formulário se ignoram. O evento de formulário On Unload se executa ao final da impressão.

Para manter a coerência gráfica dos formulários, se recomenda aplicar a propriedade de aparência "impressão" em todas as plataformas.

O formulário de impressão atual é fechado automaticamente quando se chama o comando CLOSE PRINTING JOB.

Nota de compatibilidade: Nas versões de 4D anteriores a v14, o comando FORM LOAD (chamado OPEN PRINTING FORM ) aceitava uma cadeia vazia no parâmetro formulario para fechar o formulário de projeto atual. Esta sintaxe já não se admite e devolve um erro. Deve utilizar o comando FORM UNLOAD ou o comando CLOSE PRINTING JOB para fechar o formulário.

Esta possibilidade consiste em carregar um formulário fora da tela para análise. Para realizar esta ação, basta com chamar a FORM LOAD fora do contexto de um trabalho de impressão. Neste caso, os eventos de formulário não se executam.

FORM LOAD] Pode ser utilizado com os comandos FORM GET OBJECTS e OBJECT Get type para levar a cabo qualquer tipo de processo no conteúdo do formulário. A continuação, deve chamar ao comando FORM UNLOAD para liberar o formulário da memória.

Tenha em conta que em todos os casos, o formulário na tela permanece carregado (não é afetado pelo comando FORM LOAD) pelo que não é necessário voltar a carregar ele depois de chamar a FORM UNLOAD.

Quando o comando se executa desde um componente, carrega os formulários componente por padrão. Se passar o parâmetro *, o método carrega os formulários  da base local.

Lembrete: no contexto off screen, não esqueça chamar FORM UNLOAD para evitar todo risco de saturação da memória.

Chamar um formulário projeto em um trabalho de impressão:

 OPEN PRINTING JOB
 FORM LOAD("print_form")
  // execução de eventos e métodos objeto

Chamar um formulário tabela em um trabalho de impressão:

 OPEN PRINTING JOB
 FORM LOAD([People];"print_form")
  // execução de eventos e métodos objeto

Análise do conteúdo de um formulário para realizar um processo nas áreas de entrada de texto:

 FORM LOAD([People];"my_form")
  // seleção do formulário sem execução dos eventos nem dos métodos
 FORM GET OBJECTS(arrObjNames;arrObjPtrs;arrPages;*)
 For($i;1;Size of array(arrObjNames))
    If(OBJECT Get type(*;arrObjNames{$i})=Object type text input)
  //… processamento
    End if
 End for
 FORM UNLOAD //não esquecer de descarregar o formulário

O exemplo abaixo retorna o número de objetos em um formulário JSON:

 ARRAY TEXT(objectsArray;0) //ordena itens de formulário em arrays
 ARRAY POINTER(variablesArray;0)
 ARRAY INTEGER(pagesArray;0)
 
 FORM LOAD("/RESOURCES/OutputForm.json") //carrega o formulário
 FORM GET OBJECTS(objectsArray;variablesArray;pagesArray;Form all pages+Form inherited)
 
 ALERT("The form contains "+String(size of array(objectsArray))+" objects") //retorna a contagem de objetos

o resultado mostrado é



Ver também 

Current form name
FORM UNLOAD
LISTBOX GET OBJECTS
OBJECT Get type
Print object

 
PROPRIEDADES 

Produto: 4D
Tema: Formulários
Número 1103

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v12
Modificado: 4D v14
Renomear: 4D v14 (OPEN PRINTING FORM)
Modificado: 4D v16 R6

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)