Acentos - Remover
http://forum.pcsoft.fr/fr-FR/pcsoft.us.windevmobile/959-remove-acento-961/read.awp?hl=remove,acento
http://www.windevbrasil.com.br/index.php/topic,1086.msg2445.html#msg2445
Dando seguimento na dica anterior, temos por norma remover os acentos e caracteres especiais antes de gravar um registro. Para isto usamos as rotinas abaixo:
1) Esta função abaixo remove os acentos através da função nativa do WD (NoAccent) e faz uma varredura na String passada por parâmetro e remove outros caracteres indesejados:
PROCEDURE JBAsc(pCampo)
sCampo is string = NoAccent(pCampo)
nTamanho is int = Length(pCampo)
sNovoCampo is string
sCaracter is string
nValor is int
IF (nTamanho > 1) THEN
FOR i = 1 TO nTamanho
sCaracter = (Middle(sCampo,i,1))
nValor = Asc(sCaracter)
IF (nValor >= 32 AND nValor <= 93) OR (nValor = 95 OR nValor = 13 OR nValor = 10) AND (nValor <> 39) THEN
sNovoCampo += sCaracter
END
END
ELSE
sNovoCampo = pCampo
END
RESULT(sNovoCampo)
2) Esta procedure faz uma varredura em todos os campos contidos no registro passado por parâmetro:
PROCEDURE JBAscRecord(pGR_Registro)
sNomeControle is string
FOR i = 1 _TO_ pGR_Registro..Occurrence
sNomeControle = EnumControl(pGR_Registro,i)
IF {sNomeControle, indControl}..InputType = typInputText THEN
{sNomeControle, indControl}..Value = JBAsc({sNomeControle, indControl})
END
END