import.css=/download/attachments/327912/newLayout.css |
Abre um formulário FreeForm como WINDOW(janela modal - popup) ou VIEW (tab).
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.
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
DEFINE VARIABLE varDec AS DECIMAL.
varDec = 57.8.
OPENFORM("view/teste/freeform/TesteLibrary", VIEW, FORM-PARMS: "libA", 33, true, varDec).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.
DEFINE FORM-PARAM varD AS DECIMAL.
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.