Hi all,
In Last post we had seen how to use export to Excel Reports in NAV 2013.
The Next question asked to me is with older version with some code we used to able to save the Report at a specified path instead of opening it. Is it possible with NAV 2013 and later?
So here it is, we can again create some functions in excel buffer and save the excel files.
This article Applies to Microsoft Dynamics NAV 2013 & NAV 2013 R2. Attached Screens are from NAV 2013 R2.
Steps
SETUP -
1. I created a New Field in Table 409 SMTP Mail Setup for Specifying the Path.
2. Added the Field on Page 409 SMTP Mail Setup as shown below.
Changes in Table 370 Excel Buffer -
1. Created Two Functions CreateBookAndSaveExcel & SaveExcel.
2. Function CreateBookAndSaveExcel Definition-
* Copy of CreateBookandOpenExcel with some code changed.
CODE -
-------------------------------------------------------------------------------------------------------------
CreateBook(SheetName);
WriteSheet(ReportHeader,CompanyName,UserID2);
CloseBook;
SaveExcel;
-------------------------------------------------------------------------------------------------------------
3. Function SaveExcel Definition -
CODE
-------------------------------------------------------------------------------------------------------------
SmtpSetup.GET;
IF OpenUsingDocumentService('') THEN
EXIT;
IF NOT PreOpenExcel THEN
EXIT;
FileNameClient := FileManagement.DownloadTempFile(FileNameServer);
FileNameClient := FileManagement.MoveAndRenameClientFile(FileNameClient,'Book1.xlsx',SmtpSetup."Save Excel Report");
-------------------------------------------------------------------------------------------------------------
Variables in Function Save Excel-
Name DataType Subtype
FileNameClient Text
SmtpSetup Record SMTP Mail Setup
Changes in Report 120 Aged Accounts Receivable -
In Function CreateExcelbook New Function call (save Instead of Open)
When i Run the Report it will get saved in D Drive (path Specified in SMTP Setup).
Changes have been done on four objects. Objects can be downloaded from -
Dynamics User Group NAV For 2013 and Dynamics User Group NAV For 2013 R2
or my Skydrive. There are two files one for NAV 2013 and one for NAV 2013 R2.
NAV 2013 File Name - NAV 2013_Save to Excel
NAV 2013 R2 File Name - NAV 2013 R2 _ Save to Excel
You can also make it more generic by passing File Name from the Report Itself.
Regards,
Saurav Dhyani
In Last post we had seen how to use export to Excel Reports in NAV 2013.
The Next question asked to me is with older version with some code we used to able to save the Report at a specified path instead of opening it. Is it possible with NAV 2013 and later?
So here it is, we can again create some functions in excel buffer and save the excel files.
This article Applies to Microsoft Dynamics NAV 2013 & NAV 2013 R2. Attached Screens are from NAV 2013 R2.
Steps
SETUP -
1. I created a New Field in Table 409 SMTP Mail Setup for Specifying the Path.
2. Added the Field on Page 409 SMTP Mail Setup as shown below.
Changes in Table 370 Excel Buffer -
1. Created Two Functions CreateBookAndSaveExcel & SaveExcel.
2. Function CreateBookAndSaveExcel Definition-
* Copy of CreateBookandOpenExcel with some code changed.
CODE -
-------------------------------------------------------------------------------------------------------------
CreateBook(SheetName);
WriteSheet(ReportHeader,CompanyName,UserID2);
CloseBook;
SaveExcel;
-------------------------------------------------------------------------------------------------------------
3. Function SaveExcel Definition -
CODE
-------------------------------------------------------------------------------------------------------------
SmtpSetup.GET;
IF OpenUsingDocumentService('') THEN
EXIT;
IF NOT PreOpenExcel THEN
EXIT;
FileNameClient := FileManagement.DownloadTempFile(FileNameServer);
FileNameClient := FileManagement.MoveAndRenameClientFile(FileNameClient,'Book1.xlsx',SmtpSetup."Save Excel Report");
-------------------------------------------------------------------------------------------------------------
Variables in Function Save Excel-
Name DataType Subtype
FileNameClient Text
SmtpSetup Record SMTP Mail Setup
Changes in Report 120 Aged Accounts Receivable -
In Function CreateExcelbook New Function call (save Instead of Open)
When i Run the Report it will get saved in D Drive (path Specified in SMTP Setup).
Changes have been done on four objects. Objects can be downloaded from -
Dynamics User Group NAV For 2013 and Dynamics User Group NAV For 2013 R2
or my Skydrive. There are two files one for NAV 2013 and one for NAV 2013 R2.
NAV 2013 File Name - NAV 2013_Save to Excel
NAV 2013 R2 File Name - NAV 2013 R2 _ Save to Excel
You can also make it more generic by passing File Name from the Report Itself.
Regards,
Saurav Dhyani
Microsoft Dynamics NAV
ReplyDelete---------------------------
A call to Microsoft.Dynamics.Nav.OpenXml.Spreadsheet.WorkbookWriter.Create failed with this message: Access to the path 'C:\ProgramData\Microsoft\Microsoft Dynamics NAV\90\Server\MicrosoftDynamicsNavServer$DynamicsNAV90\users\default\DESKTOP-UNIKUL1\RAKSHITH UNIKUL\TEMP\__TEMP__2964166186264430ae9bd5c3dcdcc553.tmp.xlsx' is denied.
---------------------------
OK
---------------------------
Hi all I follow each and every step but this type of error occur.
Can you please help me to resolve this issue.
Make sure that service account (account used to run services), have write permission to folder - C:\ProgramData\Microsoft\Microsoft Dynamics NAV\90\
Delete