Modify SSRS decimal spaces

Hey everyone,
I’m trying to modify the number of zeros being printed on the SOForm. I have tried going to the text box properties and making it a number, decreasing the decimal places down to two, but I have not had any luck. below is a picture of what I would like to accomplish. Thanks.

image

Check the Expression of the field. They are generally formatted there out of the box. Just delete any formatting in the expression and the changes you made in the text box properties will stick.

1 Like

Here is the expression.
=iif(UCase(Fields!KitPricing.Value) = “C”, “”, FormatNumber(Fields!Calc_ExtPrice.Value,First(Fields!DecimalsPrice.Value, “RptParameter”)) )

I tried deleting the FormatNumbers but I’m getting an error when saving. Is there something else I should be modifying?

=iif(UCase(Fields!KitPricing.Value) = "C", "", Fields!Calc_ExtPrice.Value)

That allowed me to save but it errored out in Epicor. Get the following error in System Monitor.

Program Ice.Services.Lib.RunTask raised an unexpected exception with the following message: RunTask: The Hidden expression for the tablix ‘Table1’ contains an error: Input string was not in a correct format. —> Microsoft.ReportingServices.Diagnostics.Utilities.RSException: The Hidden expression for the tablix ‘Table1’ contains an error: Input string was not in a correct format.
Stack Trace:
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Ice.Core.SsrsReportService.ReportExecutionService.Render(String Format, String DeviceInfo, String& Extension, String& MimeType, String& Encoding, Warning[]& Warnings, String[]& StreamIds) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\Web References\SsrsReportService\Reference.cs:line 633
at Ice.Core.SsrsReporting.SsrsRendererBase.Render(SsrsRenderInformationBase renderInformation) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\SsrsReporting\SsrsRendererBase.cs:line 142
at Ice.Core.SsrsReporting.SsrsRendererBase.<>c__DisplayClass12_0.b__0() in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\SsrsReporting\SsrsRendererBase.cs:line 87
at Epicor.Hosting.Trace.TraceHandle.TimeAction(Action actionToTime) in C:_Releases\ICE\ICE3.2.300.3\Source\Framework\Epicor.System\Hosting\Trace\TraceHandle.cs:line 92
at Epicor.Hosting.Trace.TraceHandle.AddTimedIfEnabled(String traceFlag, Action actionToTime, Func2 messageBuilder) in C:\_Releases\ICE\ICE3.2.300.3\Source\Framework\Epicor.System\Hosting\Trace\TraceHandle.cs:line 39 at Ice.Core.SsrsReporting.SsrsRendererBase.TraceReportRendered(String printProgram, String ssrsRenderFormat, Func1 timedAction) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\SsrsReporting\SsrsRendererBase.cs:line 95
at Ice.Core.SsrsReporting.ReportProcessorBase.RenderReportForPreviewOrGenerate(RenderedSsrsReport renderedReport) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 264
at Ice.Core.SsrsReporting.ReportProcessorBase.ProcessReportPart(String reportLocation) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 158
at Ice.Core.SsrsReporting.StandardReportProcessor.ProcessReportParts() in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\SsrsReporting\StandardReportProcessor.cs:line 31
at Ice.Core.RoutingAndBreaking.ReportPersister.Persist(ReportInstanceInformation reportInstance, Func2 reportsRenderer, Action1 fillSysRptLstRow, Action2 processReport, Func3 filterTableAttachmentsFunc) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\RoutingAndBreaking\ReportPersister.cs:line 57
at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.RenderUnroutedSsrsReport() in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 303
at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.RunSsrsReportIfEnabled() in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 228
at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.ProcessReportWithDataInPlace(Func2 executeCommand, Func2 executeReader, SqlObjectsCreated sqlObjectsCreated) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 111
at Ice.Core.RptBase.ReportDatabaseBuilder.XMLClose() in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\RptBase\ReportDatabaseBuilder.cs:line 93
at Ice.Core.RptTaskBase1.XMLClose() in c:\_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\RptBase\RptTaskBase.cs:line 216 at Erp.Internal.OM.SalesOrderAck.RunProcess(Int64 instanceTaskNum, String outputFileName) in C:\_projects\ERP\RL10.2.300.0\Source\Server\Internal\OM\SalesOrderAck\SalesOrderAck.cs:line 608 at Ice.Core.TaskBase1.StartProcess(Int64 instanceTaskNum, String outputFileName) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Internal\Lib\TaskLib\TaskBase\TaskBase.cs:line 47
at Ice.Hosting.TaskCaller.InnerExecuteTask(IceDataContext newContext) in c:_Releases\ICE\RL3.2.300.0\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 98
at Ice.Hosting.TaskCaller.ExecuteTask() in c:_Releases\ICE\RL3.2.300.0\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 57
at Ice.Lib.RunTask.BpmFriendlyTaskLauncher.Run(String sessionIdPrefix, IceContext db, Action taskRunner) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Services\Lib\RunTask\BpmFriendlyTaskLauncher.cs:line 63
at Ice.Services.Lib.RunTaskSvc.InnerRunTask(Int64 ipTaskNum, Boolean suppressTransaction) in c:_Releases\ICE\RL3.2.300.0\Source\Server\Services\Lib\RunTask\RunTask.cs:line 577

There is an expression that will hide or show table 1 based on criteria. Find Table 1 and check the hidden expression.

John I appreciate the help. But how exactly do I go about finding table1?

The best way I know is to click on something in the report and hit tab until Table1 appears at the top of the Properties panel. Someone else might know a better way.

I’d make an assumption that the fields that were changed were children of the tablix object Table1, so it should be right there in plain sight. But, you know what they say about assumptions.

Here is a pic of the only table1 one I could find. I am not clicking on any exp boxes, rather I hot control Z after expanding something and I noticed Table1 showed up. Seems like Michael might be right. But I don’t see any expressions on the tablix properties.

Look under Visibility. There is probably an expression there which is the cause.

Unfortunately there is nothing there.

I found when I do expressions for SSRS, is to use Notepad++. SSRS loves to use parenthesis and if you get out of sync it’s easier to see in NP++ as it highlights them than in SSRS editor.

1 Like

Error messages in SSRS are very cryptic. I guess you will have to look at Visibility rules for every row, column and cell in Table1. The error can be anywhere. That is my experience from recent work with SSRS.

Ohh Joy! This is going to take a while. :smiling_face_with_tear:

All I have been able to find is a sub report that has a “show or hide based on expression”.
Everything else is set to show and has the expression blank.

Check that expression to see if it is a valid expression.

Looked up the FormatNumber function and found a workaround. The syntax is as follows
FormatNumber ( Expression [, NumDigitsAfterDecimal ] [, IncludeLeadingDigit ] [, UseParensForNegativeNumbers ] [, GroupDigits ] )
I decided to cut out additional First Function and replace it a 2 for number of digits. Gave me exactly what I needed.

1 Like