Árvore de páginas

Ponto-de-Entrada: GP650ACM - Agrupamento dos Títulos
Abrangências: Microsiga Protheus 8.11 , Microsiga Protheus 10
Versões: Microsiga Protheus 8.11 , Microsiga Protheus 10
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Idiomas: Espanhol , Inglês
Descrição:
O ponto de entrada GP650ACM é utilizado no momento do agrupamento dos títulos, sendo possível armazenar no array “aAliasFields” os dados que identificam a origem do título. Exemplo: filial, matricula, verba, centro de custo, valor.
Eventos

Um exemplo de utilização deste ponto de entrada é a necessidade de criar uma tabela para listar todos os lançamentos que fazem parte de um determinado título.

Neste caso é necessário utilizar também o ponto de entrada GP650CHK para obter o número do título. 

Programa Fonte
gpem650
Sintaxe

GP650ACM - Agrupamento dos Títulos ( [ ] )

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
Array of Record
Retorno
    ()
Observações

O exemplo a seguir ilustra a necessidade de criar uma tabela contendo o detalhamento do título, com os lançamentos que o compõe.

Utiliza-se os dois pontos de entrada: GP650ACM e GP650CHK.

Exemplos
============================================||Exemplo de utilização do ponto de entrada GP650ACM||============================================User Function GP650ACM()//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//³ Declaracao de Variaveis                                             ³//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙLocal aArea := GetArea()Local cFil	 := &cFilLanLocal cMat	 := &cMatLanLocal cCC  	 := &cCcLanLocal cPD	 := &cPDLanLocal nSeq	 := 0              nPos:= Ascan( aAliasFields ,{|x|x[1]+x[2]+x[3]+x[4]==cFil+cMat+cCC+cPD }) If nPos == 0		Aadd( aAliasFields, { 	cFil, 	;			cMat, 	;			cCC,	;		    				cPD,	;			"001"	} )Else	nSeq := VAL(aAliasFields[nPos,5])+1		Aadd( aAliasFields, { 	cFil, 	;			cMat, 	;			cCC,	;		    				cPD,	;			strZero(nSeq,3)	} )EndIf      RestArea(aArea)Return=============================================||Exemplo de utilização do ponto de entrada GP650CHK:||=============================================User Function GP650CHK()Local nX 	:= 1Local aArea := getArea()       For nX := 1 to Len(aAliasFields)	       If Z01->(!dbSeek(aAliasFields[nX,1]+cNovoTit+aAliasFields[nX,2]+aAliasFields[nX,3]+ ;				aAliasFields[nX,4]+aAliasFields[nX,5] ))		RecLock("Z01", .T. )	Z01->Z01_FILIAL :=	aAliasFields[nX,1]	Z01->Z01_TIT       :=	cNovoTit	Z01->Z01_MAT     :=	aAliasFields[nX,2]	Z01->Z01_CC       :=	aAliasFields[nX,3]	Z01->Z01_PD       :=	aAliasFields[nX,4]	Z01->Z01_SEQ    :=	aAliasFields[nX,5]		MsUnLock()      EndIf	Next nXRestArea( aArea )Return
Variáveis
Nome Tipo Escopo Pode Alterar descrição
aAliasFields Array of Record Global Não
cFilLan Caracter Global Não
cCpoAgrup Caracter Global Não
cCcLan Caracter Global Não
cMatLan Caracter Global Não
cPDLan Caracter Global Não
cValLan Caracter Global Não