aMatrizVariável que armazena a coleção.
AdvPL GuiaaMatriz := { <elemento1>, <elemento2>, ... } · aMatriz[nÍndice]Organize valores em listas simples ou multidimensionais, acesse posições e altere a estrutura dinamicamente.
Matrizes, também chamadas arrays, são coleções ordenadas de valores. Em AdvPL, o primeiro elemento ocupa a posição 1, e uma mesma matriz pode reunir caracteres, números, datas, lógicos, objetos, outros arrays e demais tipos. Arrays aninhados permitem representar linhas, colunas e estruturas compostas.
aMatriz := { <elemento1>, <elemento2>, ... } · aMatriz[nÍndice]aMatrizVariável que armazena a coleção.
nÍndicePosição do elemento, iniciada em 1 e limitada ao tamanho atual da matriz.
elementoValor armazenado; elementos da mesma matriz podem possuir tipos diferentes.
User Function ExMatriz()
Local aLetras := {"A", "B", "C"}
MsgInfo("Segundo elemento: " + aLetras[2])
MsgInfo("Quantidade: " + CValToChar(Len(aLetras)))
ReturnO índice 2 retorna B e Len() informa que a matriz possui três elementos.
User Function ExAdicionar()
Local aLetras := {"A", "B", "C"}
AAdd(aLetras, "D")
MsgInfo("Último elemento: " + aLetras[Len(aLetras)])
ReturnAAdd() acrescenta D ao final; Len() fornece a posição atual do último elemento.
#define PESSOA_NOME 1
#define PESSOA_IDADE 2
#define PESSOA_ATIVA 3
User Function ExPessoa()
Local aPessoa := {"Maria", 32, .T.}
If aPessoa[PESSOA_ATIVA]
ConOut(aPessoa[PESSOA_NOME] + " está ativa")
EndIf
ReturnAs constantes identificam semanticamente as posições que guardam nome, idade e situação.
#define PESSOA_NOME 1
#define PESSOA_IDADE 2
User Function ExPessoas()
Local aPessoas := { ;
{"Pedro", 32}, ;
{"Maria", 22}, ;
{"Antônio", 42} }
Local nLinha
For nLinha := 1 To Len(aPessoas)
ConOut(aPessoas[nLinha, PESSOA_NOME] + ;
" - " + CValToChar(aPessoas[nLinha, PESSOA_IDADE]))
Next
ReturnCada array interno representa uma linha. O laço percorre as pessoas e acessa cada coluna por uma constante.
User Function ExIndice(nIndice)
Local aCores := {"Azul", "Verde", "Vermelho"}
If nIndice >= 1 .And. nIndice <= Len(aCores)
MsgInfo(aCores[nIndice])
Else
MsgAlert("Posição inválida")
EndIf
ReturnA condição impede o acesso fora dos limites atuais da matriz.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de titularidade da TOTVS S.A. AdvPL é uma linguagem de programação desenvolvida pela TOTVS. O AdvPL Guia é um projeto independente, sem vínculo, representação, patrocínio ou afiliação com a TOTVS S.A., suas franquias ou representantes.