Quantcast
Channel: FORNAV
Viewing all 372 articles
Browse latest View live

Join our upcoming webinars

$
0
0

Webinar focusing on check reports with the MICR font and on label reports.

Please join our upcoming webinar, which has the following main focus areas:

  • The new and improved capabilities in the check report and the use of the MICR font
  • The label reports – how they can be used and how they can be modified

The webinar takes place on Thursday, November 7, 2019 at 10.00 EST.

Speaker: Mark Brummel, Senior Product Specialist, ForNAV.
Target group: Partners, customers and prospects in North America.

Please sign-up here.

The post Join our upcoming webinars appeared first on ForNAV.


Uploading vs. changing the Microsoft Dynamics NAV / Microsoft Dynamics 365 Business Central license

$
0
0

The ForNAV Designer tries to get the report object source code directly from Dynamics NAV/Business Central. It uses the finsql.exe to export the object in text format. This step requires a NAV/Business Central developer license on the NAV/Business Central server.

Because the finsql.exe uses the license on the server, it is not enough that you open C/SIDE and in the License Information window, click Change license. You must instead click, Upload license.

The post Uploading vs. changing the Microsoft Dynamics NAV / Microsoft Dynamics 365 Business Central license appeared first on ForNAV.

Remove report settings (saved filters)

$
0
0

When you upgrade your Microsoft Dynamics 365 Business Central Tenant to Business Central 2019 release Wave 2, you might experience that a report saves the wrong design settings, which prevents you from designing ForNAV reports.

To resolve this issue, go to Report Settings in Business Central:

And then select the reports that you want to remove the filters for:

The post Remove report settings (saved filters) appeared first on ForNAV.

Set up the ForNAV Converter and the ForNAV Designer

$
0
0

This Knowledge Base article is relevant for ForNAV version 4.1.0.1718 and higher.

To set up the source for table information, we have added an assist edit button to the ForNAV Converter and the ForNAV Designer setup dialogs:

 

In the dialog, you can choose the connection type from the drop-down menu and when you have finished filling in the dialog, you can click Test to check if the connection is valid. If it is not valid, you get an error message with the root cause of the problem.

 

As well as giving you access to information about tables and fields, the Business Central Cloud Sandbox and the Business Central On Premise options also give you access to work with extensions directly from the ForNAV Designer, without using Visual Studio code or PowerShell. From the Designer you can upload, download, and unpack an extension. And you can download or create new reports, edit the dataset and layout, preview the result, and save the report or custom layout back into Business Central.

In both the Converter and the Designer, you can select any of the Connection Type options to load, save, and convert reports. However:

  • To convert from txt to AL, you must select the Business Central Extension Project option.
  • To perform actions directly on extensions, you must select the Business Central Cloud or Business Central On Premise option.

 

Business Central Cloud option:

This option takes advantage of the Business Central API service to gain access to information about Extensions, Reports and Custom Report Layouts from a Business Central Cloud service. To use this option:

  1. To sign in as a guest on a customer tenant, select the Sign in as guest… check box and specify the Azure Active Directory (AAD) tenant ID for the customer.
  2. Sign in to Business Central.
  3. Select an Environment – only sandbox environments are supported. To edit a Custom Report Layout on a production environment, you must run the report and select the Design check box.
  4. Select a Company.

To use the Business Central Cloud option, you must, as a prerequisite, install the ForNAV Customizable Report Pack from AppSource.

 

Business Central On Premise option:

This option takes advantage of the Business Central API service to gain access to information about Extensions, Reports and Custom layouts from the Business Central server.

The Server, Server Instance and Company fields in the dialog are used to construct the URLs. However, if the services are set up with a different port and/or base URL, then you can modify the URL directly in the URL fields. If you do not select a company, ForNAV uses the first company defined in the database.

 

To use the Business Central On Premise option, as a prerequisite you must:

  1. Select the Enable OData Services and the Enable API Services check boxes in the Business Central Administration App:
  2.  

  3. Select the Enable the SOAP Services check box and set the Max Message Size field to 20000:
  4.  

  5. Select the Enable the Developer Service Endpoint check box. (You can disable the Developer Service after the ForNAV Core Extension has been installed to Business Central.)

 

When you click Test or OK, a bootstrap and the ForNAV Core Extension is installed to Business Central using the Developer Service.

You can now disable the Developer Service and uninstall the ForNAV Bootstrap loader.

 

Business Central Extension Project option:

This option uses the Business Central .app files to get the table and fields information and it is mandatory if you want to convert from txt to AL.

You must make the Extension Folder field point to the root of a Visual Studio Code project. This folder uses the .app files in the .alpackages folder where the .app files containing the symbols the project depends on are placed and, if it exists, the .app file in the root containing the symbols from the project. This means that the .alpackages cannot contain .app files from different versions of Business Central because symbols can only be declared once.

 

Business Central or NAV OData option:

This option uses the NAV or Business Central OData API to get the table and fields information. The OData option works on all versions of NAV from 2013 and later, and on all Business Central versions. It supports OData V2 and later. This option relies 100% on the built-in page 7702 “Fields” being exposed as a web service and does not require you to install any object or to make modifications to the base app in order to make it work.

The Server, Server Instance, and Company fields in the dialog are used to construct the OData URL. However, if the OData service is set up with a different port and/or base URL, then you can modify the URL directly in the OData URL field. If you do not select a company, ForNAV uses the first company defined in the database.


 

To use the OData option, as a prerequisite you must:

  1. Select the Enable OData Services check box in the Business Central Administration App:
  2.  

  3. Create a new web service using the Web Services page in the RTC or Web client, based on Page 7702, name it Fields and publish it:
  4.  

  5. When the web service is published, you also have the option to copy one of the OData values to the OData URL field in the connection dialog. This fills the other fields with values from the URL.

 

Business Central or NAV Table Export option:

This option uses a txt file generated by an export to txt from C/SIDE to get the table and fields information.

The benefit of this option is that it is simple and requires a small setup effort (OData depends on ports and firewalls being open). However, since it is static and does not reflect changes done after the export, it is not recommended for application development with many ad-hoc changes to the tables. If you use this option and change the tables and fields, you have to repeat the export of the tables.

You might have tables in your database that you are not allowed to export as a text object. If this is the case, you can find a small codeunit on our website that will create a similar text file with table information.

The post Set up the ForNAV Converter and the ForNAV Designer appeared first on ForNAV.

Error when the ForNAV DLL loads a non-ForNAV layout

$
0
0

An error can occur when the ForNAV DLL loads a non-ForNAV layout. This can happen in the following two scenarios:

  1. When a custom layout that is not a ForNAV layout is run from the Custom Report Layout page and is selected in the Report Layout Selection page.
  2. When an AL-report source file and its layout file are moved into a directory further down in the project folder structure. In this case, the AL-compiler generates a new empty layout file because the layout path is relative to the project root.
    In the following example, the original report files were moved under the Reports folder causing the compiler to generate a new rdlc file, Test Report.rldc, which does not contain the ForNAV layout:

 

You can recognize a ForNAV report layout by the rdlc layout having a <Description> xml node with base64 as the value, or a Word layout with a custom property with base64 content. For example:

The post Error when the ForNAV DLL loads a non-ForNAV layout appeared first on ForNAV.

Advanced formatting with ForNAV

$
0
0

When a value from a column or a field is formatted in a ForNAV report, the normal behavior is that it mirrors the internal Microsoft Dynamics NAV/Business Central formatting 1:1.

 

However, in some cases, you must specify extra information about the formatting to get the desired result:

 

Microsoft .net formatting

The ForNAV textbox control has a Format String property where you can specify a .net format string that is also used in most Windows software (Microsoft Excel, and so on):

For .net formatting to work, it is important that you know the data type of the result of the control data source expression. Otherwise, the format string will not work.

 

For example: 1.0 + 2.0 has the data type number and 1.0 + ‘USD’ has the data type string.

 

This link provides an overview of the format string: http://www.cheat-sheets.org/saved-copy/msnet-formatting-strings.pdf

 

Dynamic formatting

You can use the OnPrint property on textbox controls to dynamically change the format string:

In this example, the value of NoOfDecimalDigits will control the number of decimals the number is formatted with.

 

JavaScript formatting

In more advanced formatting scenarios or when using a combination of numbers and strings in a data source expression, it is necessary to use the JavaScript function toLocaleString to get the right formatting: https://www.w3schools.com/jsref/jsref_tolocalestring_number.asp.

 

For example:

ProdOrderRoutingLine.RunTime
+
+ ProdOrderRoutingLine.RunTimeUnitofMeasCode
will give the result “1.2 kg” if
ProdOrderRoutingLine.RunTime
has the value 1.2 and ProdOrderRoutingLine.RunTimeUnitofMeasCode
has the value “kg”.

 

However, if you want a local decimal separator, you must use the toLocaleString() function with the locale as a parameter.

 

For example:

ProdOrderRoutingLine.RunTime.toLocaleString(‘de-DE’) + ‘
‘ + ProdOrderRoutingLine.RunTimeUnitofMeasCode
will give the result “1,20 kg”.

 

Or, if you want to have a fixed set of decimals, you must add options as a second parameter, for example:

ProdOrderRoutingLine.RunTime.toLocaleString(‘de-DE’ , { minimumFractionDigits: 2,maximumFractionDigits: 2}) + ‘
‘ + ProdOrderRoutingLine.RunTimeUnitofMeasCode
will give the result “1,20 kg”.

 

If you want to add currency symbols, you can use more advanced options, for example:

Line.Amount.toLocaleString(‘de-DE’ , { style: ‘currency’, currency: Line.CurrencyCode ,minimumFractionDigits: 2,maximumFractionDigits: 2})  will give the result as “€1.20” if the value of
Line.Amount is 1.2
and the value of
Line.CurrencyCode
is ‘EUR’.

 

AutoFormatExpr and AutoFormatType

From NAV 2015 and later, using AutoFormatExpr and AutoFormatType on report columns has not produced the right results. This is because the functionality in Microsoft Dynamics NAV and Microsoft Dynamics 365 Business Central calling AutoFormatTranslate has been partly broken. To get around this, you can instead use the function ReportForNav.AutoFormat(AutoFormatExpr, AutoFormatType). You can read more information in our KB article: https://www.fornav.com/knowledge-base/autoformatexpr-and-autoformattype/.

The post Advanced formatting with ForNAV appeared first on ForNAV.

Direct printing from the Business Central Web Client

$
0
0

By default, the Microsoft Dynamics 365 Business Central Web Client does not support direct printing from the request page. Instead, it creates a PDF file and brings up a preview window from which the report can be printed.

In certain customer scenarios, such as a label printer in a warehouse or a cash register, this is not efficient for the end-user.

 

However, ForNAV supports direct printing both for Business Central OnPrem and Cloud.

In both cases, the Report.PrintTo AL function prints directly to the printer specified.

  • In the ForNAV cloud version, a PDF is generated, downloaded, and printed to a local printer with the name specified without user intervention.
  • In Business Central OnPrem, the report is printed to a server printer with the name specified, which means that local printers must be mapped to a printer on the server.

 

In addition, reports can be printed to a server printer OnPrem from the request page if a printer with the right conditions is set up in the printer selection table.

 

Because the printer selection page validates the printer name against installed printers on the Web Client server (which does not have any printers installed), you must circumvent the validation of the printer name.

 

In Business Central V14, you can do this in the Printer Selection table, in the Printer Name properties, by specifying No in the ValidateTableRelation field.

 

In Business Central V15, however, because there is no access to the base application, you must add a new record in the Printer Selection table – but without entering a printer name – and then use SQL management studio to set the printer to the relevant printer name.


 


Any questions or feedback? Simply write an email to support@fornav.com

The post Direct printing from the Business Central Web Client appeared first on ForNAV.

Improve Your ForNAV Report Performance

$
0
0

ForNAV reports have a very low memory and CPU usage. Based on feedback from customers and partners, report execution is faster than similar reports in RDLC. There are, however, a few scenarios where performance optimization could be needed.

In this article, we cover some common areas where you can improve the performance of your ForNAV reports in Microsoft Dynamics 365 Business Central and Microsoft Dynamics NAV.

On-Premise

When you run ForNAV in an on-premise installation of Business Central or Dynamics NAV, the ForNAV runtime is used on the service tier. Installations that use the Role Tailored Client also use the ForNAV runtime on the client side. The runtime is a simple DLL based on the Microsoft.NET framework.

Virus Scanners

If you run a virus scanner that scans files on demand, then you might see an increase in the time it takes the service tier or the client to load the runtime DLL. A virus scanner typically blocks access to the DLL until it has finished scanning it. Sometimes the scan requires that the files are sent over the Internet for analysis by an online service. This slows down the execution dramatically, also on infrastructure with a fast Internet connection.

As a counter measure to on-demand scanning, ForNAV has placed a digital signature on the runtime, which often increases the trustworthiness of a DLL. Therefore, the need for scanning in an online analysis is decreased.

If you still see a significant use of CPU or network resources when the ForNAV runtime is loaded, then you can try to configure your virus scanner to exclude the DLL from the scan. Most brands of virus scanners can be configured to exclude single files or entire directories.

Automatic Deployment

From Dynamics NAV 2015 and later, the service tier can deploy the add-ins to the Role Tailored Client automatically. This means that the ForNAV runtime DLL is copied to the client on demand. NAV stores the automatically deployed add-ins in the user’s folder for temporary files.

Sometimes, the temporary files are cleaned out and must be deployed again. Normally, this does not take a lot of time and the automatic deployment works smoothly in most installations.

Problems can occur if the network connection between the service tier and the client is a slow connection.

A common pitfall with the automatic deployment is related to the way NAV decides which files to deploy. When a particular Microsoft.NET component is used in the code, the service tier will scan the server’s add-ins folder and subfolders for this DLL. When it finds the right DLL in the right version, then it deploys the DLL and ALL other files in the same folder and subfolders. This means that if you have multiple versions of ForNAV on your server and you store all the DLL files in the same folder, then it copies all the files to the client. Therefore, you must have the different versions of ForNAV in individual subfolders that only contain that one file (DLL).

You can try to copy the ForNAV runtime DLL to the client’s add-ins folder. This disables the automatic deployment for this particular DLL. When the client finds the DLL in the local add-ins folder, it will not ask the service tier for it.

If the automatic deployment is causing a problem, then the symptom is normally that the performance is slow when the first ForNAV report is run by the user.

Default Printer

When a ForNAV report is run, it asks the printer for information about paper size and hardware margins, paper trays, and other device properties. The printer name is determined by the printer selection table or the user’s default printer name, if nothing is found in the printer selection table. This means that the ForNAV runtime often tries to determine the name of the default printer and asks that printer for information.

If the selected printer name is pointing to a network printer, there could be a significant delay while trying to read the device information. Even worse, if the printer in the printer selection table is not accessible to the client that tries to reach it, then you will have to wait for a network timeout to occur before the system can determine if it should try the default printer instead.

Printer information is cached by ForNAV and therefore the symptom of this type of problem is that the first ForNAV report execution is slow.

Terminal Server and Citrix

The use of an RDP client with Terminal Server or Citrix is widely used for deployment of the Role Tailored Client. In many ways, it makes a lot of sense to either facilitate a remote desktop session or a remote application via these platforms. However, in a setup with RDP, the server and client can potentially still share a slow network connection and the automatic deployment can be slow. In this case, the remedy is simple because you only have to copy the ForNAV runtime DLL to one shared NAV client add-ins folder.

Citrix and Terminal Server often clear the user’s temporary files folder when the session ends. Therefore, it triggers the automatic deployment every time the user logs on and establishes a new session.

Another common problem related to Terminal Server and Citrix is that user’s local printers are redirected to the RDP session, so that you can print to your local printer. The redirected printer feature is great, but the redirected printers are slow because of the added network overhead when you try to read their device properties. This means that if the printer selected by the printer selection table, or your default printer, is a redirected printer, then you might experience a drop in performance when the report is starting up.

Furthermore, some Terminal Server and Citrix installations have contradicting information in the registry about default printer setup. In the history of Windows, there have been different ways of specifying the default printer and especially RDP sessions can have this problem.

In order to diagnose and resolve problems with RDP sessions, it is recommended that you try to specify a locally installed virtual printer as your default printer or set it up in the printer selection table.

External HTML Resources

Since the introduction of support for HTML content in text boxes and labels, we have seen performance issues when the HTML code refers to image resources from external locations. For every image used there is a request over the Internet to load that image. Both transfer times and response times from the host will affect the report performance.

Therefore, we recommend that you limit the use of images and place them on a server close to the service tier. Alternatively, you can embed the images in the HTML code, but this can be a bit complex.

The ForNAV runtime will actually cache a number of images from external resources to help overcome this problem. However, the caching is limited and you should still take this into considerations when designing your report.

Recommendations

In general, we suggest that you try a few things if your reports are running slowly:

  • Try to set up a virtual printer that is local to the client in the printer selection table or as a default printer for the specific client. Typically, a PDF or XPS printer is available to test this.
  • Copy the ForNAV runtime DLL to the client’s add-ins folder, so that the automatic deployment will not kick in.
  • After copying the DLL to the local client add-ins folder, you can disable the on-access virus scan of the add-ins folder on the service tier and client.
  • Limit the use of external resources in HTML content.
  • Try to upgrade your report to the newest version of the ForNAV runtime. If you are struggling with problems on an older version of the runtime then there is a good chance that these issues are fixed in a newer version. You only have to upgrade one report to test the new version of ForNAV. Different versions of ForNAV can run side-by-side on the service tier. Read more about upgrading ForNAV reports here: https://www.fornav.com/knowledge-base/upgrade-fornav-version/

The post Improve Your ForNAV Report Performance appeared first on ForNAV.


How to Import an Extension

$
0
0

Install or remove a per tenant extension in Microsoft Dynamics 365 Business Central

This KB article is relevant for Microsoft Dynamics 365 Business Central Cloud production environments. For sandbox environments (cloud) and OnPrem, we recommend you use the ForNAV Designer.

 

To install a per tenant extension in Business Central:

  1. In Business Central, go to Extension Management.

  1. In Extension Management, on the Manage tab, click Upload Extension.

 

  1. In the Upload and Deploy Extension dialog box, in the Select .app file field, select the relevant file and select Accept to accept the disclaimer. Then click Deploy.

 

Remove an extension from Business Central

Removing extensions from the Business Central tenant has one downside: the extension data cannot ever be removed. This means you can uninstall and reinstall an extension without data loss.

To remove an extension:

  1. Go to Extension Management and find the extension you want to remove.
  2. Open the More Options menu and click Uninstall. Confirm that you want to uninstall the extension.

Note: Uninstalling the extension disables it but does not remove it.

  1. To remove the extension completely, open the More Options menu again and click Unpublish.

The post How to Import an Extension appeared first on ForNAV.

Join our upcoming webinars

$
0
0

Webinar: What’s new in ForNAV 5.0

Please join our upcoming webinar, to learn about the new capabilities in ForNAV 5.0 – the ForNAV Converter, the ForNAV Designer and the ForNAV Standard Reports, such as:

  • New setup that ease connection to NAV and Business Central on C/SIDE and AL extensions
  • Create your own report in extensions in less than 5 minutes using the ForNAV Designer
  • Lots of improvements and productivity enhancements
  • Many new reports, incl. service documents and labels with barcodes

The webinars takes place on

  • Wednesday, December 11, 2019 at 10.00 CET and
  • Thursday, December 12, 2019 at 16.00 CET / 10AM EST

Speakers: Mark Brummel, Senior Product Specialist, ForNAV and Jan Sillemann, partner, ForNAV.

Please sign-up here.

The post Join our upcoming webinars appeared first on ForNAV.

Announcing ForNAV 5.0

$
0
0

We are happy to announce general availability of ForNAV 5.0 (5.0.0.1806).

The new version of ForNAV includes support for Microsoft Dynamics 365 Business Central 2019 release wave 2 (version 15) OnPrem, private cloud, and on Microsoft Cloud (on Microsoft AppSource). Furthermore, ForNAV 5.0 includes:

  • A new and updated set of ForNAV Standard Reports.
  • Support for direct local print.
  • Easy setup of the ForNAV Designer for development on Business Central OnPrem and Cloud.
  • Success in less than 5 minutes – from installation to creation of a brand-new report.
  • End-to-end extension management from the ForNAV Designer, without using Business Central cmdlets.
  • ForNAV Designer support for Docker.

     

ForNAV Standard Reports

  • Service Management Document reports, incl. order, invoice, credit note, quote and shipment, for both VAT and Sales Tax.
  • Sales Document Pro Forma and Draft Invoices for both VAT and Sales Tax.
  • Label reports: Item Price Tag, Sales Shipment Label, Production Label, Label Sheets, Item Label, Customer Label, Vendor Label, Employee Label, Contact Label, and Resource Label.
  • Significantly improved check report for the North American market, incl. option to print the MICR font, and two signatures.
  • Customer List, Contact List, Vendor List, Resource List, and Inventory List.
  • Warehouse Shipment and Receipt, incl. posted ones.
  • Reminder and Finance Charge Memo, both live and test.
  • New templates for Service Documents and Reminder.
  • ForNAV Reports on Role Center.
  • Easier maintenance of report selections with Replace Report Overview.
  • Page Extensions with ForNAV reports: Customer, Vendor, Item, Contact, Employee, Production Order and Sales Shipment.
  • You can download the app files with the ForNAV Standard Reports from the ForNAV Gallery. In the ForNAV Designer, click New – or go to www.fornav.com/standard-reports (for OnPrem or private cloud). Or you can get them on Microsoft AppSource (for Microsoft Cloud).
  • In the ForNAV Designer, when you have the app file, you can unpack the app to a Visual Studio Code project (click Extensions and then Unpack Extension) or upload it to Business Central OnPrem (click Extensions and then Upload Extension). Note that in Business Central 14, the ForNAV Designer is your only option: you cannot upload the app using Visual Studio Code because of license restrictions on ISV apps.
  • All Pages and Reports are available in 18 languages.
  • See the full list of more than 80 ForNAV Standard Reports here: https://www.fornav.com/documents/Reports_Included_ForNAV_Customizable_Report_Pack_50.pdf

     

ForNAV Converter

In ForNAV 5.0, the ForNAV Converter includes the following new improvements:

  • Improved txt to AL conversion – now with full support for conversion to Microsoft Dynamics 365 Business Central 2019 release wave 2 (version 15) in one single step. This means you can take your reports from, for example, Navision 4.0, and convert them directly to Business Central version 15. Or you can take, for example, your Dynamics NAV 2018 application and convert all your objects from txt to AL and run them on Business Central version 15.
  • Convert your AL extensions from Business Central OnPrem to Cloud, and vice versa.

     

ForNAV Designer

In ForNAV 5.0, the ForNAV Designer includes the following new improvements:

  • Support for Microsoft Dynamics 365 Business Central – 2019 release wave 2 (version 15) – with AL extensions.
  • New setup and configuration feature – to set up the source for table information, use the assist edit button in the setup dialogs in the ForNAV Converter and the ForNAV Designer. In the dialog, you can choose the connection type from the drop-down menu and when you have finished filling in the fields, you can click Test to check if the connection is valid. If it is not valid, you get an error message with the root cause of the problem.

     

    Read more here: https://www.fornav.com/knowledge-base/set-up-the-fornav-converter-and-the-fornav-designer/

  • 5 minutes to success – install ForNAV, set it up, and build you own new report, all in less than 5 minutes – without even touching Visual Studio Code.
  • Support for conversion, creation, and modification of reports without Visual Studio Code. From the Designer, it is now possible to download existing reports directly from Business Central, modify both the dataset and/or the layout, and save the result back in Business Central. You can also create new reports from scratch, using a template from the ForNAV Gallery or as a copy from an existing ForNAV or RDLC report. At any time, it is possible to see a preview of the result or save the result as source code to a Visual Studio Code project. You can also specify a particular page where you want the report to show up as an action under “Reporting”. As before, ForNAV reports can consist of a dataset referring to a mix of tables coming from Microsoft, an ISV, and partner extensions and, in the ForNAV designer, you can select any field or caption on any table in the layout, without first defining columns in the dataset.
  • Work directly with extensions – as well as giving you access to information about tables and fields, the new features also give you access to work with extensions directly from the ForNAV Designer, without using Visual Studio Code or PowerShell. From the Designer, you can upload, download, and unpack an extension. And you can download or create new reports, edit the dataset and layout, preview the result, and save the report or custom layout back into Business Central. This works for any Business Central extension OnPrem or Sandbox, as long as they are originally compiled with the ShowMyCode setting set to true.
  • Support for direct local printing – with ForNAV 5.0, we support direct local printing both for Business Central OnPrem and Cloud. In both cases, the Report.PrintTo AL function prints directly to the printer specified. This increases efficiency for end-users in many scenarios, such as printing labels in a warehouse or at a cash register. Read more about direct local printing here: https://www.fornav.com/knowledge-base/direct-printing-from-the-business-central-web-client/
  • Updates to the ForNAV Translation Tool for txt and xliff files (read more here: www.fornav.com/translation-tool).
  • Support for development on Docker. The ForNAV Designer and runtime now works with Docker. When saving a report or uploading an app file to Docker, the ForNAV Designer tests if the correct ForNAV DLL is present and, if not, the DLL is uploaded and installed on Docker. Read more here: https://www.fornav.com/knowledge-base/fornav-and-docker-containers/
  • Improvements and enhancements across the ForNAV Designer.

     

You can see the full list of changes to ForNAV here: www.fornav.com/version-history

You can download ForNAV 5.0 here: www.fornav.com/download

Please share this information with any of your colleagues who might find it relevant.

Any questions or feedback? Simply write an email to support@fornav.com

The post Announcing ForNAV 5.0 appeared first on ForNAV.

Trusted Certificates

$
0
0

Trusting Your Service Tier Certificate

If you want to connect your ForNAV Designer to a service tier using secure communication via HTTPS/SSL then you need to be able to trust the certificate installed on the service tier.

Normally, your service tier certificate used in a production environment is a valid certificate that was issued by a certificate authority. Therefore, the trusted relationship is already in place.

In a development environment or a Docker container, you often use self-signed certificates that cannot be validated by already trusted certificate authorities. In this case, you must tell your Windows installation to trust the self-signed certificate in order to use it for secure communication.

On Docker, you can often download the self-signed certificate from an URL similar to this:

http://bc150:8080/certificate.cer

When you have a local copy of the certificate file, you can double-click it to see the following Certificate dialog box:

From this dialog box, to open the Certificate Import Wizard, click Install Certificate.

It is up to you if you want to install the certificate for you only or for all users on your machine. In a typical development scenario, it is sufficient to install the certificate for the current user.

When you are asked where you want to install the certificate, you must select Trusted Root Certificate Authorities:

When the certificate is properly installed on your machine, you can start designing reports over a secure connection to your service tier.

The post Trusted Certificates appeared first on ForNAV.

Blocked by the runtime

$
0
0

When running a ForNAV report, you might receive the following error message: “The request was blocked by the runtime to prevent accidental use of production services.”

To resolve this issue:

  1. In Business Central, on the Setup & Extensions page, in the Search field, enter fornav.
  2. Select ForNAV Core and then click Manage, Configure.
  3. On the ForNAV Core page, select Allow HttpClient Requests:

The error message in different languages:

Danish/Dansk:    

Anmodningen blev blokeret under kørsel for at forhindre brug af produktionstjenester.

 

German/Deutch:

Die Anforderung wurde von der Laufzeit blockiert, um versehentliche Nutzung der Produktionsdienste zu verhindern.

 

French/Français:

La demande a été bloquée par l’exécution pour éviter d’utiliser accidentellement les services de production.

The post Blocked by the runtime appeared first on ForNAV.

Import a Custom Report Layout in ForNAV Cloud

$
0
0

To import a custom report layout in ForNAV Cloud:

  1. In Microsoft Dynamics 365 Business Central, go to the Custom Report Layouts window.
  2. Click New. In the Edit window, enter the report ID and select Insert Word Layout.
  3. In the Report Name field, rename the custom report layout to something recognizable, for example, ForNAV BC custom layout.
  4. In the Custom Report Layouts window, select the custom layout you just created and then on the Actions tab, click Import Layout.
  5. In the Select File dialog box that appears, select the docx file that you want to import.
  6. In Business Central, open the Report Layout Selections window.
  7. In the Custom Layout Description field, select the new custom report layout that you just created.

 

Export a ForNAV layout in ForNAV cloud

To export a ForNAV layout in ForNAV cloud:

  1. In Business Central, go to the Custom Report Layouts window.
  2. Click the layout that you want to export and then on the Actions tab, click Export Layout.
  3. Save the resulting docx file.
  4. To edit the layout docx file, in the ForNAV Designer, click Open and find the docx file.

The post Import a Custom Report Layout in ForNAV Cloud appeared first on ForNAV.

ForNAV and Docker Containers

$
0
0

You can use Reports ForNAV with your Docker containers. This is a short step-by-step example of how to set up a container that supports ForNAV reports.

Install NAV Container Helper

To help install your container, you should install the NAV Container Helper PowerShell module.

install-module navcontainerhelper -force

get-command -Module navcontainerhelper

Write-NavContainerHelperWelcomeText

 

Create Container

Now you can create the container with the New.NavContainer command.

New-NavContainer -accept_eula -containerName “bc150” -auth NavUserPassword -imageName “mcr.microsoft.com/businesscentral/onprem” -useSSL -updateHosts -licenseFile “C:\temp\license.flf”

 

Add Fonts to the Container

If you don’t add fonts to your container, it will only be able to use the Courier font in reports. Therefore, you should add some of your local fonts to the container.

Add the Arial font:

Add-FontsToBCContainer -containerName bc150 -path c:\windows\fonts\arial*.ttf

Or add all fonts from your local machine:

Add-FontsToBCContainer -containerName bc150 -path c:\windows\fonts\*.ttf

 

Install Certificate

Download the self-signed certificate from the certificate URL shown when the container is created. The URL in this example is http://bc150:8080/certificate.cer

The downloaded certificate must be installed under Trusted Root Certification Authorities. For more information on this please see https://www.fornav.com/knowledge-base/trusted-certificates/

Install the ForNAV Runtime

This step is optional. Starting with ForNAV 5.0.0.1805, the Designer will upload and install the ForNAV runtime DLL on the on-premise service tier if it is not there already. It will install it in the temporary files folder belonging to the service tier.

In a production environment, you should still copy the runtime DLL to the add-ins folder under the service tier. Otherwise, you may risk that it is deleted if the temporary files are deleted.

Copying the runtime DLL to the service tier is relatively easy. Here is an example.

docker stop bc150

 

docker cp “C:\Program Files\Reports ForNAV\Add-ins\ReportsForNAV\ForNav.Reports.5.0.0.1805.dll” “bc150:\program files\microsoft dynamics nav\150\service\add-ins\ReportsForNAV_5_0_0_1805\ForNav.Reports.5.0.0.1805.dll”

 

docker start bc150 

 

Configure the ForNAV Designer

You can now connect to your Docker container from the ForNAV Designer.

Enter values that point to your docker and click test. Now you can start designing reports.

The post ForNAV and Docker Containers appeared first on ForNAV.


ForNAV and Docker Containers

$
0
0

You can use Reports ForNAV with your Docker containers. The following is a step-by-step example of how to set up a container that supports ForNAV reports.

Install the NAV Container Helper

To help install your container, you must install the NAV Container Helper PowerShell module.

install-module navcontainerhelper -force

get-command -Module navcontainerhelper

Write-NavContainerHelperWelcomeText

 

Create the container

Now you can create the container with the New.NavContainer command.

New-NavContainer -accept_eula -containerName “bc150” -auth NavUserPassword -imageName “mcr.microsoft.com/businesscentral/onprem” -useSSL -updateHosts -licenseFile “C:\temp\license.flf”

 

Add fonts to the container

To be able to use more fonts than just the Courier font in reports, you must add some of your local fonts to the container.

Add the Arial font:

Add-FontsToBCContainer -containerName bc150 -path c:\windows\fonts\arial*.ttf

Or, add all fonts from your local machine:

Add-FontsToBCContainer -containerName bc150 -path c:\windows\fonts\*.ttf

 

Install the certificate

Download the self-signed certificate from the certificate URL shown when you created the container. The URL in this example is http://bc150:8080/certificate.cer

Install the downloaded certificate under Trusted Root Certification Authorities. For more information on this, please see https://www.fornav.com/knowledge-base/trusted-certificates/

Install the ForNAV Runtime

This step is optional. From ForNAV 5.0.0.1805 and later, the Designer uploads and installs the ForNAV runtime DLL on the on-premise service tier if it is not there already. It installs it in the temporary files folder belonging to the service tier.

In a production environment, you must still copy the runtime DLL to the add-ins folder under the service tier. Otherwise, you can risk that it is deleted if the temporary files are deleted.

Copying the runtime DLL to the service tier is relatively easy. Here is an example:

docker stop bc150

 

docker cp “C:\Program Files\Reports ForNAV\Add-ins\ReportsForNAV\ForNav.Reports.5.0.0.1805.dll” “bc150:\program files\microsoft dynamics nav\150\service\add-ins\ReportsForNAV_5_0_0_1805\ForNav.Reports.5.0.0.1805.dll”

 

docker start bc150 

 

Configure the ForNAV Designer

You can now connect to your Docker container from the ForNAV Designer.

Enter values that point to your Docker and click Test. Now you can start designing reports.

The post ForNAV and Docker Containers appeared first on ForNAV.

Using e-mail body with a ForNAV report

$
0
0

When your document reports are in ForNAV, you can still take advantage of the standard feature in Microsoft Dynamics NAV and Microsoft Dynamics 365 Business Central for adding an e-mail body when using the Send…, E-mail…, or Post and Send… options.

For example, to use e-mail body with a ForNAV report for the Sales document group:

  1. In the Report Selection – Sales page, in the Usage (Document Type) field, click the relevant document type, for example, Invoice:

     

  2. On the first line, select the Invoice report (in this example, it is the standard ForNAV invoice report), and then select the Use for Email Attachment check box.

    Note: Do not select the Use for Email Body check box.

     

  3. On the second line, add Report ID 1306 (this is a standard Microsoft report). On this line, select the Use for Email Body check box.

    Note: Do not select the Use for Email Attachment check box on this line.

     

  4. In the Email Body Layout Description column, select the variant you want for your e-mail body (again, these are standard from Microsoft).

     

  5. If you want to, you can change any of these variants using the standard Microsoft features to Process, Copy, Layout, Export and edit it in Microsoft Word.

     

  6. Repeat this procedure for other document types, for example, Quotes, Orders, Credit Memos, and so on.

 

Note: You can repeat this procedure for other relevant document groups, for example, for the Report Selection – Purchases page.

The post Using e-mail body with a ForNAV report appeared first on ForNAV.

NavHelperFunction

$
0
0

When converting RDLC reports to ForNAV reports, you will notice that the Showoutput value on sections and controls sometimes has a function call to the NavHelperFunction, like in the following example from the RDLC Purchase Invoice:

 

NavHelperFunction.IIFNOT(DynamicsNavDataSet.ShowInternalInfo==true && DynamicsNavDataSet.DimText_DimensionLoop1!=””,false,true)

 

The NavHelperFunction has been put in place to emulate some of the built-in RDLC functions and custom VB-script functions in the standard reports.

 

Most of the functions emulate the corresponding RDLC functions 1:1 – but because ForNAV works on single records being read and not a dataset’s set-functions (such as First, Last, Sum, Previous and CountRows) it does not return the correct value. However, because the ForNAV Converter places controls and/or sections referring to these functions in Headers, Bodies, and Footers, depending on which RDLC function has been used, the logic works in the same way as in the RDLC report. Emulation of the VB-script functions is mainly to mitigate the lack of support RDLC has for page breaks/group totals, which also often has global variables (states) tied to them.

 

Because ForNAV implements the standard JavaScript function library and has better support for page breaks/group totals, both from code and properties, we recommend that you do not use the the NavHelperFunction to develop new reports. In situations where the logic is hard to understand, we recommend replacing it with JavaScript logic.

 

The following is the C# implementation for the current list of NavHelperFunctions:

 

public class ScriptHelperFunctions

{

Report report;

public ScriptHelperFunctions(Report report) { this.report = report; }

public String Space(int count) => new string(‘ ‘, count);

public object GetFieldValue(string ClassName, string FieldName) { return report.NavSettings.GetFieldValue(ClassName, FieldName); }

public Object IIF(bool Expr, Object IfTrue, Object IfFalse) { return Expr ? IfTrue : IfFalse; }

public Object IIFNOT(bool Expr, Object IfFalse, Object IfTrue) { return Expr ? IfTrue : IfFalse; }

public Object First(Object Value, string Scope) { return (Value); }

public Object First(Object Value) { return (Value); }

public Object Last(Object Value, string Scope) { return (Value); }

public Object Last(Object Value) { return (Value); }

public Object Sum(Object Value, string Scope) { return (Value); }

public Object Sum(Object Value) { return (Value); }

public Object Previous(Object Value, string Scope) { return (null); }

public Object Previous(Object Value) { return (null); }

public Object RunningValue(Object Value, Object Function, string Scope) { return Value; }

public Object RunningValue(Object Value, Object Function) { return Value; }

public bool IsNullOrEmpty(String Text) { return Text == null || Text == “”; }

public int RowNumber(Object Scope) { return 0; } // Used for color

public int Count(object Value) { return 1; } // Rec.Count;

public int CountRows() { return (1); }

public int CountDistinct(object Value) { return (1); }

public int ToInt(Object Value) { return int.Parse(Value.ToString()); }

public DateTime ToDate(Object Value) { return DateTime.Parse(Value.ToString()); }

public Double ToDecimal(Object Value) { return Double.Parse(Value.ToString()); }

public float ToFloat(Object Value) { return float.Parse(Value.ToString()); }

public Double Round(Double Number) { return ((int)Number); }

public string ToString(Object Value) { return Value.ToString(); }

public int Len(String Value) { return Value.Length; }

public int InStr(String Value, string Value2) { return Value.IndexOf(Value2) + 1; }

public string Left(string Value, int Length) { return Value.Substring(0, Length); }

public string Right(string Value, int Length) { return Value.Substring(Value.Length – Length, Length); }

public string Replace(string Src, Object From, Object To) { return From.ToString() == “” ? Src : Src.Replace(From.ToString(), To.ToString()); }

public string Trim(String s) { return (s.Trim()); }

public string TrimEnd(String Value) { return (Value.TrimStart()); }

public string TrimStart(String Value) { return (Value.TrimEnd()); }

public string Upper(String Value) { return (Value.ToUpper()); }

public string Lower(String Value) { return (Value.ToLower()); }

public string Chr(int No) { char c = (char)No; return (c.ToString()); }

public string Choose(int Number, params string[] Values) { return Number > 0 && Number <= Values.Length ? Values[Number-1] : “”; }

public string[] Split(string Value, string Separator) { return Value.Split(new string[] { Separator },StringSplitOptions.None); }

public string Format(string FormatString,params object[] Values) { return string.Format(FormatString, Values); }

public Object BlankZero(Double Number) { if (Number == 0) return “”; else return Number; }

public Object BlankPos(Double Number) { if (Number > 0) return “”; else return Number; }

public Object BlankZeroAndPos(Double Number) { if (Number >= 0) return “”; else return Number; }

public Object BlankNeg(Double Number) { if (Number < 0) return “”; else return Number; }

public Object BlankNegAndZero(Double Number) { if (Number <= 0) return “”; else return Number; }

public Double CalcPct(Double Amount1, Double Amount2) { return Math.Round(Amount2 != 0d ? Amount1 / Amount2 * 100d : 0d,1); }

public string CalcLeft(string Value, string Value2) { int Index = Value.IndexOf(Value2); return Index >= 0 ? Left(Value, Index) : “”; }

public string CalcRight(string Value, string Value2) { int Index = Value.IndexOf(Value2); return Index >= 0 ? Right(Value, Value.Length – Index + 1) : “”; }

public bool IsNull(Object Value) { return Value == null || Value == DBNull.Value; }

public string FormatAddress(string Name, string Address, string Address2, string City, string County) { return Name + (Address == “” ? “” : “,” + Address) + (Address2 == “” ? “” : “,” + Address2) + (City == “” ? “” : “,” + City) + (County == “” ? “” : “,” + County); }

public object BlankToZero(string Value) { if (Value == “”) return 0; else return Value; }

public Double NotBlankZero(Double Value) { return Value; }

private Double _NegValue = 0;

public Double NegValue(Double Value) { _NegValue += Value; return (_NegValue); }

public Double NegativeValuesFunc(Double Value) { return Value > 0 ? Value : 0; }

public Double AverageFunc(Double Cost, Double Quantity) { return Quantity == 0 ? 0 : Cost / Quantity; }

public string CutOnlyFirstLetters(string Value) { string[] Values = Value.Split(‘ ‘); return Left(Values[0], 2) + Left(Values[1], 2); } // Return Left(Cstr(Choose(1, Split(Cstr(Stroka) )) ),2)+ Left(Cstr(Choose(2,Split(Cstr(Stroka))) ),2)

public string CutOnlyFourLetters(string Value) { string[] Values = Value.Split(‘ ‘); return Left(Values[0], 5) + Left(Values[1], 4); } // Return Left(Cstr(Choose(1, Split(Cstr(Stroka) )) ),5)+ Left(Cstr(Choose(2,Split(Cstr(Stroka))) ),4)

 

int _PageOffset = 0;

public int GetPageNumber(bool NewPage, int PageNumber) { if (NewPage) { _PageOffset = PageNumber – 1; } return PageNumber – _PageOffset; }

public bool ResetPageNumber() { return true; }

 

string _CompanyName = “”;

public bool SetCompanyName(string CompanyName) { if (CompanyName != “”) _CompanyName = CompanyName; return true; }

public string GetCompanyName() { return _CompanyName; }

 

string _PageCaption = “”;

public bool SetPageCaption(string PageCaption) { if (PageCaption != “”) _PageCaption = PageCaption; return true; }

public string GetPageCaption() { return _PageCaption; }

string _ReportTitle = “”;

public bool SetReportTitle(string ReportTitle) { if (ReportTitle != “”) _ReportTitle = ReportTitle; return true; }

public string GetReportTitle() { return _ReportTitle; }

private object[] _Picture = new object[] { null, null, null };

public bool SetPicture(Object Value, int Group) { if (Value != null && Value != DBNull.Value) _Picture[Group-1] = Value; return true; }

public object GetPicture(int Group) { return _Picture[Group-1]; }

string _TextPage = “”;

public bool SetTextPage(string TextPage) { if (TextPage != “”) _TextPage = TextPage; return true; }

public string GetTextPage() { return _TextPage; }

Object _CodeGroup = null;

public bool CodeChanged(object CodeGroup) { if (CodeGroup != _CodeGroup) { _CodeGroup = CodeGroup; return true; } else return false; }

public string GetCopyText(string CopyText) { return CopyText; }

public string CalcIndicatorPct(Double Value, Double Sum) { return (Value == 0d ? 0d : (Sum – Value) / Value * 100).ToString(“N1”, CultureInfo.InvariantCulture); }

public Double CalcProfitAmount(Double Amount_LCY, Double CostAmount) { return (Amount_LCY – CostAmount); }

public Double CalcInvDisc(Double SalesPrice, Double UsagePrice) { return (UsagePrice != 0d ? 100 * SalesPrice / UsagePrice : 100) / 10d; }

public Double CalcCostPerUnit(Double Value, Double Value2, Double Value3) { if (Value3 > 0) Value2 /= Value3; return Value + Value2; }

public Double Rnd(int Seed) { return new Random(DateTime.Now.Millisecond).NextDouble(); }

public Double Rnd() { return Rnd(0); }

 

int _ColPage = 0;

public int NumOfPage(object Group) { return ++_ColPage; }

 

object _IsShownGroup = null;

int _IsShownCount = 0;

public bool IsShown(object Group)

{

if (Group == _IsShownGroup)

{

_IsShownCount++;

return _IsShownCount > 2 ? true : false;

}

_IsShownGroup = Group;

_IsShownCount = 0;

return false;

}

 

string _AllLines = “”;

public string GetLines(int ExistLines) { _AllLines += ExistLines.ToString(); return _AllLines; }

public string ShowLines() { return _AllLines; }

 

int _Offset = 0;

public int GetGroupPageNumber(bool NewPage,int PageNumber) { if (NewPage) _Offset = PageNumber – 1; return PageNumber – _Offset; }

public string GetGroupPageNumber(string PageCaption, bool NewPage, int PageNumber) { _Offset = PageNumber – 1; return PageCaption + (PageNumber – _Offset).ToString(); }

public bool IsNewPage() { return true; }

Object _CurrentGroup=null, _CurrentGroup2 = null,_CurrentGroup3 = null;

public bool IsNewPage(Object Group,Object Group2)

{

if (Group != _CurrentGroup)

{

_CurrentGroup2 = Group2;

_CurrentGroup = Group;

return true;

}

if (Group != _CurrentGroup2)

{

_CurrentGroup2 = Group2;

return true;

}

return false;

}

bool newPage = false;

public bool IsNewPage(Object Group, Object Group2, Object Group3)

{

newPage = false;

 

if (Group != _CurrentGroup)

{

newPage = true;

 

_CurrentGroup = Group;

_CurrentGroup2 = Group2;

_CurrentGroup3 = Group3;

}

else

{

if (Group2 != _CurrentGroup2)

{

newPage = true;

_CurrentGroup2 = Group2;

_CurrentGroup3 = Group3;

}

else

{

if (Group3 != _CurrentGroup3)

{

newPage = true;

_CurrentGroup3 = Group3;

 

}

}

}

return newPage;

}

bool _HideOnce = true;

public bool HideOnce() { if (_HideOnce) { _HideOnce = false; return true; } else return false; }

 

bool _HideNext = false;

public bool HideNext() { if (!_HideNext) { _HideNext = true; return false; } else return true; }

 

bool _MustGroupFooterPrint = false;

public bool MustGroupFooterPrint(bool Value,bool Value2) { if (!_MustGroupFooterPrint) { _MustGroupFooterPrint = !Value && Value2; return _MustGroupFooterPrint; } else return false; }

public bool ShowFooter() { return HideOnce(); }

public bool HideFooter() { return HideNext(); }

 

// 37 Balance Comp. – Prev.Year

string _FooterText = null;

public string SetFooterText(string FooterText) { if (FooterText != null && FooterText != “”) _FooterText = FooterText; return null; }

public string GetPageFooter(int PageNumber,int TotalPages)

{

if (_FooterText == null)

return “”;

string[] t = _FooterText.Split((char) 177);

return string.Format(t[2], PageNumber, PageNumber == TotalPages ? t[0] : t[1]);

}

 

// Report 7312 Bin Content Create Wksh Report

bool _first = true;

object _currentgroup = null;

public bool HideRow() { return HideNext(); }

public bool HideRow2(Object Group)

{

if (_first)

{

_first = false;

return true;

}

if (_currentgroup == Group)

return false;

_currentgroup = Group;

return true;

}

 

// Report 126 Reminder Nos.

int _AllLinesCounter = 0,_AllLinesCounter2 = 0;

public bool LinesCounter(bool Value) { if (!Value) _AllLinesCounter++; return Value; }

public bool LinesCounter2(bool Value) { if (!Value) _AllLinesCounter2++; return Value; }

public int ShowAllLinesCounter() { return _AllLinesCounter == 0 ? _AllLinesCounter2 : _AllLinesCounter; }

public int ShowAllLinesCounter2() { return _AllLinesCounter2; }

int _LinesCount = 0, _LinesShown = 0;

public int ShowNumberOfLinesPerOnePage(int AllLinesCounter,int P)

{

if (P == 1)

_LinesShown = 0;

int a = AllLinesCounter – _LinesShown;

_LinesShown = AllLinesCounter;

return P > 1 && _LinesShown == 0 ? 0 : a;

}

public int NumberOfLinesPerOnePage(bool Visible) { if (!Visible) _LinesCount++; return _LinesCount; }

public int SumOfLinesPerOnePage() { return _LinesCount; }

public string FormatAmount(Double Value) { return Value > 0 ? “(” + Math.Round(Value, 0).ToString(“#,##0.##”) + “)” : Math.Round(-Value, 0).ToString(“#,##0.##”); }

}

The post NavHelperFunction appeared first on ForNAV.

ForNAV Granule Required

$
0
0

To use ForNAV and work with the ForNAV Designer using extensions in Microsoft Dynamics 365 Business Central v14 and later, in an OnPrem (or private cloud) scenario, you must have the ForNAV granule (6188500 Reports ForNAV) configured in your Business Central license file. This is due to how Microsoft licensing and permissions work.

A Microsoft Dynamics partner must include the ForNAV granule (6188500 Reports ForNAV) in a customer’s license file (.flf). This is done in PartnerSource Business Center, at no cost to ForNAV.

NOTE
If this is your first ForNAV granule sale, to access this granule, partners must first send an e-mail to: support@fornav.com. Please state your partner PSBC/VOICE number, and request access to the ForNAV ISV granule.

The post ForNAV Granule Required appeared first on ForNAV.

Error in Report Selection

$
0
0

You might get the following error message when printing or sending a ForNAV report:

The SourceExpr for report control ‘ReportForNav_Header’ is not valid. The following error occurred: A call to System.IO.Compression.ZipArchive failed with this message: The value of Seek/OffsetFromEnd parameter is outside of the permitted range. The current value is: -18. The permitted range is: from 0 to 2.147.483.647.

This issue is probably due to an error in the Report Selection – Sales page:

In this example, the user has tried to print a Credit Note with an Email Body Layout Description that does not exist.

You can fix this error by clearing the Use for Email Body check box.

If you want to use e-mail body with a ForNAV Report, we recommend that you follow these guidelines: https://www.fornav.com/knowledge-base/using-e-mail-body-with-a-fornav-report/

Depending on which report you are trying to print, you must make the correction for the relevant Usage (Document Type), for example, Quotes, Orders, Credit Memos, and so on.

Depending on the type of report, we recommend that you also check other relevant document groups, for example, for the Report Selection – Purchases page.

 

Error message in Danish/på dansk:

SourceExpr for rapportkontrolelementet ‘ReportForNav_Header’ er ikke gyldig. Der opstod følgende fejl: Et kald til System.IO.Compression.ZipArchive mislykkedes med følgende meddelelse: Værdien af Seek/OffsetFromEnd-parameteren er ikke inden for det tilladte interval. Den aktuelle værdi er: -18. Det tilladte interval er: Fra 0 til 2.147.483.647.

The post Error in Report Selection appeared first on ForNAV.

Viewing all 372 articles
Browse latest View live