Abre um formulário do tipo CRUD ou CRUDFreeForm.
Syntax
OPENCRUD( TTABLE, FORM-PARMS: param1, param2, ...).
TTABLE
Temp-table contendo as informações que serão lidas para a abertura do crud.
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.
Exemplo
DEFINE TEMP-TABLE ttProvider
FIELD crudName AS CHARACTER
FIELD crudMode AS CHARACTER
FIELD filterParameters AS CHARACTER.
DEFINE VARIABLE valor AS CHARACTER.
assign valor="Brasil".
CREATE ttProvider.
ttProvider.crudName = "crm.crudfreeform.CRUDpais".
ttProvider.crudMode = "D".
ttProvider.filterParameters = "nom_pais@@String@@" + valor.
OPENCRUD(ttProvider).
Mesmo Exemplo porém passando parâmetros para o CRUD:
DEFINE VARIABLE p1 AS CHARACTER.
DEFINE VARIABLE p2 AS DECIMAL.
p1 = "teste".
p2 = 35.88.
OPENCRUD(ttProvider, FORM-PARMS: p1, p2, "abcde").
Em qualquer script do CRUD podemos obter os parâmetros através das seguintes declarações:
DEFINE FORM-PARAM libName AS CHARACTER.
DEFINE FORM-PARAM value1 AS DECIMAL.
DEFINE FORM-PARAM blVar AS CHARACTER.
TEMP-TABLE ttProvider:
crudName
Caminho completo do CRUD a ser aberto.
crudMode
Variável informando se o CRUD será aberto em modo detalhe, edição ou inclusão.
Possíveis valores:
- Detalhe: "D".
- Edição: "E".
- Inclusão: "I".
filterParameters
Parâmetros de filtro.
Sintaxe:
nome da propriedade + "@@" + tipo da propriedade + "@@" + valor do filtro.
Caso seja necessário a passagem de mais de um filtro a sintaxe deve ser:
nome da propriedade1 + ";" + nome da propriedade2 + "@@" + tipo da propriedade1 + ";" + tipo da propriedade2 + "@@" + valor do filtro1 + ";" + valor
Ver Também