Nesse vídeo demonstraremos a utilização das funções DiffArray e AdmDiffArray sendo que ambas servem para comparar se dois arrays possuem diferenças ou se são iguais.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe142
Retorna se há diferenças entre dois arrays
@type Function
@author Atilio
@since 16/12/2022
@obs
Função DiffArray
Parâmetros
+ Array a ser comparado (monodimensional)
+ Array de comparação (monodimensional)
Retorno
+ Retorna .F. se são iguais ou .T. se houver diferenças
Função AdmDiffArray
Parâmetros
+ Array a ser comparado (mono ou multidimensional)
+ Array de comparação (mono ou multidimensional)
Retorno
+ .F. se são iguais ou .T. se houver diferenças
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe142()
Local aArea := FWGetArea()
Local aPessoas1 := {}
Local aPessoas2 := {}
//Adiciona dados em ambos os arrays (monodimensional)
aAdd(aPessoas1, "Daniel")
aAdd(aPessoas1, "João")
aAdd(aPessoas1, "Maria")
aAdd(aPessoas2, "Daniel")
aAdd(aPessoas2, "Maria")
aAdd(aPessoas2, "José")
//Faz a comparação de arrays monodimensionais
If DiffArray(aPessoas1, aPessoas2)
FWAlertError("Há diferenças entre os dois arrays", "Teste com DiffArray")
Else
FWAlertSuccess("Não há diferenças entre os dois arrays", "Teste com DiffArray")
EndIf
//Adiciona dados em ambos os arrays (multidimensional)
aPessoas1 := {}
aAdd(aPessoas1, {"Daniel", sToD("19930712"), "Bauru"})
aAdd(aPessoas1, {"Joao", sToD("19910131"), "Agudos"})
aAdd(aPessoas1, {"Maria", sToD("19921231"), "Piratininga"})
aPessoas2 := {}
aAdd(aPessoas2, {"Daniel", sToD("19930712"), "Bauru"})
aAdd(aPessoas2, {"Joao", sToD("19910131"), "Agudos"})
aAdd(aPessoas2, {"Maria", sToD("19921231"), "Piratininga"})
//Faz a comparação de arrays multidimensionais
If AdmDiffArray(aPessoas1, aPessoas2)
FWAlertError("Há diferenças entre os dois arrays", "Teste com AdmDiffArray")
Else
FWAlertSuccess("Não há diferenças entre os dois arrays", "Teste com AdmDiffArray")
EndIf
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.