Цитата:
Сообщение от
Яга
Ну как же нет, в отчете щелкаешь по значку принтера, открывается окно Натройка принтера с выбором принтера, Ехсеl/Получатель почты/Файл/Принтер, количетсво экз
Это НЕ стандарт. Это доработка Columbus.
DAX2009,ru5 Нет вывода в Excel стандартных отчетов
Кстати, о какой версии Axapta идет речь?
Если эту доработку у Вас не трогали, то там экспорт идет через буфер обмена, содержимое которого формируется именно через strFmt(). Как следствие, количество знаков автоматически округляется до 2.
Если Вы хотите этого избежать, то Вам надо либо модифицировать класс подготовки данных для экспорта в Excel, либо конвертировать число в строку уже в стандартном отчете Axapta. Тогда класс экспорта возмет ее "как есть"
------------------
PS: Если речь идет о версии Ax3.0 или выше, то, можно выполнить модификацию классов Columbus следующим образом.
1. Вызов их класса находится в методе стандартного класса \Classes\ClassFactory\createViewer(). Как именно он называется я не знаю, но его имя, скорее всего он будет содержать слово "Excel" и вызываться в case ReportOutputUserType::Viewer4
2. В этом классе должен быть метод writeReal(). Так вот, в нем вместо конструкции вроде
StrFmt("%1",_field.value())
необходимо записать
_field.formatValue()
Свойство formatValue() как раз и преобразовывает значение в символьную строку с учетом всех настроенных форматов в отчете. Вот этих самых NoOfDecimals и MinNoOfDecimals. Правда, могут возникнуть проблемы с форматированием уже в Excel. Но в данном случае это решаемо указанием формата ячейки в Excel после вывода отчета.
Аналогичным образом следует модифицировать методы writeSum(), writeInt(), writeDate() в том же классе.