Optimizing an RDLC Report

Question Status

Verified
mbr asked a question on 12 Sep 2017 1:54 PM

I have an RDLC Report that I have designed layout using VS2010.  Everything is working but performance is slow as I am doing a lot of calculations in the VS2010 report layout.  Other than calculating all the fields in the report triggers/functions, is there any way to access the report control values from the layout design as opposed to the datasource values?  E.g., if we have a control called textbox1 and we set its source to be Sum(Fields!SalesAmount.value).  Can I just access the textbox1.value (or similar syntax) as opposed to using its source?  So in another control called textbox2, the source expression will be Textbox1.value.  I know I can do this in a regular VS2010 report.  but for some reason, it's not exposed when accessing the design layout from Dynamics NAV.

Reply
Verified Answer
Suresh Kulla responded on 12 Sep 2017 4:13 PM

Did you use ReportItems!Textbox1.Value ? or are you referring to something else ?

Reply
Verified Answer
Tina Menezes responded on 13 Sep 2017 3:37 AM

Hi,

Sometimes the processing time of report decreases by reducing the number of dataitems and fields in the report where you select the fields required for the report design. Instead you can created global C/AL variables with datatype as record and use them in your code. Also. to use textbox5 value in another textbox use ReportItems!Textbox5.Value

Reply
Suggested Answer
RockWith NAV responded on 18 Sep 2017 5:38 AM

If I have to answer in a nutshell then yes RDLC reports takes a bit more time as compared to classic reports but 2013 Reports has any extended features.

You need to follow certain rules in this while developing like - 

1. Check your about this report and be sure that unwanted data's are not coming from NAV side to Visual Studio.

2. Coding should too be optimised from  NAV Side. No unnecessary loops.

3. Use GetData Setdata instead of Reportitems!x.value, if you have a more columns to be tweaked like this on header part.

4. If your report has to be executed every time on a particular filter then dont do any of the above two.

5. Avoid multiple groupings.

6. Be sure on all the codes that you write on the Visual Studio Report properties.

7. Background image is the root of report slowness if you are using this.

8. I prefer using visibility instead of multiple filters in Visual Studio.

9. Try to use Labels instead of multiple Text Constants.

Reply
Verified Answer
Suresh Kulla responded on 12 Sep 2017 4:13 PM

Did you use ReportItems!Textbox1.Value ? or are you referring to something else ?

Reply
Verified Answer
Tina Menezes responded on 13 Sep 2017 3:37 AM

Hi,

Sometimes the processing time of report decreases by reducing the number of dataitems and fields in the report where you select the fields required for the report design. Instead you can created global C/AL variables with datatype as record and use them in your code. Also. to use textbox5 value in another textbox use ReportItems!Textbox5.Value

Reply
Suggested Answer
RockWith NAV responded on 18 Sep 2017 5:38 AM

If I have to answer in a nutshell then yes RDLC reports takes a bit more time as compared to classic reports but 2013 Reports has any extended features.

You need to follow certain rules in this while developing like - 

1. Check your about this report and be sure that unwanted data's are not coming from NAV side to Visual Studio.

2. Coding should too be optimised from  NAV Side. No unnecessary loops.

3. Use GetData Setdata instead of Reportitems!x.value, if you have a more columns to be tweaked like this on header part.

4. If your report has to be executed every time on a particular filter then dont do any of the above two.

5. Avoid multiple groupings.

6. Be sure on all the codes that you write on the Visual Studio Report properties.

7. Background image is the root of report slowness if you are using this.

8. I prefer using visibility instead of multiple filters in Visual Studio.

9. Try to use Labels instead of multiple Text Constants.

Reply