У меня есть отчет, который отображает разные ставки для разных предметов. Один из этих пунктов - «пробег» и имеет ставку с дробными центами (0.565
).Непоследовательное округление между Crystal Reports (предварительный просмотр) и Crystal Reports Viewer (экспорт)
Мы хотим отобразить полный 0.565
по этим ставкам и показать все остальные тарифы с двумя знаками после запятой.
Для облегчения этого я использовал формулу Format Field > Number > Customize
как для Decimals
и Rounding
, который выглядит в основном так:
if({RATE_TYPE}='MILEAGE')then 3 else 2
Это, кажется, работает правильно в Crystal Reports. Для пробега показаны 3 десятичных знака и округляется до 3 знаков после запятой.
В приложении Crystal Reports Viewer (и последующем экспорте) отображается 3 десятичных знака , но округляется до 2 знаков после запятой.
Я использую Crystal Reports 2008 (12.3.0.601) и Crystal Reports Viewer:
<system.web>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null"/>
</sectionGroup>
</sectionGroup>
...
<compilation debug="true" defaultLanguage="c#">
<assemblies>
...
<add assembly="CrystalDecisions.Web, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.Enterprise.InfoStore, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.Shared, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.Enterprise.Framework, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
...
</assemblies>
<buildProviders>
<add extension=".rpt" type="CrystalDecisions.Web.Compilation.RptBuildProvider, CrystalDecisions.Web, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</buildProviders>
</compilation>
...
<httpHandlers>
...
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
...
</httpHandlers>
...
</system.web>
<system.webServer>
...
<handlers>
...
<add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/>
...
</handlers>
...
</system.webServer>
(жаль о стену кода)
Кто-нибудь сталкивался раньше? Есть ли известное исправление?
Каково значение по умолчанию для десятичных знаков? –
Значения в раскрывающихся списках: '1.00' и' 0.01', я изменю эти значения на трехзначные и посмотрю, что произойдет. – Shmiddty
Вам нужно будет это сделать –