Histórico da Página
...
OPENFORM( formXML, WINDOW | VIEW, [logicalVar]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).
...
Abre o formulário em uma nova TAB.
logicalVarreturnVar
Variável opcional do tipo LOGICAL, 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 lógico indicando se a janela modal foi fechada com OK(true) ou CANCELAR(false). O valor da variável "logicalVar" será setado com o mesmo valor informado no comando CLOSEFORMque 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
...
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).
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.
...