CharacterTexto delimitado por aspas simples ou duplas.
AdvPL GuiaLocal <variável> := <valor> · ValType(<variável>)Entenda como criar, nomear, inicializar e atribuir valores às variáveis AdvPL e como o tipo acompanha o conteúdo armazenado.
Uma variável é uma referência nomeada para um valor mantido em memória durante a execução. No AdvPL tradicional, o tipo é dinâmico: ele é determinado pelo valor atribuído e pode mudar durante a vida da variável. Isso é diferente do escopo, que controla visibilidade e duração, e da tipagem explícita com As <tipo>, que documenta e restringe o contrato esperado.
Local <variável> := <valor> · ValType(<variável>)CharacterTexto delimitado por aspas simples ou duplas.
NumericNúmero inteiro ou decimal armazenado em ponto flutuante.
DateData criada por funções como Date(), CToD() ou SToD().
LogicalValor verdadeiro (.T.) ou falso (.F.).
ArrayColeção indexada, iniciada na posição 1, que pode reunir valores de tipos diferentes.
CodeBlockBloco de expressões executável posteriormente com funções como Eval().
ObjectInstância de uma classe.
NILAusência de valor; é o estado inicial usual de uma variável declarada sem inicialização.
User Function ExVariaveis()
Local cProduto := "Teclado"
Local nQuantidade := 2
Local nPreco := 150.50
Local lDisponivel := .T.
Local dCadastro := Date()
If lDisponivel
MsgInfo(cProduto + " - total: " + ;
CValToChar(nQuantidade * nPreco))
EndIf
ReturnCada variável recebe um valor inicial compatível com a intenção indicada pelo prefixo.
User Function ExNil()
Local nPercentual
Local nResultado
If ValType(nPercentual) == "U"
nPercentual := 10
EndIf
nResultado := 250 * (1 + nPercentual / 100)
MsgInfo("Resultado: " + CValToChar(nResultado))
ReturnValType() retorna U enquanto a variável está sem valor. A inicialização evita utilizar NIL no cálculo.
User Function ExTipoDinamico()
Local xValor := "Pedido aberto"
ConOut("Tipo atual: " + ValType(xValor)) // C
xValor := 22
ConOut("Tipo atual: " + ValType(xValor)) // N
xValor := .T.
ConOut("Tipo atual: " + ValType(xValor)) // L
xValor := Date()
ConOut("Tipo atual: " + ValType(xValor)) // D
ReturnA mesma variável assume tipos diferentes. A flexibilidade existe, mas deve ser usada com intenção explícita.
User Function ExConversao()
Local nQuantidade := 3
Local dHoje := Date()
Local lAtivo := .T.
ConOut("Quantidade: " + CValToChar(nQuantidade))
ConOut("Data: " + DToC(dHoje))
ConOut("Ativo: " + IIf(lAtivo, "sim", "não"))
ReturnCada conteúdo é convertido para caractere antes de ser unido ao texto.
User Function ExErroDigitacao()
Local nQuantidade := 10
nQuantidad := 20 // nome incorreto: pode criar uma Private
MsgInfo("Quantidade: " + CValToChar(nQuantidade))
ReturnA ausência da letra e pode criar outro identificador em vez de atualizar nQuantidade. A declaração explícita reduz esse risco.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de seus titulares. O AdvPL Guia é independente e utiliza citações limitadas, atribuídas e justificadas por finalidade educativa. Consulte os Termos de Uso. Termos de Uso