Programs for Navision
Also known as Microsoft Dynamics NAV.
Here are some programs which I have made.
The programs are free and you are welcome to download and use them.
You are welcome to write me an e-mail and tell me what program you have downloaded and state your opinion about the program.
Click here to write to me.
If you find some of the stuff on this website useful and wish to show your support and appreciation,
you can do so by clicking on the PayPal Donate button and give a little amount.
Note that you don't have to pay anything, but even a small amount will help to keep this website up.
Thank you very much.
Finn's FobViewer
Version 2.5.
Date 2018-06-26.
If you are working as a Navision Developer, this program is a "must have".
Click image to enlarge.
Download here:
fobview25.zip (432 KB).
Click the link and select "Save Destination as". Choose your Desktop or some other location.
After download, right click the zip-file and select Properties.
If there is an Unblock button, click that Unblock button and then click OK.
Now you can unpack the zip-file to a directory of your own choice.
Overview
FobView can view FOB, FBK, TXT and XML object files from Microsoft Dynamics NAV (Navision).
It lists the objects contained in these files and by loading two files it is possible to compare the objects in these files.
It's posible to save the list to a text file, print the list, and export the list to Excel.
Features
Viewing of FOB, FBK, TXT and XML files from Navision.
Handles object types: TableData, Table, Form, Report, Dataport, Codeunit, XMLport, MenuSuite, Page, Query.
Show the entire 80 characters Version field of an object.
Show the Modified flag of an object.
Show the Compiled flag of an object.
Read and compare 2 files.
Save the list to a comma separated text file.
Print the list.
Transfer the list to Excel (Excel must be installed).
National characters in object Name and Version List are shown correctly (converted from ASCII used in the fob file to Windows ANSI).
Can check for updates.
Use Drag-and-Drop to open files.
Can mark objects in Navision Object Designer.
Set filter for the columns in the list.
If you associate the file extension .fob with the program (and do it correctly), you can double click on a FOB file and the FobViewer program will automatically start and open the FOB file.
How to do this depends on the Windows version you are using.
Installation
Unpack the zip-file and copy "FobView.exe" to a library of your own choice.
If you already have an old version, just overwrite the old exe-file with the new exe-file.
-----
If you get a security warning when trying to run the exe file, do this:
Download the zip file. Right click the zip file and select Properties. Click the Unblock button and click Ok. Now unpack the zip file. Or do the same with the exe file.
This is something Windows does with files you download from the Internet.
Uninstallation
Just delete the exe file.
The program creates a registry entry under the key HKEY_CURRENT_USER\Software\Finn Tolderlund\FobView.
You can delete this key by using Regedit (be careful not to delete or change anything else in the registry).
Bugs and Suggestions
Please feel free to mail me any suggestions you might have to improve the program.
If it reads and displays a .fob file wrong in some way please send the .fob file to me with a description of the error.
Please zip the .fob file to reduce the size before mailing it to me.
Change history
2018-06-26 Version 2.5
Can now handle the expandet the Version List in newer NAV (a frequent request).
2013-10-30 Version 2.4
When reading a text object file objects with the name ending with a space (!!) was skipped and not shown in fobwiev.
Objects of type Query can now be marked in Object Designer.
2013-06-05 Version 2.3
Requested feature: When comparing to show unequal objects, added selection to only show objects which are in both files.
Requested feature: Added keyboard shortcuts to functions Save (Ctrl+S), Excel (Ctrl+E), Print (Ctrl+P), Mark Objects (Ctrl+M), Make Filter String (Ctrl+F).
2013-03-06 Version 2.2
Requested feature: When comparing two object files, added a toolbuton to show objects which are added in file 2, and added a toolbutton to show objects which are deleted in file 2.
Requested feature: Made setting to configure shortcut to "select all" objects in Object Designer. Select All is Ctrl+A in english, but Ctrl+E in spanish.
2012-09-05 Version 2.1
Fixed error message "Range Check Error" which came when loading fob files with more than 20000 objects.
2012-05-18 Version 2.0
Compatible with NAV7: Support for new Query object type.
Changed icon for Page object type.
New function to create a Filter String and copy it to the Clipboard.
Better to detect that focus have changed to another program When marking objects in Object Designer, so object marking is stopped more reliably.
2011-11-26 Version 1.9
Rewritten code for Intelligent Object Marking. It now also works in other themes and not only with Windows XP Classic theme.
In Windows 7 Date and Time are now displayed correctly according to user's locale. Before in some cases a wrong format was used.
2010-09-16 Version 1.8
Increased speed greatly when marking objects in Object Designer by setting filter for 20 objects at a time instead of just one object at a time.
After marking objects in Object Designer, "Select All" Objects are no longer performed.
2010-05-11 Version 1.7
Minor changes only.
Changed how the current row in grid moves when pressing Page Up and Page Down.
Improved detection that user has removed focus from Navision when marking objects in Object Designer.
2009-10-09 Version 1.6
Improved object marking to work better with a client connected to a slow server.
Added Intelligent Object Marking: When marking objects from multiple fob files, the same objects are not unmarked.
- It can by turned on and off in Settings.
- It currently only works in Windows XP with med Windows Classic theme. It doesn't work with Windows XP theme. Sorry. I'll try to fix that later.
- It is only tested with Windows XP and Windows Server 2003.
Made vertical scrollbar (thumb size) proportional, so it reflects the number of rows in the grid.
Open buttons now include *.txt and *.xml in file type list (in addition to *.fob and *.fbk). This was forgotten in previous versions.
Added setting to select small or large toolbar buttons. Was previously only available by right clicking the toolbar.
Filter for a column is now indicated by a bold column header.
Shows in status bar how many objects are in the list.
Now shows various controls according to Themes in Windows.
2009-09-09 Version 1.5
Possible to filter the list, by clicking column header or using the toolbar button or pressing Ctrl+F7.
Filters can by cleared by using the toolbar button or pressing Shift+Ctrl+F7.
You can use @ and wildcards (* and ?) in filters, to set a filter such as @*item* in the Name column.
You can't use |, &, <, >, = or .. as you can in Navision.
Fixed bug when reading XML files. It could not read some XML files.
Made export to Excel faster by making Excel not visible when transferring data.
Shows progress bar when saving to file, printing, exporting to excel.
Optimized marking of objects in Object Designer a little.
Possible to switch between small and large toolbar buttons by right clicking the toolbar.
Changed Main Icon and toolbar button graphics a bit.
Shows hint in status bar.
2009-08-25 Version 1.4
New tool button to mark objects in Navision Object Designer.
Minor change: Only shows hint in grid if text is longer than column width.
Minor change: Paint grid lines in full client area of grid.
2009-08-17 Version 1.3.1
Improved reading of fob files. I received a couple of fob files which the program could not read.
2009-08-11 Version 1.3
Added reading of FBK files.
Added reading of TXT files.
Added reading of XML files.
Note about TXT files:
1. BLOB Size is shown as 0 as it is not present in the TXT file.
2. NAV writes the Date and Time to the TXT file using the machine's Regional Settings.
- FobViewer tries to interpret the date and time and reformat them for display using the machine's Regional Settings.
- If the interpretation fails they are displayed exactly as they are in the TXT file.
- The interpretation may fail if you try to view a TXT file which was written using Regional Settings different from your own.
- The interpretation should never fail when you view a TXT file which was written using Regional Settings the same as your own.
Notes about XML files:
1. BLOB Size is shown as 0 as it is not present in the XML file.
2. XML files can apparently only contain objects of type Form, Report, Page (not Table,Dataport,Codeunit,XMLport,MenuSuite).
- When exporting objects only Form/Report/Page will be written to the XML file (at least in NAV 2009).
3. The Time value in the XML is written in UTC. This is different from FOB/FBK/TXT where the time value is written in local time.
- When you import a XML file into NAV this UTC time is adjusted to local time by using the machine's Regional Settings for the Time Zone and Daylight Saving Time.
- This actually means that if two people located in different parts of the world import the exact same XML file, the object's time in NAV will be different.
- (If they import the same FOB file, the object's time in NAV will be the same).
- FobViewer will adjust the UTC time to local time by using the machine's Regional Settings for the Time Zone and Daylight Saving Time.
2009-08-05 Version 1.2
New option when showing equal or different objects to sort them by File/Type/ID or by Type/ID.
Saving an empty list to file no longer results in an error message " '' is not a valid date. ".
If there are no data rows in the list you can no longer save it, print it, or export it to Excel.
Improved reading of the fob file structure. There was a rare case of a fob file which couldn't be read because of a slightly different structure.
2009-08-01 Version 1.1
Hint is shown in list.
Exporting an empty list to Excel no longer results in an error message " '' is not a valid date. ".
If Excel is not installed it is shown as hint for Excel tool button.
Can now check for updates.
2009-07-20 Version 1.0.1 Beta
National characters in object Name and Version List are shown correctly (converted from ASCII used in the fob file to Windows ANSI).
2009-07-18 Version 1.0 Beta
First released.
Could only read FOB files.
Can also be downloaded from mibuso.com Downloads
UPDATE 2021-03-04:
Information about the FOB/FBK file structure.
I only know bits and pieces of the structure.
You can download the code I use to read a fob file here:
fobunit.zip
It's coded using Delphi.
If you do not have Delphi, you can open the file in any text viewer, including Notepad.
A few notes about the code:
Delphi is based on Pascal. Object oriented.
// is a comment
Anything between { } is a comment - it can span multiple lines.
Use it in any way you like.
Description of FOB and FKB file layout
Warning: some of this information could possible be wrong. Use it with caution.
The layout of a FOB and FBK are basically the same.
The FOB file is simpler than the FBK file and do not contain everything described below.
The FBK file is a bit more complicated and contains all parts which are described below.
You could say that a FOB file is a simple version of a FBK file,
or that a FBK file is a more complicated version of a FOB file.
Basically a fob file consists of 4 sections:
1. Simple object list (text format)
2. Various bytes - purpose unknown (binary format)
3. Detailed object list (binary format)
4. Objects (code and so on) (binary format)
5. End of fob file (binary format)
Detailed description of the 4 sections.
1. Simple object list
This list consists of simple text lines ending with CR+LF.
For each object there are 2 lines, each with a fixed length, with a total of 161 bytes.
Line 1 is 79 bytes long + CR+LR (81 bytes total).
Line2 is 78 bytes long + CR+LF (80 bytes total).
This simple object list ends when a $1A comes next after line 2.
Line1:
9 bytes. Object Type. Right padded with blanks.
Values: "Table", "Form", "Report", "Dataport", "Codeunit", "XMLport", "MenuSuite", "Page".
1 byte. Space.
10 bytes. Object ID. Left padded with blanks.
1 byte. Space.
30 bytes. Name. Right padded with blanks.
1 byte. Space.
11 bytes. Date. Formatted using regional date formatting. Left padded with blanks.
1 byte. Space.
14 bytes. Time. Formatted using regional time formatting. Left padded with blanks.
1 byte. Space.
2 bytes. CR+LF ($0D0A).
Total: 81 bytes.
Line 2:
20 bytes. Object size. Left padded with blanks.
1 byte. Space.
56 bytes. Version List. Right padded with blanks. Cut off to max 56 characters.
1 bytes. Space.
2 bytes. CR+LF ($0D0A).
Total: 80 bytes.
Total for Line1 + Line 2: 161 bytes.
This list is terminated with a $1A byte.
0..3 bytes (always $1A it seems), apparently always until the next byte position in the file can be evenly divided by 4.
2. Various bytes - purpose unknown.
This consists of $380 bytes + a varying number of $00 bytes.
8 bytes. Begins with $01.
Byte 1-4 contains $01, $1B, $??, $?? These 2 bytes are unknown.
Byte 5+6 contains length of this block, not counting these first 8 bytes. So next block (starting with $01, see section 3 below) begins at $01address+Length+8.
8 bytes. Begins with $0A.
8 bytes. Begins with $0B.
8 bytes. Begins with $0C.
8 bytes. Begins with $0D.
8 bytes. Begins with $0E. Last 4 bytes contains the date when the fob file was created.
8 bytes. Begins with $0F. Last 4 bytes contains the time when the fob file was created.
8 bytes. Begins with $10.
8 bytes. Begins with $11.
Total: $48 bytes.
$2D0 bytes with a bunch of byte values ending with $7F,$FF,$00.
4 bytes of $00.
8 bytes. Begins with $12.
8 bytes. Begins with $13.
8 bytes. Begins with $14.
8 bytes. Begins with $15.
8 bytes. Begins with $16.
8 bytes. Begins with $17.
8 bytes. Begins with $18.
8 bytes. Begins with $19.
8 bytes. Begins with $1A.
8 bytes. Begins with $1C.
Total: $50 bytes.
4 bytes of $00.
8 bytes. Begins with $1E.
4 bytes of $00.
8 bytes. Begins with $1F.
4 bytes of $00.
Total: $1C bytes.
Total: $48 + $2D0 + 4 + $50 + $1C = $318 + $70 = $338 bytes.
Now comes a varying number of $00 bytes, usually 0 or 4 or 8 bytes. Skip these bytes until you come to a byte <> $00.
The first byte <> $00 marks the beginning of the next section.
Apparently always at a position in the file which can be evenly divided by 4.
3. Detailed object list
Each object is described in detail here, and each object description is of varying length in bytes.
The object Name and Version List has variable length.
I have seen examples of fob files where the Version List was present here twice, with one correct Version List and a wrong Version List.
Each object description consists of:
----------
Block beginning with $01:
If the first byte here is $02 instead of $01, it means the end of the detailed object list.
8 bytes. Begins with $01. Byte 5 contains length of this block, not counting these first 8 bytes. So next block (starting with $04, see below) begins at $01address+Length+8.
8 bytes. Begins with $01. Byte 5 of these 8 bytes (byte 4 after $01) contains a value $01-$08 = object type (0=TableData, 1=Table, 2=Form, 3=Report, 4=Dataport, 5=Codeunit, 6=XMLport, 7=MenuSuite, 8=Page).
8 bytes. Begins with $02.
8 bytes. Begins with $03. Object ID number. $03 00 00 00 B1 B2 B3 B4. B1-B4 is the object ID number in LSB format (B1 is LSB). LSB = Least Significant Byte.
4 bytes. Begins with $04. Beginning of object Name. $04 00 00 00.
0..30 bytes with object Name in ASCII.
1 byte of $00. Character string terminator.
0..3 bytes, usually with $00. Apparently so that the next position in the file can be divided by 4.
8 bytes. Begins with $05. Byte 5 of these 8 bytes (byte 4 after $05) contains Modified flag. $00=Not Modified. $01=Modified.
8 bytes. Begins with $06. Byte 5 of these 8 bytes (byte 4 after $06) contains Compiled flag. $00=Not Compiled. $01=Compiled.
8 bytes. Begins with $0A. Object Date.
8 bytes. Begins with $0B. Object Time.
4 bytes. Begins with $0C. Beginning of Version List. $0C 00 00 00.
0..80 bytes with Version List in ASCII.
1 byte of $00. Character string terminator.
0..3 bytes, usually with $00. Apparently so that the next position in the file can be divided by 4.
8 bytes. Begins with $08.
----------
Block beginning with $04:
8 bytes. Begins with $04. Byte 5 contains length of this block, not counting these first 8 bytes. So next block begins at $04address+Length+8.
4 bytes of $00.
8 bytes. Begins with $04.
4 bytes of $FF. End of this block.
BUT ...
Sometimes (rarely seen) a fob file will have more bytes in the description instead of the 4 $FF.
These bytes are described here:
4 bytes. Begins with $02. $02 00 00 00.
4 bytes. Begins with $04. $04 00 00 00.
4 bytes. Begins with $01, $02, $04, $05, or perhaps another value.
8 bytes. Begins with $01. Beginning of extra Version List. $01 00 00 00 LL 00 00 00. LL is the length of Version List + 1 (including the terminating $00).
0..80 bytes with Version List in ASCII. This Version List is wrong and should be ignored.
1 byte of $00. Character string terminator.
0..3 bytes, usually with $00. Apparently so that the next position in the file can be divided by 4.
4 bytes of $FF. End of this block.
The next byte (first bytes og next block) can be $01 (next object description) or $02 (no more object descriptions).
----------
4. Objects (code and so on)
No description of this section.
5. End of fob file
The last 16 bytes is perhaps some kind of check sum.
A few words:
1. Check the programs for virus. You should always do that when you get programs from the internet. I did however test it myself.
2. Use of the program are your own responsibility. If your computer explodes, it's just too bad. They work fine on my own PC.
3. The programs are not tested fully on all Windows versions. If you experience some problems I would like to hear about it. Send me an e-mail describing the problem.
Send an e-mail to Finn Tolderlund and tell me what you think about my programs.
Also if you have an idea how to improve one of the programs please write to me.
Last updated 2021-03-04.