Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/327912/newLayout.css |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Nível de Acesso: | Nível 1 (Acesso Clientes) |
Idiomas: | Português, Inglês, Espanhol |
Versão | P10 R1.4 |
Um submodelo do tipo Grid permite manipular diversos registros por
vez. Ele tem um relacionamento do tipo Nx1 ou NxM com outros submodelos.
A Pós-validação será realizada na validação do submodelo no momento da
gravação dos dados e durante a inclusão de uma nova linha.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
bLinePost | Bloco de Código | Bloco de código de pós validação da linha | X |
O bloco será invocado durante qualquer tentativa de atribuição
de valor na linha.
O Bloco deve retornar um valor lógico, caso retorne falso
a atribuição de valor não será permitida.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
bLinePre | Bloco de Código | bloco código de pré validação da linha | X |
Este método é utilizado para compatibilizar com o Browse antigo do Protheus
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
lUseCols | Lógico | Define se ira trabalhar com |
aCols/ |
aHeader. | .T. |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
oFormModelStruct | Objeto | Objeto com a estrutura de dados. | X |
[1] aHeader
[2] aCols
adicionar novas linhas.
O método retorna a quantidade total de linhas da grid. Se a grid já possui 2 linhas e
tudo correu bem na adição da linha, o AddLine retornara 3, se ocorreu algum problema
retornará 2, pois a nova linha não foi inserida.
Os motivos para a inserção não ser bem sucedida podem ser algum campo obrigatório não
informado, a pós-validação da linha retornou falso ou o grid atingiu a quantidade
máxima de linhas, por exemplo.
Se a linha for incluida com sucesso o grid posiciona na mesma.
Length
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nLine | Numérico | Indica a linha a ser verificada | ::NLINE |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
lSet | Lógico | Especifica se a inserção deve esta ligada .F. ou desligada .T. | .T. |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
lSet | Lógico | Especifica se a alteração deve esta ligada .F. ou desligada .T. | .T. |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
lSet | Lógico | Especifica se a exclusão deve esta ligada .F. ou desligada .T. | .T. |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nLine | Numérico | Indica a linha a ser verificada | ::NLINE |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nLine | Numérico | Numero da linha | 0 |
estiver invalida
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nLine | Numérico | Numero da linha do grid que será utilizado como DEFAULT | X |
SetLine
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cId | Caracteres |
Código/Nome do atributo da folha de dados | X | ||
xValue | Qualquer | Valor a ser |
atribuído | ::ADATAMODEL[::NLINE][MODEL_GRID_DATA][MODEL_GRIDLINE_VALUE][NIDFIELD] |
de função ( CallStack ). Diferentemente do
todas as indicações de que ele foi atualizado. Ele é muito
alterar valores de outros campos, sem que isto implique em
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cId | Caracteres |
Código/Nome do atributo da folha de dados | X | ||
xValue | Qualquer | Valor a ser |
atribuído |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cId | Caracteres |
Código/Nome do atributo da folha de dados | X | ||
nLine | Numérico | Numero da linha | ::NLINE |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
lVldOwner | Lógico | Verifica se será validado o submodelo e seus filhos (.T.) ou se será validado apenas o contexto do submodelo (.F.) | .T. | X |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
lVldOwner | Lógico | Verifica se será validado o submodelo e seus filhos (.T.) ou se será validado apenas o contexto do submodelo (.F.) | .T. | X |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cId | Caracteres |
Código/Nome do atributo da folha de dados | X |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
aLoadFilter | Array | Estrutura de filtro [n] Array [n][1] ExpC: ID do campo do submodelo de destino [n][2] ExpC: Valor que o campo deve usar no filtro [n][3] Operador Relacional (Opcional, default é MVC_LOADFILTER_EQUAL ) MVC_LOADFILTER_EQUAL Igual a MVC_LOADFILTER_NOT_EQUAL Diferente de MVC_LOADFILTER_LESS Menor que MVC_LOADFILTER_LESS_EQUAL Menor que ou Igual a MVC_LOADFILTER_GREATER Maior que MVC_LOADFILTER_GREATER_EQUAL Maior que ou Igual a MVC_LOADFILTER_CONTAINS Contém MVC_LOADFILTER_NOT_CONTAINS Não Contém MVC_LOADFILTER_IS_CONTAINED Está Contido Em MVC_LOADFILTER_IS_NOT_CONTAINED Não Está Contido Em Para os operadores relacionais MVC_LOADFILTER_IS_CONTAINED e MVC_LOADFILTER_IS_NOT_CONTAINED o 2o elemento de cada array deverá ser uma array em formato caracter oModel:GetModel( 'ZA2DETAIL' ):SetLoadFilter( { { 'ZA2_AUTOR', "{'000500','000501','000502','000503','000504'}", MVC_LOADFILTER_IS_CONTAINED } } ) [n][4] Operador Logico (Opcional, default MVC_LOADFILTER_AND ) MVC_LOADFILTER_AND "e" MVC_LOADFILTER_OR "ou" | {} | ||
cLoadFilter | Caracteres |
Expressão de filtro - Se for informado o parâmetro de expressão de filtro o 1o parâmetro será ignorado - Deve-se prever no código que a expressão tenha a sintaxe para banco de dados ou não, conforme o caso. | "" |
// Para dado igual a
oModel:GetModel( 'IDGRID' ):SetLoadFilter( { { 'ZA2_AUTOR', "'000500'" } } )
// Para dado igual a um ou outro valor
oModel:GetModel( 'IDGRID' ):SetLoadFilter( { { 'ZA2_AUTOR', "'000500'" }, { 'ZA2_AUTOR', "'000600'",, MVC_LOADFILTER_OR } } )
// Para dado diferente
oModel:GetModel( 'IDGRID' ):SetLoadFilter( { { 'ZA2_AUTOR', "'000500'", MVC_LOADFILTER_NOT_EQUAL } } )
// Para dado maior que valor
oModel:GetModel( 'IDGRID' ):SetLoadFilter( { { 'ZA2_VALOR', "0", MVC_LOADFILTER_GREATER } } )
// Para dado entre um valor e outro
oModel:GetModel( 'IDGRID' ):SetLoadFilter( { { 'ZA2_VALOR', "0", MVC_LOADFILTER_GREATER_EQUAL }, { 'ZA2_VALOR', "100", MVC_LOADFILTER_LESS_EQUAL } } )
// Para dado que contém um valor
oModel:GetModel( 'IDGRID' ):SetLoadFilter( { { 'ZA2_AUTOR', "'0005'", MVC_LOADFILTER_CONTAINS } } )
// Para dado que está contido
oModel:GetModel( 'IDGRID' ):SetLoadFilter( { { 'ZA2_AUTOR', "{'000500','000501'}", MVC_LOADFILTER_IS_CONTAINED } } )
// Usando uma expressão
oModel:GetModel( 'IDGRID' ):SetLoadFilter( , " ( ZA2_AUTOR >= '000500' .AND. ZA2_AUTOR < '000600' ) .OR. ZA2_VALOR > 0 " )
[1] cIdField do submodelo de destino
[2] cIdField ou expressão do submodelo de destino
[3] Operador
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
aUnique | Array | Array unidimensional com os IDs dos campos | X | ||
bUnique | Bloco de Código | Bloco de código de execução quando há linha duplicada. O bloco deve retornar um valor lógico. |
oModel:GetModel( 'ZA2DETAIL' ):SetUniqueLine( { "ZA2_AUTOR" , "ZA2_ITEM"} )
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
lDelAllLine | Lógico | Indica se todas as linhas podem ser apagadas | .F. |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
oGrid | Objeto | Objeto do tipo FWFormGridModel que será usado como base para a cópia. | X |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
lOnlyActive | Lógico | Se for verdadeiro retorna só a quantidade de linhas ativas (não deletadas) | .F. |
como
o método irá retornar a primeira linha que
Se a linha
posicionar novamente
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
aBusca | Array | Array com os dados de busca na seguinte estrutura: [n] [n][1] ExpC: Id do campo [n][2] ExpX: |
Conteúdo | X | ||||
lDeleted | Lógico | Indica se considera as linhas deletadas na busca | .F. | ||
lLocate | Lógico | Indica se deve posicionar na linha encontrada | .T. |
oGrid:SeekLine({{"XXH_MODULO",cModule},{"XXH_CODIGO",cCode}})
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cID | Caracteres |
Código do Field | X | ||||
nLine | Numérico | Numero da Linha | ::NLINE |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nMax | Numérico | Valor máximo | X |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nLine | Numérico | Linha a analisar | ::NLINE |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cId | Caracteres | Codigo/Nome do atributo da folha de dados | X | ||
nLine | Numérico | Indica a linha | ::NLINE | ||
lClearTrigger | Lógico | Indica se limpa os campos gatilhados | .F. |
criada pelo método addLine.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nLine | Numérico | Indica a linha a ser verificada | ::NLINE |
Se a operação for inclusão o when dos campos passará a ser falso
e se for qualquer outra operação os campos não permitirão edição.
Além disse não permite inserção e nem exclusão de linhas.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nLine | Numérico | Indica a linha a ser verificada | ::NLINE |
nID ID do registro
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cIdField | Caracteres | Codigo/Nome do atributo da folha de dados | X |
com o próprio objeto. Os dois objetos devem possuir a mesma estrutura, pois esse
método compara apenas os dados, supondo que a estrutura seja a mesma.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
aCompare | Array | - Array que deve ser passado por referencia, para que o |
método salve as informações de |
diferenças no formato: [n][1] - ExpC: ID do subModelo [n][2] - ExpC: Tipo (G) [n][3] - ExpA: SubArray com os campos alterados [n][3][1] - ExpN: Número da linha no submodelo do Model [n][3][2] - ExpC: Operação da linha (3 - Inclusão , 4 - Alteração ou 5 - Exclusão ) [n][3][3][1] - ExpC: ID do Campo [n][3][3][1] - ExpX: Valor do Modelo(self) [n][3][3][1] - ExpX: Valor do modelo passado no segundo |
parâmetro | X | ||||
oFWFormGridModel | Objeto | - Outro FWFormGridModel para ser feita a comparação, ele deve possuir exatamente a mesma estrutura. | X |
serão movidos para a linha destino e os dados da linha destino serão
movidos para a linha origem.
Se a linha atualmente posicionada é a origem ou o destino, o número
da linha posicionada irá ser mudado para o numero da origem ou do
destino, porque os dados são trocados porém a linha ainda precisa
ser validada.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nLineFrom | Numérico | Numero da linha de origem | ::NLINE | ||
nLineTo | Numérico | Numero da linha de destino | ::NLINE |
oModel:GetModel("ZA2DETAIL"):LineShift(5,6)
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nType | Numérico | Tipo da informação: MODEL_GRID_LINECHANGED_ALL Todas as linhas modificadas MODEL_GRID_LINECHANGED_INSERTED Somente as linhas inseridas MODEL_GRID_LINECHANGED_UPDATED Somente as linhas alteradas MODEL_GRID_LINECHANGED_DELETED Somente as linhas excluidas | MODEL_GRID_LINECHANGED_ALL |
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nLine | Numérico | Numero da Linha | X |
do campo na estrutura. Use esse método somente quando possuir um
grande volume de
Para determinar a
estrutura de dados do submodelo (FWFormModelStruct).
O valor será
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cId | Caracteres |
Código/Nome do atributo da folha de dados | X | ||
xValue | Qualquer | Valor a ser |
atribuído |
aPosFields := oStruZA2:GetArrayPos("ZA2_MUSICA", "ZA2_ITEM")
oModel:GetModel("ZA2DETAIL"):LdValueByPos(aPosFields[1], "00001")
oModel:GetModel("ZA2DETAIL"):LdValueByPos(aPosFields[2], "1")
GetValueByPos
GetArrayPos -> FWFormModelStruct
na estrutura, utilize ele somente quando a rotina possui um grande volume
processamento. Para saber a
do objeto de estrutura de dados (FWFormModelStruct).
Atenção!! Esse
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
nIdPos | Numérico |
Posição do campo na estrutura de dados | X | ||
nLine | Numérico | Linha do grid onde o valor será |
atribuído | ::NLINE |
aPosFields := oStruZA2:GetArrayPos("ZA2_MUSICA", "ZA2_ITEM")
cMusica := oModel:GetModel("ZA2DETAIL"):GetValueByPos(aPosFields[1], 1)
cItem := oModel:GetModel("ZA2DETAIL"):GetValueByPos(aPosFields[2], 2)
GetArrayPos -> FWFormModelStruct
LdValueByPos
do submodelo.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
aFldNoCopy | Array | Array unidimensional com o IDs do campos que não serão copiados | X |
oModel:GetModel("ZA2DETAIL"):SetFldNoCopy( { 'ZA2_MUSICA', 'ZA2_ITEM' } )
Se veio de banco não permite.
Limpa (apaga da memoria) todo conteúdo do sub-formulário, e de todos os seu filhos.
ATENÇÃO:
Esse método não pode ser utilizado em Modelos que venham de Banco de Dados, no modo de operação ALTERAÇÃO, pois seria gerada inconsistência na base de dados, tendo em vista que este método NÃO APAGA os registros da base.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
lInit | Lógico | Indica se deve carregar os inicializadores padrão | X | ||
lBlankLine | Lógico | Indica se deve criar a linha em branco |
Se veio de banco não permite.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cFieldID | Caracteres | cFieldID | X |
Painel | ||
---|---|---|
| ||
Sintaxe |
ClearData( lInit , lBlankLine ) →
|
|
|
"SETINSERTLINE"
|
SetForceLoad
Sintaxe
FWFORMGRIDMODEL():
SetForceLoad( lForce ) →
Descrição
Informa que o bloco de carga(load) do subformulário será executado em todas as Operações, inclusive na Inclusão, que não é o padrão.
Parâmetros
Nome | Tipo | Descrição |
---|
Obrigatório |
---|
lForce |
"SETINSERTLINE"
Lógico | Se .T. irá executar o bLoad em todos |