TamSx3

Retorna metadados do campo SX3 (tamanho, decimais, tipo). Evita hardcodar tamanho que pode mudar entre projetos.

Assinatura: TamSx3(cCampo) -> aRet[1=tamanho, 2=decimais, 3=tipo]

Retorna: Array

TamSx3 consulta o dicionario SX3 e retorna metadados do campo. Use sempre que precisar dimensionar variavel, montar query SQL ou validar tamanho de input. Nao hardcode "20" — use TamSx3("A1_NOME")[1].

Retorno

aRet := TamSx3("A1_COD")
// aRet[1] = 6   (tamanho)
// aRet[2] = 0   (decimais)
// aRet[3] = "C" (tipo: C=Char, N=Num, D=Date, L=Log, M=Memo)

Exemplo padrao

// Dimensionar codigo de produto pra busca
cBuscaCod := PadR(cBusca, TamSx3("B1_COD")[1])
If SB1->(DBSeek(xFilial("SB1") + cBuscaCod))
    cDesc := SB1->B1_DESC
EndIf

// Formatar valor com decimais corretas
cValorFmt := Transform( ;
    nValor, ;
    "@E " + Replicate("9", TamSx3("E1_VALOR")[1]) + ;
    "." + Replicate("9", TamSx3("E1_VALOR")[2]) )

Pegadinhas

Parâmetros

NomeTipoObrigatórioDescrição
cCampoCharactersimNome do campo (ex: "A1_NOME"). Maiusculo, com prefixo da tabela.

Exemplos

PadR seguro pra DBSeek

cChave := xFilial("SA1") + PadR(cCodCli, TamSx3("A1_COD")[1])
SA1->(DBSetOrder(1))
SA1->(DBSeek(cChave))

Veja também