Disable Sorting – List Page


Hey Friends,

Recently I got a requirement where client asked me to disable Sorting. They don’t want any user to rearrange the data based on any field.  Here is just what needs to be done.

Open list page and navigate to Repeater Property –  Here you will find IndentationColumnName property. Just change it to 0 and we are done.

There are many properties in multiples places across NAV which we don’t bother to experience but it can literally make our life easier.



Cross Reference No – Item


Hey Friends,

There’s many features in standard NAV which we normally don’t use, not because we don’t want to but just because we are not aware. Item Cross Reference is one of the out of the box feature which I belief is rarely used by the end users but it’s really an awesome one for them to use in there day to day data entry process. The basic benefit of this is you don’t have to look for Item No every time, just your unique reference and it will automatically bring the respective item, Variant and so on.

So here’s what you need to do – Open Item List

Here as highlighted in screenshot you need to open Cross Reference and do the respective setup’s. This you need to do for each and every Item. So here we are doing for Item I000009.

Here you need to put the Customer No for the Customer’s you want to do along with the Variant and Unit of Measure Codes. Cross Ref No will be the key to identify this.

Now you need to navigate to Sales Order and you are supposed to make the new one.

Now as you see the screenshot we took the same customer for which we did the setup, Now we need to navigate to Line Items and push the drop down for Cross Reference No. Generally Cross Reference No is not visible so you need to choose it from Choose Columns. So once you hit the Drop Down you will have the list of Cross Reference’s that you did the setup for. Now you just have to hit OK and you will have your line item ready.

So by this you don’t have to look for your Item No every time. Just one setup as per your convenience and you are good to go.


File Upload – SFTP


Hey Friends,

This post I dedicated in how to upload a file on SFTP from NAV. This normally happens when we are doing some sort of processing from a file which has to be processed needs to be downloaded from a SFTP and then eventually needs to be processed. SFTP is Secured File Transfer Protocol so it’s  a level more secured then FTP.

Below is the screenshot of the code that needs to be written.

This code is to move File to respective SFTP.

WinSCP is free DLL that you can find over internet and its very effective.


File Upload – FTP


Hey Friends,

This post I dedicated in how to upload a file on FTP from NAV. This normally happens when we are doing some sort of processing from a file which has to be processed needs to be downloaded from a FTP and then eventually needs to be processed.

Below is the screenshot of the code that needs to be written.

This one is a very simple example, you can manipulate this as per your need. In the very next post I will come up on dealing with SFTP. This one will work only for FTP.

ConnectionString := ‘ftp://your.ftp.address’;

SourceText := ‘Something that you want to write in the file’;

FTPRequest := FTPRequest.Create(ConnectionString);

FTPRequest.KeepAlive := TRUE;
FTPRequest.UseBinary := TRUE;
FTPRequest.Method := ‘STOR’;

FTPRequest.Credentials := NetworkCredential.NetworkCredential(‘UserID’,’Password’);

UTF8Encoding := UTF8Encoding.UTF8Encoding;

FTPRequest.ContentLength := UTF8Encoding.GetBytes(SourceText).Length;
RequestStream := FTPRequest.GetRequestStream;

FTPResponse := FTPRequest.GetResponse;


FTPRequest  DotNet System.Net.FtpWebRequest.’System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′ FTPRequest DotNet System.Net.FtpWebRequest.’System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′

FTPResponse DotNet System.Net.FtpWebResponse.’System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′

NetworkCredential DotNet System.Net.NetworkCredential.’System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′ WebRequestMethods DotNet System.Net.WebRequestMethods.’System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′

UTF8Encoding DotNet System.Text.UTF8Encoding.’mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′

RequestStream DotNet System.IO.Stream.’mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′

ConnectionString Text

SourceText Text




Extended Text – Item Card


Hey Friends,

This page is all about How to Use Extended Text – Extended Text is a base functionality of Dynamics NAV where you can add some custom description for any of the Item which you want to Sell, Purchase etc..

So to use this you simply need to navigate to Item Card and open any of the Item, then and there on the Action Tab you will find a button Extended Text, you need to push this and a new page will open as shown in the below screenshot –

Highlighted part is the area where you need to fill in the text which you want to populate. Below is the Sales, Purchase and Service fast tab where you need to check the Flag where you exactly want this and disable the flags where you don’t.

Now try making a New Sales Order with the same Item for which you did the Setup –

Now as soon as you validate the Item, the Extended Text will automatically get populated as shown in the above screenshot. In the Item card you fill find a Flag Automatic Ext. Text. If this Flag is on then the text will automatically come otherwise you need to manually fill in by navigating to Function -> Insert Ext. Text.


File to Byte Conversion – Client to Server Move

Hey Friends,

This is a very simple post on how to move a file from your client computer to server computer. We all are well equipped and experienced in moving a file directly from a physical path, if we simply need to just copy that file as we all have expertise in using File Management Codeunit.  I just experienced a case where client was scanning the file from NAV and then and there he requested that the scanned file can anyhow directly move into server computer without any physical storage in the current client machine.

As the scanning form was a part of .NET dll so to achieve this and after scanning I sent that scanned file as a parameter in Big-text format to NAV Web Service. Here the actual work comes into play. Look at the below piece of code

Byte:=Convert.FromBase64String(FileInBigText); FileInBigText includes scanned file

File.CREATE(FilePath); Filepath Includes Path + Name + FileType


NAV ClickOnce Deployment – Fileshare


Hey Friends,

This Post is all about deploying your Dynamics NAV through ClickOnce to your local domain, where each User can access NAV without any dependency of system prerequisites. If you have no idea of ClickOnce then you can have a look on this ClickOnce

So first step what you need to do is to install the ClickOnce from the NAV build. If you have NAV already installed then you just need to open it out and install the ClickOnce setup.

Once you are done with the installation part you need to make a new folder and subfolders in any of your drives and name it like this  FileShare\ClickOnce\Deployment\ApplicationFiles(Name you can choose as per you).

Now you need to navigate to C:\Program Files (x86)\Microsoft Dynamics NAV\71\RoleTailored Client.


Here from this folder you need to copy all the files from the above mentioned path to – FileShare\ClickOnce\Deployment\ApplicationFiles the one we made above.

After this you need to copy your ConfigSettings from your local app folder(C:\Users\username\AppData\Roaming\Microsoft\Microsoft Dynamics NAV\71)

Now you need to navigate to  – C:\Program Files (x86)\Microsoft Dynamics NAV\71\ClickOnce Installer Tools\TemplateFiles and copy all Files from here to this directory as created above FileShare\ClickOnce\

Now you need to open Command Prompt with admin right and fire the command as shown below – 

  1. Navigate to FileShare\ClickOnce\Deployment\ApplicationFiles from command prompt and fire this command
    1. “C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\mage.exe” -Update Microsoft.Dynamics.Nav.Client.exe.manifest
  2. Navigate to FileShare\ClickOnce\Deployment\ from command prompt and fire this command
    1. “C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\mage.exe” -Update Microsoft.Dynamics.Nav.Client.application -appmanifest ApplicationFiles\Microsoft.Dynamics.Nav.Client.exe.manifest -appcodebase \\fileshare\Clickonce\Deployment\ApplicationFiles\Microsoft.Dynamics.Nav.Client.exe.manifest
  3. You can manually navigate to these two files and cross-verify with current date and time that it’s been successfully updated.
  4. Now you need to open  Microsoft.Dynamics.Nav.Client.application file from Deployment folder as created above and change couple of things like Assembly Identity name as your specific Customer for whom you made this OneClick.

Now you are good to go but again one point is there that you need to take care – You can only access this OneClick from your local computer if you have shared this over network otherwise if you try to access it directly then you will end up with some security zones issue.

So now share your Fileshare folder with all necessary permissions and for those people with whom you truly want to share. Once you are done with this, Please try to access this in your windows explorer


Now try to open your Microsoft.Dynamics.Nav.Client application manifest, a dialogue box will come which will ask you to install it up, if it ends up with an error then you need to open the log and check the error log.

Install the application and enter the valid ID and Password and you will be logged in to NAV RTC Environment.


Check Valid Zip Code


Hey Friends,

This Post is all about validating a proper Zip Code. Just 2 3 lines of code needed and you can validate your zip code. So below is the line of code that you just need to write.








IF NOT Regex.Match(ZipCode, ‘^\d{5}$’ ).Success THEN

Regex           DotNet                  System.Text.RegularExpressions.Regex.’System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′


Custom Form – Dynamics NAV

Hey Friends,

As we all know we have certain limitations while designing a Page in NAV, i.e. We deliberately cant design our NAV Page as we want to, Actions OR Buttons must be on the Top, We cant make buttons somewhere on the middle of the Page, We can’t design a page in which we can have multiple controls like Buttons, Radio Buttons and so on and possibly anywhere on the Page.

This limitation could be sorted out if we have certain hands on, on Dot Net variables. I just got a requirement where client was asking for certain design on the Page as per his requirement and he hardly cares for the limitations. So I just make a custom Windows Form which anyhow fulfilled his requirement.

You have the liberty to add n number of buttons or other controls or how badly you want to customise it.

WinForm := WinForm.Form;
Colour := Colour.Color;
WinText := WinText.TextBox;
WinForm.Width := 733;
WinForm.Height := 415;
WinForm.BackColor := Colour.Green;
WinForm.ForeColor := Colour.Green;
WinForm.Text := ‘SMS BODY’;
WinForm.StartPosition := StartPosition.Manual;

WinForm         DotNet       System.Windows.Forms.Form.’System.Windows.Forms, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′

WinText          DotNet        System.Windows.Forms.TextBox.’System.Windows.Forms, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′

Colour            DotNet          System.Drawing.Color.’System.Drawing, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’

Off The Topic – Shutdown Machine from NAV

Hey Friends,

This Post is just a part of Brainstorming, and doing a research worth needed having out of the box thought that If Client just want to shutdown Machine directly from NAV. Though it will never be demanded but on the counterpart Client Expectation has no limits. 🙂

The interesting part is it’s just a single line of Code which will do the Job .

Process.Start(‘shutdown’,’/s /t 0′); – Shutdown
Process.Start(‘shutdown’,’/r /t 0′); – Restart

Process – DotNet – System.Diagnostics.Process.’System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089′