Capital

Converte a primeira letra de cada palavra para maiuscula (Title Case). Usado em normalizacao de nomes, enderecos, descricoes pra impressao.

Assinatura: Capital(cString) -> cString

Retorna: Character

Capital aplica Title Case — primeira letra de cada palavra em maiuscula, resto em minuscula. E o jeito padrao do AdvPL pra normalizar nomes proprios e enderecos vindos de digitacao livre dos usuarios.

Sintaxe

Capital(cString) --> cString

Exemplos basicos

Capital("joao da silva")          // "Joao Da Silva"
Capital("RUA DAS FLORES, 100")    // "Rua Das Flores, 100"
Capital("EMPRESA TESTE LTDA")     // "Empresa Teste Ltda"
Capital("")                        // ""
Capital("a")                       // "A"

Quando usar

Quando NAO usar

Caso pratico: tela de cadastro

// Padrao: normalizar nome quando usuario sai do campo
User Function VldNome()
    M->A1_NOME := Capital(AllTrim(M->A1_NOME))
    // "JOAO DA SILVA" -> "Joao Da Silva"
Return .T.

Caso pratico: relatorio formal

// Tela de relatorio com nome do cliente normalizado
oReport:SetTitle("Demonstrativo - " + Capital(AllTrim(SA1->A1_NOME)))

Pegadinhas

Helper "Capital inteligente"

Static Function CapitalPt(cTxt)
    Local aMinusc := {"DA","DE","DO","DAS","DOS","E"}
    Local aPal := Separa(Capital(cTxt), " ")
    Local i
    // Manter minusculas as preposicoes (exceto se for primeira palavra)
    For i := 2 To Len(aPal)
        If aScan(aMinusc, Upper(aPal[i])) > 0
            aPal[i] := Lower(aPal[i])
        EndIf
    Next
Return Strjoin(aPal, " ")

Parâmetros

NomeTipoObrigatórioDescrição
cStringCharactersimString a converter.

Veja também