import.css=/download/attachments/327912/newLayout.css

Abre um formulário FreeForm como WINDOW(janela modal - popup) ou VIEW (tab).

Syntax

OPENFORM( formXML, WINDOW | VIEW, [returnVar], FORM-PARAMS: param1, param2, ...).

formXML

Caminho e nome do XML do formulário a ser aberto.

Exemplo: "view/exemplo/freeform/FreeFormTeste". Onde "exemplo" é o nome da aplicação e "FreeFormTeste" é o nome do formulário.

WINDOW

Abre o formulário em uma janela modal (tipo POPUP).

VIEW

Abre o formulário em uma nova TAB.

returnVar

Variável opcional que pode ser usada em conjunto com o tipo WINDOW. Quando informado esse parâmetro, após aberto o formulário como popup, a execução do script será pausada até que seja utilizado o comando CLOSEFORM() em um script do formulário recém aberto. O comando CLOSEFORM recebe um parâmetro que será utilizado para atribuir o seu valor para variável returnVar.

A returnVar pode ser dos tipos CHARACTER, INTEGER, DECIMAL, DATE, LOGICAL e TEMP-TABLE.

Se a returnVar não for informada no comando OPENFORM, o script em questão continua a execução normal sem esperar pelo CLOSEFORM.

FORM-PARAMS: param1, param2, ...

Parâmetros a serem passados para o formulário a ser aberto. É possível passar qualquer quantidade de parâmetros e os mesmos podem ser valores informados diretamente no comando ou variáveis dos tipos: CHARACTER, INTEGER, DECIMAL, DATE, LOGICAL e TEMP-TABLE.

No lado do formulário a ser aberto, podemos em qualquer script do mesmo obter os parâmetros declarando variáveis da seguinte forma:

DEFINE FORM-PARAM paramName AS DATATYPE.

Os nomes informados para os parâmetros(paramName) não precisam ser os mesmos das variáveis passadas para o comando OPENFORM. Porém a ordem de declaração dos parâmetros precisa ser a mesma da ordem informada no OPENFORM, assim como os tipos (DATATYPE) precisam corresponder. DATATYPE pode ser: CHARACTER, INTEGER, DECIMAL, DATE, LOGICAL e TEMP-TABLE.

 

Exemplos

Abre freeform em uma janela modal

OPENFORM("view/teste/freeform/TesteLibrary", WINDOW).

 

Abre freeform em uma tab

OPENFORM("view/teste/freeform/TesteLibrary", VIEW).

 

Abre freeform em uma janela modal e aguarda fechamento da janela aberta

DEFINE VARIABLE bl AS LOGICAL.
OPENFORM("view/cm/freeform/TesteModal", WINDOW, bl).

/* A partir desse ponto só será executado após o fechamento da janela modal com o comando CLOSEFORM(). */

IF bl THEN DO:
   DISPLAY "OK".
END.
ELSE DO:
   DISPLAY "CANCEL".
END.

No formulário "TesteModal" ao fechar o mesmo poderiamos executar o seguinte comando em algum de seus scripts:

CLOSEFORM(true).

 

Mesmo exemplo anterior porém retornando uma TEMP-TABLE.

DEFINE VARIABLE tt AS TEMP-TABLE.
OPENFORM("view/cm/freeform/TesteModal", WINDOW, tt).

/* A partir desse ponto só será executado após o fechamento da janela modal com o comando CLOSEFORM(). */

FOR EACH tt:
     ....
END.

No formulário "TesteModal" ao fechar o mesmo poderiamos executar o seguinte comando em algum de seus scripts:

DEFINE TEMP-TABLE tt1
   FIELD code AS INTEGER
   FIELD desc AS CHARACTER.
CREATE tt1.
tt1.code = 10.
tt1.desc = "azul".
CREATE tt1.
tt1.code = 20.
tt1.desc = "vermelho".
CLOSEFORM(tt1).

 

Abre freeform em uma tab passando parâmetros para o formulário a ser aberto

OPENFORM("view/teste/freeform/TesteLibrary", VIEW, FORM-PARMS: "libA", 33, true).

No script do evento "creationComplete" do formulário "TesteLibrary", podemos obter os parâmetros fazendo as seguintes declarações:

DEFINE FORM-PARAM libName AS CHARACTER.
DEFINE FORM-PARAM value1 AS INTEGER.
DEFINE FORM-PARAM blVar AS LOGICAL.

 

Abre freeform em uma tab passando como parâmetro uma TEMP-TABLE e retornando outra TEMP-TABLE.

OPENFORM("view/teste/freeform/TesteFF", VIEW, tt2, FORM-PARMS: tt1).

No formulário "TesteFF", podemos obter os parâmetros fazendo a seguinte declaração(em qualquer script):

DEFINE FORM-PARAM tt1 AS TEMP-TABLE.

 

 

Quando um FreeForm for aberto como POPUP, o tamanho da janela será definido pelas propriedades popupWidth

e popupHeight do FreeForm. Caso essas propriedades não estejam definidas, serão utilizadas as propriedades

width e height do container principal do FreeForm.