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.