У меня есть поле (строка), которое выглядит следующим образом: «0000000840509001» при печати в моем отчете. Я хочу, чтобы это выглядело так: '84 -05-090.01 '. Есть ли способ сделать это на уровне дизайна отчета?

По сути, я хочу убрать начальные нули и поместить оставшуюся строку в формат ## - ## - ###. ##.

1 ответ1

1

к сожалению, нет единого метода для удаления ведущих нулей .... но вот маленький трюк, который я узнал ...

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

сломался ...

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

Метод безумия состоит в том, чтобы заменить все нули пробелом, а затем "обрезать" его только на левой стороне. (мы не хотим, чтобы завершающие нули исчезали), затем замените пробелы обратно нулями ... и, наконец, отформатируйте их так, как вы хотите.

В качестве альтернативы ... вместо того, чтобы пытаться обрезать цифры ... вы также можете преобразовать его в фактическое целое число, используя cint(), а затем отформатировать его так:

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

Любой метод может работать не так, как вы хотите ... просто потому, что нет проверки ошибок, если предоставленный ввод верен. т. е. если у вас есть 10 (или более) значащих цифр вместо 9 ... он будет молча обрезать начальные цифры ... также использование cInt не будет принимать "символы", такие как "0000000ABCDEFGHI" или что-то еще ...

Возможно, вы захотите создать функцию в vb-script для правильного форматирования ... и затем использовать ее в своем отчете. Но это гораздо более сложный вопрос ... поэтому я не буду касаться его здесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .