Skip to main content

NAV 2013 & R2 - Export to Excel Report

Hi all,

Let's see the Changes in Excel Buffer Table in NAV 2013 as compared to NAV 2009.

1. As automation are discountinued in NAV 2013, Microsoft have created a DLL for Excel Operations.

2. A new field added in Table "Cell Type", used to specifying type of field.




3. Based on the option selected the exported sheet will have the formatting.

4. The Functions have been Changed and also some functions have changed parameter.

5. A New Function which will be used in every report that is exported to Excel is - "CreateBookAndOpenExcel".

6. The Function will itself create Excel File on Service Tier, Download the File to Temp Path on Client and Open the File For User.

Let's see what changes we need to do in a export to excel report created in NAV 2009 or Previous Version to use in NAV 2013.

we have a sample report in NAV 2009 Which we used for Demo about how to export in Excel. Below is the code written on Report.

OnReportTriggers -


OnDataItem -



Now i will try to import the report in NAV 2013 and try to upgrade or compile report.

When you try to upgrade report, the error will come that you need to compile Report, But when you try to compile Report we get below error message.


The error is due to Code written to Export to Excel.

Resolution -

1. IN NAV 2009 just comment all the code Related to Export to Excel.





2. Export objects from 2009 and import it in NAV 2013.

3. Compile the Report and upgrade it (From Tools Menu - Upgrade Report).

4. Once Upgraded Change the Functions as shown below -

Specify the new field which adding column, i have also added some new fields just to show you.



Comment all code in OnPostReport and replace with single line.

ExcelBuffer.CreateBookAndOpenExcel(SheetName,ReportHeader,CompanyName,UserID2)



Save the Report and Run it.

Conclusion -
Two Major Changes in Excel Buffer.
a) One more paramerter added on AddColumn Function i.e Cell Type.
b) Only Function need to call for creating sheet and opening it is created.

There are other changes also done which will be based on requirment.

In Next post we will see how to auto save a Export to Excel Report in a specified path in the setup.

Regards,
Saurav Dhyani
www.sauravdhyani.com

Comments

  1. Hi I am using
    ExcelBuf.AddColumn("Value Entry"."Sales Amount (Actual)",FALSE,'',FALSE,FALSE,False,'',ExcelBuf."Cell Type"::Number);
    in Nav2018. Everything works well except I don't get any 1000 separator in my numbers. Is there any way to format the cell type?
    Thanks

    ReplyDelete
    Replies
    1. Just use - ExcelBuf.AddColumn("Value Entry"."Sales Amount (Actual)",FALSE,'',FALSE,FALSE,False,'#,##0.00',ExcelBuf."Cell Type"::Number);

      Delete

Post a Comment

Popular posts from this blog

VIEW SERVER STATE permission on SQL Server?

Hi all, Sometime While trying to Login into a database we face an error message as shown below. --------------------------- Microsoft Dynamics NAV Classic --------------------------- You cannot start Microsoft Dynamics NAV Classic because you do not have the VIEW SERVER STATE permission on SQL Server. Contact your system administrator. --------------------------- OK    ---------------------------

NAV 2013 R2 - Cumulative update 12 Released.

Hi all, Please find below the details of  Cumulative Update 12 released for Microsoft Dynamics NAV 2013 R2. Title - Cumulative Update 12 for Microsoft Dynamics NAV 2013 R2 Build No. - 38053 Release Date - October, 2014 Local Version Included - AU, AT, BE, CH, DE, DK, ES, FI, FR, IS, IT, NA, NL, NO, NZ, SE, UK, RU Download Link Note: Implementing this cumulative update will require a database conversion unless you have already implemented update rollup 5.

NAV 2013 Upgrade Part III - Data Upgrading.

Hi all, As per agenda we need to discuss the data upgrade in NAV 2013. The process is similar to what used to be till NAV 2009 R2 but with some changes. Let's start the process. Remember -  1) You can only upgrade a database to NAV 2013 from NAV 2009 SP1 / R2 SQL Only. 2) The Synchronization of users with SQL Server is no more required.