Jet Express 1: ©2011 Jet Reports, Inc.. All Rights Reserved
Jet Express 1: ©2011 Jet Reports, Inc.. All Rights Reserved
Jet Express 1: ©2011 Jet Reports, Inc.. All Rights Reserved
1 Table of Contents
1. Table
of
Contents 1-2
2. About
Jet 3
3. Installation
and
Configuration 4
3.1. Quick
Installation
Guide 4
3.2. Prerequisites 4
3.3. Installing
Jet 4-5
3.4. Configuring
Jet 5
3.4.1. Application
Settings 5
3.4.2. Data
Source
Settings 6
3.4.2.1. Configuring
a
Dynamics
NAV
Data
Source 6-7
3.4.3. Advanced
Dynamic
NAV
Configuration 7
3.4.3.1. Serenic
Navigator
User
Access
Rules 7-8
3.4.4. Jet
with
Citrix 8
4. Jet
User
Interface 9
4.1. Report
Modes 9
4.2. General
Ledger 9
4.3. Jet
Function
Wizard
(Jfx) 9
4.4. Table
Builder 9
4.5. Drilldown 9
4.5.1. Grid
Drilldown 9-10
4.6. Debug 10
5. Reference 11
5.1. NL
Function 11-12
5.1.1. Filtering
Data 12
5.1.1.1. Blank
Filters 12
5.1.1.2. Special
Characters
in
a
Filter 12
5.1.1.3. Specifying
More
Than
Ten
Filters
in
the
NL
Function 13
5.1.1.4. Limiting
the
Number
of
Records
in
a
Query 13
5.1.1.5. Dynamics
NAV
Specific
Filtering 13
5.1.2. Retrieving
Special
Fields
with
NL(Table) 13-15
5.1.3. Sorting 15
5.2. GL
Function 15
5.2.1. Dynamics
NAV
GL
Function 15-16
5.3. Filtering 16-17
5.4. Keyboard
Shortcuts 17
5.5. Automatic
Report
Formatting 17
5.6. Distributing
Reports 17
5.6.1. Report
Viewers 17-18
5.6.2. Locked
Worksheets 18
5.6.3. Viewer
Editable
Worksheets 18
5.6.4. Report
Options 18
6. Index 19-21
2 About Jet
What
is
Jet?
Jet
is
a
Microsoft
Excel
add-in
that
integrates
Excel
with
your
database
so
that
you
can
create
reports
with
simple
worksheet
functions.
The
functions
read
directly
from
your
database
so
that
instead
of
copying
and
pasting,
you
can
refresh
the
data
right
in
Excel.
More
information
about
the
Jet
functions
can
be
found
in
the
Reference
section.
Prerequisite
Knowledge
To
use
Jet
you
should
have
experience
with
Microsoft
Excel,
including
cell
referencing
and
worksheet
functions.
You
should
also
have
a
basic
understanding
of
your
database
structure.
{Discard}
IMPORTANT:
Ensure
that
you
have
administrative
privileges
prior
to
installation.
1.
Run
the
Jet
Express
installation
file.
2.
The
Jet
Express
add-in
will
be
automatically
activated
in
Excel
for
the
current
user
upon
completion
of
the
installation.
See
the
section
on
Activating
Jet
Express
('Installing
Jet'
in
the
on-line
documentation)
to
activate
the
add-in
for
additional
users.
3.
See
additional
Prerequisites
(Section
3.2)
for
your
database
type.
4.
Configure
a
connection
to
your
database
in
the
Data
Source
Settings
(Section
3.4.2).
3.2 Prerequisites
All
Users
Supported
Operating
Systems
Microsoft
Windows
XP
Microsoft
Windows
Server
2003
Microsoft
Windows
Vista
Microsoft
Windows
Server
2008
Microsoft
Windows
7
Supported
versions
of
Microsoft
Office
Microsoft
Office
2007
Microsoft
Office
2010
(32-bit
and
64-bit)
Supported
Databases
Microsoft
Dynamics
NAV
6.0
(executables)
or
later
Dynamics
NAV
Users
Before
you
can
use
Jet
Express
with
Dynamics
NAV,
you
must
have
the
following
additional
software
installed:
The
Dynamics
NAV
Classic
Client
with
executable
version
6.0
or
later.
The
Dynamics
NAV
Classic
Client
must
be
present,
even
for
Dynamics
NAV
2009
RTC
users.
It
may
also
be
necessary
to
install
the
matching
version
of
C/FRONT,
which
is
included
in
the
Dynamics
NAV
SDK.
This
is
not
necessary
in
most
cases,
as
Jet
includes
the
required
version
of
C/FRONT
for
all
major
versions
and
service
packs
of
Dynamics
NAV.
A
Dynamics
NAV
License
file
that
permits
C/FRONT
must
be
saved
as
FIN.FLF
in
the
Dynamics
NAV
client
program
folder
of
each
workstation
that
will
run
Jet.
Dynamics
NAV
Security
To
use
Jet,
a
user
must
have
a
role
in
Dynamics
NAV
with
no
company
restrictions
defined
that
allows
them
to
read
the
Company
Table
Object
and
Table
Data.
They
must
also
have
read
permissions
to
all
tables
on
which
they
will
be
reporting.
Dynamics
NAV
Security
Filters
are
not
automatically
applied
by
C/FRONT,
but
any
attempt
to
read
data
outside
the
constraints
of
a
Security
Filter
will
fail
with
an
error
message.
This
must
be
done
even
if
you
are
logged
in
as
an
administrator
in
order
for
the
installation
to
run
with
elevated
privileges.
You
can
upgrade
Jet
without
uninstalling
previous
versions.
Activating
Jet
Express
The
Jet
Express
add-in
must
be
activated
in
Excel
for
each
user
who
intends
to
use
it.
The
simplest
way
to
activate
is
to
select
the
Activate
option
from
the
Jet
Express
Program
menu.
Activation
can
also
be
done
manually
by
following
these
steps:
1.
Open
the
Excel
Add-Ins
Window.
2.
Click
the
Browse
button
and
browse
to
the
"JetReports"
program
folder.
3.
Select
JetReports.xlam.
4.
Click
Yes
to
overwrite
the
file
if
prompted,
then
click
OK.
Upon
successful
activation,
the
Jet
Reports
ribbon
will
become
visible
in
Excel.
Language
The
Jet
user
interface
language.
General
Lookup
Sample
Value
Limit
The
maximum
number
of
sample
values
that
will
be
retrieved
when
performing
a
lookup.
Lookup
Record
Scan
Limit
The
maximum
number
of
records
that
will
be
scanned
in
order
to
retrieve
sample
values
when
performing
a
lookup.
Auto
Debug
Report
Errors
Determines
whether
Jet
automatically
scans
the
report
for
#VALUE!
errors
after
running
reports
and
display
a
diagnostic
message.
Advanced
Show
Compatibility
Mode
Warning
Determines
whether
Jet
will
display
a
warning
message
about
the
issues
associated
with
running
Excel
in
compatibility
mode.
Show
Language
Module
Warning
Determines
whether
Jet
will
display
a
warning
when
you
have
selected
a
language
for
a
Dynamics
NAV
data
source
for
which
a
corresponding
language
module
has
not
been
exported.
Enable
Jet
logging
Determines
whether
operations
will
be
logged
to
a
file
in
the
specified
directory.
Once
the
information
necessary
to
establish
a
connection
has
been
populated,
you
can
verify
connectivity
by
clicking
the
Test
Connection
button.
General
Navision
Client
Folder
Specifies
the
folder
that
contains
the
Dynamics
NAV
client,
fin.exe
or
finsql.exe.
The
Dynamics
NAV
license
file
should
also
be
located
in
this
folder
and
be
named
"fin.flf".
Language
Module
Folder
Specifies
the
folder
that
contains
your
Dynamics
NAV
language
modules.
Jet
can
use
tables,
fields,
and
option
values
in
your
language
if
you
export
the
language
module
from
Dynamics
NAV
and
specify
the
directory
that
contains
it.
The
language
module
should
have
the
same
name
as
the
three
letter
language
code
and
an
".flm"
extension
(e.g.
a
Danish
language
module
would
be
named
“DAN.flm”).
In
order
to
export
a
language
module,
you
must
have
Object
Designer
privileges
in
Dynamics
NAV.
Language
Specifies
the
language
in
which
Jet
will
display
database
captions
including
tables,
fields,
and
option
values.
Authentication
Determines
whether
to
use
Windows
or
Database
Server
Authentication.
If
your
database
uses
Database
Server
Authentication,
you
can
enter
a
User
ID
and
Password.
If
you
leave
either
of
these
fields
blank,
you
will
be
prompted
for
database
login
credentials
when
you
attempt
to
connect.
Connection
Server
Type
Specifies
whether
you
are
connecting
to
a
local
database
file,
a
Dynamics
NAV
database
server,
or
a
Microsoft
SQL
Server.
Server
Specifies
the
name
of
the
server
hosting
the
database.
Database
If
you
are
using
a
Microsoft
SQL
Server,
type
the
name
of
the
database
here.
If
you
are
using
a
local
database
file
type,
click
the
Browse
button
and
browse
to
the
Dynamics
NAV
database
file
you
want
to
use.
Net
Type
Specifies
the
appropriate
network
protocol.
Company
Specifies
the
company
that
Jet
will
use
by
default.
Display
The
display
properties
determine
how
tables
and
fields
are
displayed
in
the
Jet
user
interface
components.
Display
Empty
Tables
Determines
whether
to
display
tables
with
no
records.
Display
Record
Count
Determines
whether
to
display
the
number
of
records
in
each
table.
Table
and
field
drop
format
Specifies
the
format
of
table
and
field
identifiers
when
they
are
automatically
written
to
Jet
formulas.
Advanced
Key
Search
Algorithm
Specifies
the
algorithm
used
to
select
the
best
key
when
querying
the
database.
C/Front
Folder
If
specified,
overrides
the
default
directory
in
which
Jet
searches
for
the
C/Front
libraries.
This
feature
can
be
enabled
by
importing
the
Navigator
to
Jet
Bus
Objects
table
into
the
Navigator
database.
Configuring
Business
Objects
For
each
Business
Object,
there
is
a
set
of
field
mappings
in
the
“Navigator
to
Jet
Bus
Objects”
table.
These
field
mappings
determine
to
which
field
in
which
tables
the
User
Access
Rules
will
be
applied
for
a
given
Business
Object.
These
field
mappings
will
have
to
be
imported
into
Navigator
either
by
hand
or
using
a
Dataport.
The
"Navigator
to
Jet
Bus
Objects"
table
has
the
following
5
fields:
This
will
either
be
a
code,
i.e.
GLACCOUNT,
or
the
Object dimension
number.
4 Object Option The
type
of
Business
Object
defined
in
the
"Business
Object"
field.
This
can
Type either
be
code
or
dimension.
5 Field Text The
caption
of
the
field
as
defined
in
the
"Field
No."
field.
This
field
is
for
Caption convenience
only
and
is
not
used
by
Jet.
The
following
are
examples
of
rows
that
define
some
Business
Object
mappings
back
to
the
G/L
Account
table:
The
rows
above
define
two
field
mappings
back
to
table
15
("G/L
Account")
in
the
database.
The
first
row
indicates
that
User
Access
Rules
for
the
“GLACCOUNT”
Business
Object
will
be
applied
to
the
“No.”
field
in
the
“G/L
Account”
table.
Note
that
the
object
type
is
"code",
and
the
business
object
(GLACCOUNT)
maps
directly
to
the
name
of
an
existing
Business
Object.
The
second
row
in
the
example
has
an
object
type
of
"dimension".
This
means
that
the
value
in
the
"Business
Object"
field
should
correspond
to
a
dimension
number,
in
this
case
dimension
"1".
This
row
indicates
that
User
Access
Rules
for
dimension
1,
or
"PROGRAM"
in
the
Navigator
sample
database,
will
be
applied
to
the
"Global
Dimension
1
Filter"
field
in
the
"G/L
Account"
table.
If
a
Business
Object
does
not
map
directly
to
a
field
on
a
table,
rules
for
that
Business
Object
cannot
be
applied.
This
is
because
the
field
mappings
for
such
business
objects
cannot
be
defined
using
the
table
structure
as
described
above.
This
is
not
a
common
occurrence
within
the
standard
set
of
Business
Objects.
IMPORTANT:
Jet
is
not
supported
in
Citrix
environments
if
the
entire
desktop
is
not
published.
In
order
to
use
Jet
with
Citrix,
the
following
guidelines
apply:
The
entire
desktop
must
be
published.
Jet,
Excel,
and
the
client
database
components
must
all
be
installed
on
the
Citrix
desktop.
If
you
are
a
Dynamics
NAV
user,
the
Dynamics
NAV
Classic
Client
must
be
installed
on
the
Citrix
Desktop.
If
you
are
using
an
OLE
connector,
the
OLE
driver
for
your
particular
database
must
be
installed
on
the
Citrix
Desktop.
If
you
are
using
ODBC,
a
Windows
ODBC
Data
Source
must
be
configured
on
the
Citrix
Desktop.
The
Jet
add-in
must
be
activated
in
Excel
for
each
Citrix
user
who
intends
to
use
it.
See
Activating
Jet
Reports
(Section
3.3)
for
more
information.
Design
Design
mode
is
used
to
create
reports.
In
Design
mode,
Jet
function
results
are
optimized
for
speed
and
are
not
guaranteed
to
bring
back
correct
results.
Refresh
Refresh
runs
the
report,
refreshing
all
the
data
directly
from
the
database.
The
Table
Builder
can
only
be
used
with
Dynamics
NAV
data
sources.
4.5 Drilldown
To
perform
a
drilldown,
click
the
Drilldown
button
that
appears
in
a
cell
containing
a
Jet
formula
or
select
the
cell
and
select
Drilldown.
Drilldown
View
With
Grid
Drilldown,
drilldown
results
can
be
personalized.
By
right-clicking
a
column
header,
a
user
can
choose
which
fields
are
displayed
in
the
drilldown
form.
Additionally,
columns
can
be
reordered
by
dragging
a
column
header
to
the
desired
position.
When
the
drilldown
form
is
closed
the
fields
that
are
currently
visible
and
the
field
order
are
stored
as
the
drilldown
view
for
the
table.
The
next
time
the
user
drills
down
on
the
table,
only
the
fields
that
were
previously
visible
will
be
displayed
in
the
same
order.
Analyzing
Data
in
the
Grid
Drilldown
When
the
drilldown
form
opens
not
all
of
the
records
will
be
loaded.
While
records
are
being
loaded
a
progress
indicator
will
appear
in
the
lower
left
corner
of
the
form.
When
records
are
finished
loading
the
total
number
of
records
retrieved
will
be
displayed.
Grouping,
filtering,
and
sorting
can
all
be
done
while
records
are
still
loading.
Dynamics
NAV
and
Grid
Drilldown
FlowField
values
are
not
initially
loaded
in
the
Grid
Drilldown.
To
load
the
values
for
a
FlowField
click
the
refresh
button
in
its
column
header.
FlowField
values
cannot
be
loaded
until
all
of
the
drilldown
records
have
been
retrieved.
4.6 Debug
Debug
helps
diagnoses
problems
with
Jet
functions.
When
a
Jet
function
results
in
an
error,
#VALUE!
will
appear
in
the
worksheet
cell
containing
the
function.
To
debug
the
function,
select
the
cell
containing
the
error
and
choose
Debug.
A
message
that
helps
explain
the
problem
will
be
displayed.
5 Reference
5.1 NL Function
=NL(What, Table, Field, FilterField1, Filter1,..., FilterField10, Filter10)
Purpose:
Returns
fields
or
record
keys
from
a
table
based
on
filters.
Parameter Description
What Determines
what
is
returned.
Argument Description
"Link" Returns
a
string
value
that
can
be
used
as
a
filter
in
another
NL
function.
"Table" Creates
an
Excel
table
object
based
on
the
field
values
returned.
Leaving
the
Field
argument
blank
returns
all
fields.
Use
a
Field
Cache
to
return
multiple
fields.
"LinkField" Returns
a
string
used
to
retrieve
a
field
from
a
link
table
in
an
NL(Table)
function.
"LinkSum" Returns
a
string
used
to
retrieve
a
sum
of
a
field
from
a
link
table
in
an
NL(Table)
function.
"FlowField" Returns
a
string
used
to
retrieve
a
FlowField
from
the
primary
table
in
an
NL(Table)
function.
FlowFilters
in
this
function
are
only
applied
to
the
specified
FlowField
and
not
the
parent
query.
Table The
name,
number,
or
caption
of
the
table.
Field The
name,
number,
or
caption
of
the
field
to
return.
For
Dynamics
NAV
users,
this
can
also
be
an
Advanced
Dimension.
To
return
a
Field
Cache,
specify
an
array
of
fields.
A
Field
Cache
can
be
used
with
NL(Table)
when
you
only
want
to
see
some
of
the
fields
from
the
table
rather
than
all
of
them.
An
NL
function
with
a
Field
Cache
will
return
only
the
unique
combinations
of
the
values
of
the
fields
in
the
Field
Cache.
FilterField1 The
name
of
the
first
field
by
which
to
filter.
For
Dynamics
NAV
users,
this
can
also
be
an
Advanced
Dimension.
The
following
special
values
are
allowed
as
FilterField
arguments.
FilterField Description
"Company="
or
0 Overrides
the
default
company
with
the
one
specified
by
the
Filter
argument.
"InclusiveLink=" Links
the
primary
table
to
the
one
specified
by
the
Filter
argument
for
the
purpose
of
retrieving
data.
For
more
information
see
Retrieving
Special
Fields
with
NL(Table)
(Section
5.1.2).
"Limit=" Limits
the
number
of
records
or
values
returned
to
the
number
specified
by
the
Filter
argument.
For
more
information
see
Limiting
the
Number
of
Records
in
a
Query
(Section
5.1.1.4).
"Filters=" Specifies
a
set
of
filters
for
the
query
with
an
array
of
filters
specified
by
the
Filter
argument.
For
more
information
see
Specifying
More
Than
Ten
Filters
in
the
NL
Function
(Section
5.1.1.3).
"Headers=" Overrides
field
headers
with
the
array
of
headers
specified
by
the
Filter
argument.
For
use
with
an
NL(Table)
function.
"HideTotals=" When
the
value
of
the
Filter
argument
is
TRUE,
hides
the
totals
row
created
by
NL(Table).
"TableName=" Specifies
the
name
to
use
for
the
Excel
table
object
created
by
NL(Table)
with
the
name
in
the
Filter
parameter.
Use
this
to
refer
to
the
table
by
name
from
a
Pivot
table.
Filter1 The
value
of
the
filter
to
apply
to
FilterField1.
FilterFieldN Same
as
FilterField1.
Up
to
10
field
and
filter
pairs
can
be
specified.
If
you
specify
multiple
filters,
they
are
combined
with
a
logical
AND.
FilterN Same
as
Filter1,
but
applies
to
FilterFieldN.
The
NL
function
does
not
allow
you
to
specify
blank
filters,
and
you
will
get
a
#VALUE
error
message
if
you
fill
in
a
FilterField
('NL
Function'
in
the
on-line
documentation)
argument
and
leave
the
corresponding
Filter
('NL
Function'
in
the
on-line
documentation)
argument
blank.
Suppose
the
value
in
cell
C4
comes
from
another
Jet
function
and
may
sometimes
be
blank.
In
this
case,
you
can
use
two
single
quotes
(')
around
the
filter
value.
You
could
use
the
following
formula.
=NL("First","Item","Description","Item Number","'"&C4&"'")
Although
this
formula
is
a
little
hard
to
read,
it
is
putting
a
single
quote
character
(')
on
either
side
of
the
C4
reference.
If
C4
contains
the
value
Item1,
the
resulting
filter
will
be
Item1.
If
C4
is
blank,
the
result
is
two
single
quotes,
which
is
a
valid
filter
for
blank
fields.
An
easier
to
read
variation
on
the
filter
for
blanks
is
"@@"
in
front
of
the
value
in
C4.
The
function
becomes
the
following.
=NL("First","Item","Description","Item Number","@@"&C4)
If
you
need
to
include
any
of
these
characters
as
part
of
a
filter
('NL
Function'
in
the
on-line
documentation)
value,
then
you
need
to
precede
the
filter
with
@@.
The
"@@"
will
pass
the
filter
in
as
a
literal
string
and
be
evaluated
properly.
For
example,
if
you
need
to
filter
by
a
customer
named
"John(Houston)"
you
will
need
to
place
the
"@@"
in
front
of
"John(Houston)".
The
resulting
formula
would
look
like
the
following.
=NL("Rows","Sales Invoice","No.","Customer","@@John(Houston)")
If
the
name
John(Houston)
is
located
in
an
adjacent
cell,
this
is
the
equivalent
formula
using
a
cell
reference:
=NL("Rows","Sales Invoice","No.","Customer","@@"&C3)
If
you
need
to
combine
several
filter
values
together
that
all
include
special
characters,
you
need
to
enclose
each
filter
item
in
single
quotes
(').
For
example,
suppose
you
need
to
filter
by
customers
named
either
"John
A.M."
or
"Ben
&
Jerrys".
You
need
to
use
the
logical
OR
(|),
so
you
cannot
use
the
@@
since
it
affects
the
entire
filter.
The
following
formula
shows
the
proper
method
of
constructing
the
filter.
=NL("Rows","Sales Invoice","No.","Customer","'John A.M.'|'Ben & Jerrys'")
Again,
these
names
could
be
coming
from
cell
references,
so
the
equivalent
formula
with
cell
references
is
below.
=NL("Rows","Sales Invoice","No.","Customer","'"&C3&"'|'"&C4&"'")
This
allows
you
to
use
more
than
10
FilterField
('NL
Function'
in
the
on-line
documentation)/Filter
('NL
Function'
in
the
on-line
documentation)
pairs,
makes
report
design
more
obvious,
and
makes
it
easier
to
add
filters
to
a
report
later.
To
use
this
feature,
specify
FilterFields
in
a
column
in
Excel
and
the
corresponding
filter
values
in
the
adjacent
column
to
the
right.
Then
specify
the
cell
array
containing
both
the
FilterFields
and
filters
in
the
Filter
parameter
following
Filters=
like
the
following:
=NL("Rows","Sales Invoice Header",,"Filters=",$B$2:$C$4)
Excluding
Closing
Dates
in
the
NL
Function
You
can
exclude
closing
dates
from
your
NL
(Section
5.1)
query
when
you
are
using
date
filters
by
putting
<>C&
in
front
of
your
date
filter,
which
will
then
no
longer
include
the
closing
dates.
The
example
below
uses
a
database
which
has
closing
dates
of
12/31/99,
12/31/00,
and
12/31/01.
=NL("Sum","G/L Entry","Amount","Posting Date","<>C&01/01/99..01/01/02")
This
will,
in
effect,
create
the
filter:
"01/01/99..01/01/02&<>C12/31/99&<>C12/31/00&<>C12/31/01".
Wildcard
Filters
The
*
and
?
are
wildcard
filters.
Wildcard
filters
cannot
be
used
as
part
of
a
range
filter
in
the
Dynamics
NAV
connector.
This
means
that
filters,
such
as
"A*..C*"
are
not
valid.
Likewise,
"<>A?..B?"
is
not
valid.
If
you
want
to
create
a
filter
including
everything
starting
with
A
through
C,
the
filter
would
simply
be
"A..CZ".
If
you
want
to
create
a
filter
that
will
exclude
everything
starting
with
A
through
C,
you
need
to
think
of
the
filter
as
including
everything
except
the
things
starting
with
A
through
C.
When
you
think
of
the
filter
as
including
values,
then
D..
is
the
filter
you
would
use.
Note
that
"<>A*&<>B*&<>C*"
would
also
work
since
no
ranges
are
involved.
Retrieving
Field
Values
from
Linked
Tables
The
syntax
for
retrieving
field
values
from
linked
tables
looks
like
the
following:
=NL("Table","Table1",{"Table1Field","LinkField([Table2],
[Table2Field2])"},"InclusiveLink=","Table2","Table2Field1","=Table1Field")
This
function
would
retrieve
all
values
of
Table1Field
from
Table1
and
the
first
value
of
Table2Field2
from
Table2
for
each
record
of
Table1
where
the
value
of
Table2Field1
matched
the
value
of
Table1Field
and
blank
where
no
matching
record
on
Table2
was
found.
The
NL(LinkField)
Function
In
order
to
make
it
simpler
to
retrieve
fields
from
linked
tables,
the
NL(LinkField)
function
has
been
introduced.
The
syntax
of
NL(LinkField)
looks
like
the
following:
=NL("LinkField","Table2","Table2Field")
This
function
could
then
be
referenced
in
the
Field
parameter
of
the
NL(Table)
function,
rather
than
typing
in
the
LinkField()
formula
by
hand.
Retrieving
Field
Sums
from
Linked
Tables
The
syntax
for
retrieving
field
sums
from
linked
tables
looks
like
the
following:
=NL("Table","Table1",{"Table1Field","LinkSum([Table2],[Table2Field2],[Table2Field3],
[A*])"},"InclusiveLink=","Table2","Table2Field1","=Table1Field")
This
function
would
retrieve
all
values
of
Table1Field
from
Table1
and
the
sum
of
the
values
of
Table2Field2
for
each
record
of
Table1
where
the
value
of
Table2Field1
matched
the
value
of
Table1Field
and
where
the
value
of
Table2Field3
started
with
A
and
0
where
no
matching
records
on
Table2
were
found.
The
NL(LinkSum)
Function
In
order
to
make
it
simpler
to
retrieve
sums
from
linked
tables,
the
NL(LinkSum)
function
has
been
introduced.
The
syntax
of
NL(LinkSum)
looks
like
the
following:
=NL("LinkSum","Table2","Table2Field2","Table2Field3","A*")
This
function
could
then
be
referenced
in
the
Field
parameter
of
the
NL(Table)
function,
rather
than
typing
in
the
LinkSum()
formula
by
hand.
Retrieving
a
FlowField
with
FlowFilters
The
FlowField
syntax,
used
in
the
Field
argument
of
the
NL(Table)
function,
allows
for
the
retrieval
of
a
FlowField
with
a
specific
set
of
FlowFilters
applied
to
only
that
field:
=NL("Table","Customer",{"Name","FlowField([Sales],[Date Filter],[1/1/10..12/31/10])"})
The
first
argument
is
the
FlowField
to
retrieve,
followed
by
any
number
of
FlowFilterField/FlowFilter
pairs.
Any
FlowFilters
that
are
applied
to
the
overall
query,
i.e.
the
NL(Table)
function,
will
also
be
applied
to
fields
that
are
specified
using
the
FlowField
syntax.
The
NL(FlowField)
Function
In
order
to
make
it
simpler
to
retrieve
these
FlowFields,
the
NL(FlowField)
function
has
been
introduced.
The
syntax
of
NL(FlowField)
is
as
follows:
=NL("FlowField","Customer","Sales","Date Filter","1/1/10..12/31/10")
This
function
could
then
be
referenced
in
the
Field
parameter
of
the
NL(Table)
function,
rather
than
typing
in
the
FlowField()
formula
by
hand.
Retrieving
Special
Fields
from
Nested
Links
Field
values
and
sums
can
be
retreived
from
nested
linked
tables
like
the
following:
=NL("Table","Cust. Ledger Entry",{"Entry No.","LinkField([Customer Posting Group],
[Code])"},"InclusiveLink=","Customer","No.","=Customer No.","InclusiveLink=","Customer Posting
Group","Code","=Customer Posting Group")
This
function
would
retrieve
all
values
of
the
Entry
No.
field
from
the
Cust.
Ledger
Entry
table
and
the
Code
field
from
the
Customer
Posting
Group
table
which
is
linked
via
the
Customer
table.
Retrieving
Special
Fields
from
Multiple
Tables
Field
values
and
sums
can
also
be
retreived
from
multiple
tables
linked
from
the
primary
table
like
the
following:
=NL("Table","Customer",{"No.","LinkField([Customer Posting Group],[Code])","LinkSum([Cust. Ledger
Entry],[Amount])"},"InclusiveLink=","Cust. Ledger Entry","Customer
No.","=No.","InclusiveLink=Customer","Customer Posting Group","Code","=Customer Posting Group")
This
function
would
retrieve
all
values
of
the
No.
field
from
the
Customer
table,
the
values
of
the
Code
field
from
the
Customer
Posting
Group
table,
and
the
sum
of
the
values
of
the
Amount
field
from
the
Cust.
Ledger
Entry
table.
Note
that
both
the
Customer
Posting
Group
table
and
the
Cust.
Ledger
Entry
tables
are
linked
from
the
Customer
table.
5.1.3 Sorting
By
default,
results
returned
by
Jet
functions
are
sorted
in
ascending
order
based
on
the
values
returned;
however,
you
can
override
the
default
sorting
and
sort
based
on
the
values
of
any
field
in
the
table
from
which
you
are
returning
data.
To
sort
data
in
ascending
order,
put
a
"+"
followed
by
the
field
name
in
the
FilterField
('NL
Function'
in
the
on-
line
documentation)
parameter.
To
sort
in
descending
order,
put
a
"-"
followed
by
the
field
name.
The
Filter
('NL
Function'
in
the
on-line
documentation)
argument
of
the
FilterField
is
also
required.
If
you
want
to
sort
on
a
field
without
filtering
by
that
field,
put
a
"*"
in
the
corresponding
filter.
The
following
NL
(Section
5.1)
function
sorts
by
CompanyName
while
filtering
for
CompanyName
starting
with
B.
=NL("Table","Customers","+CompanyName","B*")
The
following
NL
function
sorts
the
values
of
the
Invoice
ProductID
field
by
the
values
of
the
CustomerID
field
in
ascending
order,
then
by
the
values
of
the
Quantity
field
in
descending
order.
=NL("Table","Invoices","ProductID","+CustomerID","*","-Quantity","*")
5.2 GL Function
Returns
the
budget,
balance,
net
change,
debits,
or
credits
of
one
or
more
general
ledger
accounts.
Use
the
function
definition
above
to
determine
the
order
of
the
parameters
described
below.
Parameters
marked
as
Reserved
are
not
used.
Parameter Description
What Determines
what
the
GL
Function
returns.
Options
are
Balance,
Budget,
Credits
or
Debits.
Account G/L
Account
Number,
Filter
or
Range.
If
you
specify
a
single
totaling
account,
returns
the
value
of
that
account.
If
you
specify
multiple
accounts
or
a
range
of
accounts,
totaling
accounts
will
not
be
included
in
the
result.
StartDate Specifies
the
starting
date
of
transactions
to
include.
For
the
balance
of
an
account
as
of
a
given
date,
leave
StartDate
blank.
For
the
net
change
of
an
account,
use
Balance
and
specify
both
the
StartDate
and
EndDate.
EndDate Specifies
the
ending
date
of
transactions
to
include.
View The
G/L
Analysis
View
to
use.
Leave
this
blank
and
no
Analysis
View
will
be
used.
Dim1 Filter
for
the
first
dimension
of
the
analysis
view.
If
the
View
argument
is
blank,
this
is
the
filter
for
Global
Dimension
1.
Dim2 Filter
for
the
second
dimension
of
the
analysis
view.
If
the
View
is
blank,
this
is
the
filter
for
Global
Dimension
2.
Dim3 Filter
for
the
third
dimension
of
the
analysis
view.
Dim4 Filter
for
the
fourth
dimension
of
the
analysis
view.
Business
Unit Filter
for
the
business
unit.
Budget Budget
filter.
Leave
this
blank
for
all
budgets.
This
is
unused
unless
returning
budgets.
Company Company
name.
If
this
parameter
is
blank,
the
default
company
is
used.
ExcludeClose “True”
to
exclude
closing
date
transactions.
Defaults
to
“False”.
ShowQuery "True"
to
show
the
finhlink
string
that
will
be
used
for
drilldown.
Defaults
to
"False".
Data
Source Data
source
name.
If
this
parameter
is
blank,
the
default
data
source
is
used.
5.3 Filtering
Not
equal
to <> <>0 Those
with
field
values
not
equal
to
0
And & >1000&<2000 Those
with
field
values
greater
than
1000
and
less
than
2000
Or | 1000|2000 Those
with
field
values
1000
or
2000
Greater
than > >1000 Those
with
field
values
greater
than
1000
Greater
than
or >= >=1000 Those
with
field
values
greater
than
or
equal
to
equal
to 1000
Less
than < <1000 Those
with
field
values
less
than
1000
Less
than
or <= <=1000 Those
with
field
values
less
than
or
equal
to
equal
to 1000
Range .. 1000..2000 Those
with
field
values
between
1000
and
2000,
inclusive
..1000
Those
with
field
values
up
to
and
including
1000..
1000
Those
with
field
values
1000
or
more
co* Those
with
field
values
beginning
with
"co"
Single
character ? Hans?n Those
with
field
values
such
as
Hanson
or
wildcard Hansen
Order
of (
) 30|(>10&<20) Those
with
field
values
of
30
OR
field
values
operations greater
than
10
and
less
than
20
Ignore
special @@ @@A&B Those
with
field
value
A&B
characters
'' 'A&B'|'C&D' Those
with
field
values
A&B
or
C&D
Ignore
case @ @location Those
with
field
values
such
as
location,
LOCATION,
or
Location
Shortcut Available
From Behavior
F1 User
interface
components Displays
context-
sensitive
help
F4 Jfx Toggles
the
addressing
mode
of
a
cell
reference
F6 User
interface
components
with
value
lookup Displays
a
database
lookup
Automatic
Sizing
Some
data
values
are
of
variable
length
such
that
you
do
not
know
how
wide
a
column
should
be
before
you
run
a
report.
If
the
column
is
not
wide
enough
to
display
the
data,
Excel
will
either
display
########,
or
it
will
only
show
the
section
of
data
that
will
fit
in
the
cell.
Fit
A
column
can
be
automatically
formatted
to
fit
the
widest
piece
of
data
contained
within
it
by
placing
the
Fit
keyword
in
Row
1
of
that
column.
The
height
of
a
row
can
be
formatted
in
much
the
same
way,
except
the
Fit
keyword
would
be
placed
in
Column
A
of
the
row
to
be
formatted.
Automatic
Hiding
Some
workbook
content
may
be
necessary
to
the
design
of
the
report,
but
not
desirable
to
see
in
Report
Mode
('Report
Modes'
in
the
on-line
documentation).
Hide
and
HideSheet
A
column
or
row
can
be
automatically
hidden
by
placing
the
Hide
keyword
in
Row
1
of
the
column
to
hide,
or
column
A
of
the
row
to
hide.
To
automatically
hide
entire
sheets,
you
can
add
+HideSheet
to
cell
A1
of
the
worksheet.
When
you
run
the
report,
Jet
will
hide
the
rows,
columns
or
sheets
that
you
have
specified.
A
report
Viewer
is
an
Excel
user
that
has
Jet
Express
installed
but
is
not
licensed
to
design
reports.
A
Viewer
is
allowed
to
change
Report
Options
(Section
5.6.4),
run
reports,
and
drilldown,
but
may
not
use
other
Jet
features.
A
Viewer
cannot
create
Jet
functions
or
make
any
changes
to
a
report’s
design.
To
create
reports
that
a
Viewer
or
other
Excel
users
can
use,
the
Designer
must
do
one
of
two
things:
lock
worksheets
that
contain
Jet
functions
or
convert
the
Jet
functions
to
values.
When
you
run
a
workbook
with
locked
sheets,
Jet
saves
all
formulas
to
hidden
worksheets
and
does
not
recalculate
them
when
the
workbook
opens.
You
create
a
locked
worksheet
by
entering
Auto+Hide+Lock
in
cell
A1.
The
worksheet
will
be
locked
after
the
report
is
run
and
can
be
unlocked
by
entering
Design
Mode
(Section
4.1).
If
you
want
to
create
a
locked
report
that
Viewers
can
use,
you
should
create
an
options
worksheet
that
is
not
locked.
The
options
worksheet
should
be
used
for
all
the
report
options
that
a
Viewer
might
need
to
change.
You
must
run
the
report
to
lock
the
formulas
and
then
save
the
workbook
before
giving
it
to
Viewers.
The
options
worksheet
cannot
contain
any
Jet
formulas
in
order
for
the
report
to
work
for
Viewers.
You
do
this
by
placing
Auto+Hide+Values
in
cell
A1
of
any
worksheet.
Upon
doing
this,
when
a
report
is
run
all
Jet
formulas
will
be
converted
to
values
while
all
other
Excel
formulas
will
remain
intact.
The
worksheet
will
also
remain
editable,
although
changes
will
be
lost
when
the
report
is
re-run.
The
Jet
formulas
can
be
restored
by
entering
Design
Mode
('Report
Modes'
in
the
on-line
documentation).
The
column
containing
the
titles
of
the
options
must
contain
the
Title
tag
in
Row
1.
The
column
containing
the
actual
option
values
which
you
should
refer
to
in
your
report
must
contain
the
Value
tag
in
Row
1.
The
intersection
of
the
Options
rows
with
the
Title
and
Value
columns
create
the
report
options.
The
following
table
exhibits
a
simple
example:
A B C
1 Auto+Hide+Values Title Value
2 Option Customer *
3 Option Open TRUE
When
you
run
a
report
with
report
options,
the
Report
Options
window
will
be
displayed.
If
the
report
options
are
on
a
worksheet
that
you
would
like
to
hide
from
the
user,
simply
append
+HideSheet
to
the
tag
in
cell
A1.
6 Index
#VALUE!,
10
About
Jet,
3
Account,
15-16
Activation,
4-5
Advanced
Dynamic
NAV
Configuration
Serenic
Navigator
User
Access
Rules,
7-8
And,
16-17
Application
Settings,
5
Auto,
17
Auto
Debug
Report
Errors,
5
Autofit,
17
Automatic
Report
Formatting,
17
Blank
Filters,
12
Budget,
15-16
BusinessUnit,
15-16
Citrix,
8
Company,
15-16
Compatability
Mode,
5
Configuration,
6
Configuring
a
Dynamics
NAV
Data
Source,
6-7
Configuring
Jet
Application
Settings,
5
Jet
with
Citrix,
8
Connection,
6
Data
Source,
15-16
Data
Source
Settings,
6
Data
Source
Settings
Data
Source
Settings,
6
Configuring
a
Dynamics
NAV
Data
Source,
6-7
Database,
6
Debug,
10
Design
Mode,
9
Distributing
Reports
Report
Viewers,
17-18
Locked
Worksheets,
18
Viewer
Editable
Worksheets,
18
Drilldown,
9
Drilldown
Drilldown,
9
Grid
Drilldown,
9-10
Dynamics
NAV
GL
Function,
15-16
Dynamics
NAV
Specific
Filtering,
13
EndDate,
15-16
Equal
to,
16-17
Error,
10
Excel,
3
ExcludeClose,
15-16
Express,
3
Filter,
11-12
FilterField,
11-12
Filtering,
16-17
Filtering
Data
Blank
Filters,
12
Special
Characters
in
a
Filter,
12
Specifying
More
Than
Ten
Filters
in
the
NL
Function,
13
Limiting
the
Number
of
Records
in
a
Query,
13
Dynamics
NAV
Specific
Filtering,
13
Filters,
11-12
Fit,
17
FlowField,
13-15
FlowFilter,
13-15
General
Ledger,
9
GL
Function
Dynamics
NAV
GL
Function,
15-16
Greater
than,
16-17
Greater
than
or
equal
to,
16-17
Grid
Drilldown,
9-10
Headers,
11-12
Hide,
17
HideSheet,
17
Installation
and
Configuration
Quick
Installation
Guide,
4
Prerequisites,
4
Installing
Jet,
4-5
Installing
Jet,
4-5
Interval,
16-17
Jet
Function
Wizard
(Jfx),
9
Jet
with
Citrix,
8
Keyboard
Shortcuts,
17
Language,
5
Less
than,
16-17
Less
than
or
equal
to,
16-17
Limiting
the
Number
of
Records
in
a
Query,
13
Link,
11-12
,
13-15
LinkField,
13-15
LinkSum,
13-15
Locked
Worksheets,
18
Log,
5
Logging,
5
Lookup
Record
Scan
Limit,
Lookup
Sample
Value
Limit,
5
Microsoft
Excel,
3
NF
Optimization,
5
NL
Function,
11-12
NL
Function
NL
Function,
11-12
Retrieving
Special
Fields
with
NL(Table),
13-15
Sorting,
15
Not
equal
to,
16-17
Or,
16-17
Prerequisites,
4
Quick
Installation
Guide,
4
Refresh,
9
Report
Mode,
9
Report
Modes,
9
Report
Options,
18
Report
Viewers,
17-18
Retrieving
Special
Fields
with
NL(Table),
13-15
Serenic
Navigator
User
Access
Rules,
7-8
Sorting,
15
Special
Characters
in
a
Filter,
12
Specifying
More
Than
Ten
Filters
in
the
NL
Function,
13
StartDate,
15-16
Table,
11-12
Table
Builder,
9
Value,
10
View,
15-16
Viewer
Editable
Worksheets,
18
What,
11-12
,
15-16