Histórico da Página
Ponto de Entrada GP100OK - Validação Adicional em Lançamentos por Verba
Aviso | ||
---|---|---|
| ||
|
Ponto de Entrada GP100OK - Validação Adicional em Lançamentos por Verba
Características do Requisito
Linha de Produto: | Microsiga Protheus®. | |||||||||
Segmento: | Serviços. | |||||||||
Módulo: | SIGAGPE. | |||||||||
Rotina: | Ponto de Entrada: |
| ||||||||
Cadastros Iniciais: | Relacione os cadastros necessários que precisam ser preenchidos antes da utilização desse requisito. | |||||||||
| ||||||||||
Chamados Relacionados | TVVHM2. | |||||||||
Tabelas Utilizadas: | Informe as tabelas utilizadas.RGB - Lançamentos |
Ponto de Entrada
Descrição: | Informe o Menu em que estará localizada a rotina | ||||||||||||||||
Localização: | Informe o Submenu em que estará localizada a rotina | ||||||||||||||||
Eventos: | Informe o Título da rotina | ||||||||||||||||
Programa Fonte: | Informe o Fonte da rotina | ||||||||||||||||
Função: | Informe o Nome do(s) produto(s) a ser utilizado ou “Todos” | ||||||||||||||||
Retorno: |
|
Exemplo:
#Include 'Protheus.ch'
User Function CN120ALT()
Local aCab:= PARAMIXB[1]
Local cTipo:= PARAMIXB[2]
If cTipo == '1'
aCab[4][2]:= 'NF' //Validações do usuário
EndIf
Return aCabEste Ponto de Entrada tem como objetivo permitir validações extras nas linhas de lançamentos nas rotinas de Inclusão/Alteração de Lançamentos Por Verbas. Validação será feita no momento do LinhaOK, verificando se a linha posicionada atende às validações. Deve retornar verdadeiro (.T.) se linha for válida, permitindo alterar foco para próxima linha ou salvar registros. Deve retornar falso (.F.) caso linha não atender à validação realizada, impedindo retirada de foco da linha ou gravação dos registros. | |
Localização: | SIGAGPE - Atualizações - Lançamentos - Por Verba |
Eventos: | Lançamentos por Verba |
Programa Fonte: | GPEA100.prx |
Função: | GPEA100 |
Retorno: | Lógico (.T. ou .F.) |
Exemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
USER FUNCTION GP100OK()
Local lRet := .T.
Local nX := 0
Local nY := 0
Local nPosDeleted := GdFieldPos( "GDDELETED" )
Local nPosValor := GdFieldPos("RGB_VALOR")
Local nPosHorasC := GdFieldPos("RGB_HORAS")
Local nPosDtRef := GdFieldPos("RGB_DTREF")
Local nPosMat := GdFieldPos("RGB_MAT")
/*Neste exemplo, verifico se a verba editada em questão é uma verba específica que escolhi. Caso seja essa verba, realizo a validação para não permitir alteração no lançamento.*/
If cCod == "013"
For nX := 1 to Len(aCols)
nY := aScan(aColsAnt, { |x| x[nPosMat] == aCols[nX][nPosMat] })
If aCols[nX][nPosDeleted] == .T. //se verba esta como deletada
MsgAlert("Verba não pode ser deletada.","ATENCAO")
aCols[nX][nPosDeleted] := .F.
lRet := .F.
ElseIf aCols[nX][nPosValor] != aColsAnt[nY][nPosValor] .OR. aCols[nX][nPosDtRef] != aColsAnt[nY][nPosDtRef]
MsgAlert("Verba não pode ser alterada.","ATENCAO")
lRet := .F.
aCols[nX][nPosValor] := aColsAnt[nY][nPosValor]
aCols[nX][nPosDtRef] := aColsAnt[nY][nPosDtRef]
EndIf
Next nX
EndIf
Return ( lRet ) |