Como posso formatar um campo de texto no Microsoft Access Report Designer?

0

Eu tenho um campo (uma string) que se parece com isso: '0000000840509001' quando impresso no meu relatório. Eu quero que fique assim: '84 -05-090.01 '. Existe alguma maneira de fazer isso no nível do design do relatório?

Basicamente, eu quero retirar os zeros iniciais e colocar a string restante em um formato ## - ## - ###. ##.

    
por Kevin 29.07.2011 / 18:36

1 resposta

1

infelizmente não existe um método único para remover os zeros iniciais ... mas aqui está um pequeno truque que aprendi ...

format(replace(ltrim(replace([your-field-name],"0"," "))," ","0"),##-##-###.##)

quebrado ...

format(
  replace(
    ltrim(
      replace(
        [your-field-name],
        "0",
        " "
      )
    ),
    " ",
    "0"
  ),
  "##-##-###.##"
)

O método para a loucura é substituir todos os zeros por um caractere de espaço e depois "cortá-lo" apenas no lado esquerdo. (não queremos que os zeros de término desapareçam), em seguida, substitua os caracteres de espaço por zeros ... e, finalmente, formate-o como desejar.

Alternativamente ... ao invés de tentar cortar os dígitos ... você também pode convertê-lo em um inteiro real usando cint () e então formatá-lo da seguinte forma:

format(cint([your-field-name]),"##-##-###.##")

Qualquer método pode não funcionar da maneira que você quer ... simplesmente porque não há verificação de erro se a entrada fornecida é válida. ou seja, se você tiver 10 (ou mais) dígitos significativos em vez de 9 ... truncará silenciosamente os dígitos iniciais ... também usar cInt não aceitará "caracteres" como "0000000ABCDEFGHI" ou qualquer outra coisa ...

Você pode querer realmente criar uma função em vb-script para fazer sua formatação corretamente ... e então usá-la em seu relatório. Mas este é um assunto muito mais complexo ... então eu não vou tocar aqui.

    
por 29.07.2011 / 19:04