►
Description
A day late but not short on content. Today George dazzles us with a clever way to limit parameters in SQL reports AND bib frameworks using Authorized Values. You are authorized to use this in whatever way it works best for you. Really. You don't need our permission. Unless you want it. Then yes, we permit you to do this.
Referenced code: https://wiki.koha-community.org/wiki/SQL_Reports_Library#Runtime_Parameters
Music: https://www.bensound.com
A
A
And
today
we're
going
to
do
a
video
about
things
you
can
do
with
the
authorized
values
in
coho
alternative
authorized
values-
I
think,
might
be
a
good
title
for
this,
and
this
came
up
because
there
was
a
question
somebody
in
the
reports
channel
on
the
bywater
slack
channel
james
mitchell-
and
I
don't
know
james,
but
he
had
a
question
about
his
actual
question-
was:
is
there
any
way
to
insert
a
drop
down
before
a
report
is
run
with
a
custom
list
of
values,
I.e
a
drop
down
for
non-authorized
values,
columns?
A
And
so
that's
what
we're
going
to
talk
about
today,
because
I
do
that
all
the
time
and
it's
pretty
simple
and
we've
actually
already
talked
about
it.
So
briefly,
so
if
you
go
to
our
website
for
koha
us
visit
kohaiu
at
coho
dash
us.org
and
if
you
click
on
learn,
you
get
this
list
of
educational
resources
and
all
of
the
videos
are
under
watch
quahog
us
original
training
videos
and
if
you
scroll
down
to
episode
number
seven
like
versus
equal,
we
touched
on
this
topic
in
that
episode
back.
A
Oh,
I
don't
even
remember
how
long
ago
that
was
episode.
Seven
that
was
like
that
was
last
fall.
Wasn't
it
yeah?
It's
been
a
while
it's
been
a
while.
So
probably
won't
hurt
to
talk
about
this
again.
But
you
know
everybody
is
probably
familiar
with
a
report.
A
You
know
where
you've
got
that
you
can
create
a
drop
down
list
and
a
report
so
that,
instead
of
having
to
type
something
in
over
and
over
again,
you
get
a
list
of
values,
and
so
those
values
come
from
a
few
different
places
and
they're
all
described
pretty
well
in
the
coho
wiki
sql
wiki.
A
And
that
can
be
found
on
the
cohort
wiki
under
tips
in
section
1.2.7,
runtime
parameters,
there's
instructions
there
for
how
to
use
the
different
authorized
values
categories
plus.
You
can
also
use
branches,
item
types
and
date
and
category
code,
including,
and
then
any
authorized
value
category
that
you've
got
in
coho.
A
Yeah,
you
can
do
you
can
go
to
extremes
if
you
know
what
you're
doing
and
if
you
want
to
have
fun,
you
can
end
up
with
something
like
this
or
there.
I've
got
one
two,
three,
four:
five:
six,
seven,
eight
nine
ten
drop
downs
in
the
parameters
for
this
report.
A
So
that's
you
know,
that's
an
extreme
example,
but
I
think
I
don't
think
any
of
those
drop
downs
in
my
kitchen
sink
shelf
list
report.
Are
our
standard
authorized
values?
A
So
I
thought
I
would
just
walk
through
this
really
quickly.
Again,
you
know
here's
a
basic
report:
it's
a
home
branch,
an
account
of
item
numbers
each
at
each
branch,
and
if
we
look
at
that
report,
I
mean
that's
all
there
is
there's
nothing
there.
It's
just
select
items
home
branch
and
count
items,
item
number
from
items,
and
so
there's
no
variables
there
at
all
and
the
when
you're
learning.
B
B
B
A
If
you've
only
got
one
library,
then
then
you
don't
even
need
to
you,
don't
even
need
to
put
a
limiter
in
there
at
all.
For
my
situation,
where
we've
got,
you
know,
50
plus
libraries,
the
next
thing
that
you
kind
of
learn
how
to
do
when
you're
writing
reports
is,
you
can
just
enter
a
value.
We
could
say
you,
but
then
you
have
to
type
it
in
each
time,
which
means
you
have
to
spell
everything
correctly.
A
But
the
way
you
do
that
is
you
do
the
items
home
branch
and
here
you
can
use
a
like
or
an
equals,
and
you
do.
The
double
angle
brackets
enter
a
value
and
when
you
run
that
that's
what
gives
you
this
place
where
it
says,
enter
a
value,
but
you
know
the
reason
that
I
don't
write.
Those
kinds
of
reports
for
staff
here
is
that
they're
they're
going
to
say
it
doesn't
work
right.
A
A
Down
and
the
way
you
do
that,
like
we
just
said
on
the
wiki
page,
it
shows
you
you
just
do.
B
And
that's
a
good
example
of
you
know.
If,
if
the
system
doesn't
do
something
you
want
ask
for
it,
because
that
was
something
that
I
did
ask
for.
I
said
we
need
a
way
to
be
able
to
select
everything
in
the
list,
not
just
one
thing
or
so.
You
know
that
that's
a
step
in
the
right
direction.
There
you
can't
you
can
use
this
select
certain
ones
from
that
list,
but
you
can
select
all
now
yeah.
A
This
solves
a
lot
of
problems
for
a
lot
of
libraries
and
I
use
that
development
as
an
example
of
how
a
good
development
process
works,
because
you
said
to
somebody:
wouldn't
it
be
great
if
there
was,
if
all
was
an
option
on
those
drop
downs
and
then
nick
started
nick
from
bywater
solutions
started
development,
and
I
saw
that
it
was
in
process,
and
I
said
to
him
in
in
a
follow-up
on
that
development.
A
I
said:
hey
if
it's,
if
all
is
always
there,
I've
got
some
reports
that
are
going
to
time
out
and
they're
going
to
crash,
because
somebody's
going
to
accidentally
select
all
and
there's
going
to
be
so
much
data
there
that
the
report's
going
to
crash-
and
there
is
never
going
to
be
a
result.
So
is
there
a
way
you
can
make
all
optional
and
so
he's
added
the
he
made
it
optional.
You
have
to
add
the
colon
all
in
order
for
it
to
work.
A
So
my
situation
is:
I've
got
a
couple
of
libraries
that
are
groups.
We
have
the
doniphan
county
library
district,
which
is
one
library,
but
it's
got
four
separate
branches.
A
So
if
we
were
to
just
run
this
report
for
them-
and
they
wanted
to
get
data
for
all
four
of
their
libraries,
just
their
four
libraries,
they
would
have
to
run
a
report.
They
would
have
to
run
this
for
elwood
then
run
it
for
highland
and
run
it
for
troy
or
run
for
and
then
run
it
for
wathena
or
they
could
run
it
for
all
and
then
just
chop
out
the
data
that
they
don't
want.
A
So
what
I've
got,
what
I
did
to
make
it
easier
for
them
and
for
our
other
library
that
is
in
that
situation,
is
I
use
a
separate
authorized
values
table.
A
And
this
way
I
can
do
more
than
just
the
normal
branches,
and
so
I
can
I've
got
it,
sets
that
I
can
run
it
just
for
donovan
county,
all
four
of
their
branches
at
or
prairie
hills
all
for
their
branches
at
once,
and
the
way
that
I
do,
that
is
by
creating
an
authorized
values
category
that
I
just
happen
to
call
it.
A
I
don't
know
why
I
chose
l,
but
I
put
an
l
in
front
of
any
authorized
values
categories
I
create
just
to
keep
them
all
in
one
place
in
the
authorized
values
table.
I
think
at
the
time
I
was
thinking.
L
nothing
begins
with
l
in
the
authorized
values
and,
of
course,
there's
like
10
things.
That
begin
with
l.
A
A
A
Yeah,
I
can,
I
can't
recreate
it
because
there's
one
that
already
exists,
but
that's
all
I
had
to
do
was
I
had
to
go
in
and
I
created
one
separate
entry
for
each
library,
so
I've
got
the
authorized.
Value
is
the
branch
code,
but
then
at
the
top
I've
got
the
authorized
value
for
all.
Libraries
is
a
wild
card
and
then,
if
we
go
down
here
to
doniphan
county,
all
four
of
those
branch
codes
start
with
don.
I
so
I've
got
donovan
county
all
is
d-o-n-I
wild
card
and
for
prairie
hills.
A
All
of
those
start
with
ph,
and
I
don't
have
anything
else
that
starts
with
ph.
So
it's
just
ph
wild
card
gives
me
that
prairie
hills
all
schools,
and
I
do
that
not
only
with
not
only
with
the
branch
codes,
but
I've
also
got
shelving
locations.
A
We
have
three
main
shelving
locations
for
adult
children's
and
young
adult,
but
I
have
three
libraries
that
they
have
a
display
location,
called
baldwin
city,
adult
baldwin
city,
children's
baldwin
city,
young,
adult.
A
In
this
way,
I've
got
this
separate
authorized
values
list,
so
I
can
do
display
leavenworth
all
and
it
would
it's
going
to
give
me
a
report.
A
That'll
show
me
a
count
of
all
of
the
items
that
are
in
that
shelving
location,
so
I've
got
dozens
and
dozens
and
dozens
of
extra
authorized
values
tables
set
up
so
that
I
can
run
all
kinds
of
reports
and
do
all
kinds
of
crazy
things
and,
as
a
matter
of
fact,
the
the
biggest
drawback
with
these
is
keeping
them
up
to
date,
because
if
I
add
a
new
shelving
location
or
if
we
add
a
new
collection
code
or
a
new
item
type
or
a
new
library,
I
have
to
go
back
and
I
have
to
those
don't
update
automatically
the
authorized
values
table.
A
I
have
to
go
back
in
so
I
actually
have
reports
to
help
me.
Keep
the
authorized
values
synchronized
with
the
with
the
other
categories
so
for
locations.
A
If
I
add
a
new
location,
I
can
go
in
and
run
this
report
and
it's
going
to
tell
me
where
I've
got
possible
things
that
I
need
to
update
and
it's
it's
a
very
it's
not
a
beginner's
report,
because
it's
a
it's
a
union.
A
B
A
The
places
where
there's
a
difference
between
my
lloc
table
and
my
loc
table
right.
So
that's
you
know
how
you
can
use
these
in
reports
and
creating
them,
like
I
said,
is
really
easy.
You
just
gotta
go
to
authorized
values,
create
a
new
category
which,
to
do
that,
all
you
have
to
do.
Is
click
on
create
a
new
category.
A
A
I'm
going
to
delete
that
category,
because
I
that's
the
last
thing
I
need
is
another
category
to
confuse
me.
So
that's
how
you
can
use
them
in
reports.
B
Let
me
ask
you
this,
so
you
used
you're
using
the
the
value
in
a
on
a
like
term
can
and
you
prob.
I
don't
know
if
you
can
answer
this
question,
but
could
you
use
like
okay,
you,
you
had
some
groupings
that
you
could
use
part
of
a
a
phrase
in
a
wild
card
to
get
a
group
of
libraries.
B
A
I
don't
know
I
I've
never
tried
that.
A
That
it
probably
would
work
I
don't
use
in
very
often
I
I
not
because
I
just
because
I
I
didn't
learn
it
until
later
on
in
the
game.
So
it
wasn't
something
that
I
learned
in
sql
early
on.
B
I'm
just
thinking
you
know
there
may
be
situations
out
there
where
the
the
wild
card,
the
partial
name
and
wild
card-
might
not
work
for
everybody's
situation.
But
maybe
if
you
had
names,
I
don't
know
if
you'd
have
to
put
them
in
quotes
or
what.
A
I
think
that
might
be
the
issue
there
is.
If
you
have
more
than
the
authorized
values,
I
think
there's
a
10
character
limit
on
what
can
be
in
when
you
have
an
authorized
values.
Category
like.
A
A
A
So
let
me
let
me
close
a
few
things
here:
get
the
number
of
tabs
down
a
reasonable
number.
I
have
a
set
of
authorized
values
that
are
alternatives
to
what
are
used
in
the
bibliographic
frameworks.
A
So
I
have
you
know
we
used
to
these
are
ones
that
I
can
that
I
used
to
use
for
hoopla
when
we
used
to
import
records
from
hoopla,
which
we
don't
do
anymore.
A
A
That's
that's
just
one
example,
but
this
happened
all
the
time
where
people
would
you
know
go
in
and
even
though
they
were
told
and
trained
to
not
do
this.
They
would
still
manage
to
attach
physical
copies
to
hoopla
records.
So
what
I
did
is
I
started
out
by
creating
some
values
that
these
are
a
match.
This
one
is
called
framework
hoopla,
952
8,
and
it's
just
my
list
of
item
types
that
we
use
only
for
hoopla
items.
A
A
A
A
So
if
I
tied
this
bibliographic
framework
95942c
to
my
framework,
hoopla
952
a
authorized
value,
pretty
sure
that's
the
right
one
for
no!
No!
I
want
9
52
8.
A
A
A
So
you
know
earlier
I
showed
you
we
had
that.
Excuse
me
my
phone's,
going
off
there
we
go
earlier.
I
showed
you.
We
had
that
long
list
of
shelving
locations.
A
I
have
one
of
these
set
up
so
that
you
know
most
of
those
shelving
locations
like
I
said
adult
children
and
young
adults
are
the
primary
ones
we
use.
Everything
else
is
a
temporary
shelving
location
so
to
keep
people
from
putting
temporary
shelving
locations
at
the
bibliographic
level.
I
have
a
list.
I
have
a
an
authorized
value
list
that
just
has
adult
children
and
young
adult
in
there
so
that
nobody
can
accidentally
put
the
wrong
shelving
location
at
the
bib
level
on
an
item
on
a
title,
and
the
same
is
true
for
collection
code.
A
I've
got
that
same
list
of
collection
codes
that
are
only
available
in
this
frame
that
are,
that
should
only
be
used
for
this
framework.
They're
part
of
the
they're
just
part
of
the
of
the
way
that
the
bible
graphic
record
is
built
from
the
framework,
and
the
same
is
true.
If
we
go
back
to
this
framework
and
look
at
the
952.
A
I've
got
the
same
thing
where,
if
we
look
at
the
subfields,
the
952
a
gets
its
values
from
framework
hoopla
952a,
the
b
gets
them
from
952
or
the
a
and
the
b
are
the
same.
A
Then
the
c,
which
is
the
shelving
location,
gets
its
gets
its
data
from
drop
down
from
another
place
and
the
y
and
the
eight
get
them
from
those
different
values
that
I've
set
up.
So
nobody
can
accidentally
add
an
item.
This
is
this
is
what
happened
after
I
started
using
this
people
would
call
me
and
then
say,
I'm
trying
to
add
an
item
and
my
only
choice
for
a
home
library
is
digital
content.
A
Why?
Why
is
this
broken
and
I
would
have
to
say
to
them:
it's
not
broken.
You
shouldn't
be
adding
an
item
to
that
record,
and
so
here
you
know
in
the
in
the
item
level,
we
can
pick
any
of
those
temporary.
We
can
pick
those
main
three
or
any
of
the
temporary
ones,
because
I'm
not
modifying
the
shelving
location
but
the
home
library,
the
item
type
and
the
collection
code
are
just
limited
to
those
few
choices
that
I
want
them
to
be
limited
to
just
for
this
framework.
So
I'm.
A
It's
less
important
now
because
we're
not
using
this
framework
anymore,
we're
not
adding
the
hoopla
records.
If
we
go
forward
and
move
to
use
the
cloud
library
plugin,
then
I'll
probably
have
to
start,
but
I
probably
could
it
wouldn't
be
that
hard
so,
but
that's
just
another
way
to
use
the
authorized
values.
There's
a
ton
of
things
that
you
can
do
with
the
authorized
values.
There's
probably
other
ways
that
that
you
can
use
them
that
I
just
haven't
thought
of
yet.
B
Oh
yeah,
you
know
you
think
about
where
any
of
these
authorized
values
are
actually
implemented
if
they're
implemented
in
certain
areas.
B
A
Yeah
we
use
them
for
patron
attributes,
we
use
them,
for
we
use
them
in
a
ton
of
different
places,
and
so
there's
just
a
ton
of
different
ways.
You
can
use
them
and
those
are
the
two
that
you
know
when
I
saw
the
comment
from
james
mitchell,
I
figured
we
hadn't
done
a
really
in-depth
video
about
using
authorized
values.
So
I
thought
it
would
be
something
good
to
talk
about
so.
B
Awesome
well
george.
Thank
you
very
much
for
showing
us
a
little
bit
more
about
the
custom
authorized
values
or,
as
you
put
it,
the
alternative
authorized
values.
A
B
I
really
like
that,
and
I
just
wanted
to
to
point
out,
while
you're
on
this
page,
I
had
revamped
the
the
video
list
a
little
bit
we're
putting
highlighting
the
the
most
current
video
up
at
the
top,
the
latest
episode
and
then
the
rest.
I
did
in
reverse
order
because
you
know
usually
it
would
start
from
the
beginning
and
go,
and
you
have
to
scroll
all
the
way
down
this
way
you
don't
have
to
do
as
much
scrolling
if
you're,
just
keeping
up
with
with
our
videos.
B
Well,
who
knew
we
were
going
to
get
this
far
out
in
in
videos?
I've
really
enjoyed
doing
these
videos
with
you
and
I
feel
like
we're
getting
a
lot
of
good
content
out
there.
So.
A
B
A
I
think
we
might
have
missed.
We
might
have
had
a
couple
times
where
it
was
three
weeks
between
videos
or
something,
but
but
I
think
it's
been
about
a
year,
yeah
yeah,
so
we
should
figure
out
when
exactly
a
year
is
and
figure
out
some
way
to
have
some
kind
of
a
party.
B
Exactly
yeah,
I
noticed
the
other
day
too.
The
I
think
I
don't
know.
I
think
it's
just
the
koha
newsletter
that
goes
out.
They
mentioned
our
hoopla
and
cloud
library,
plug-in
videos
that
we've
we've
done
recently
so
cool.
Thank
you
for
for
including
us
in
your
your
newsletter
and
just
a
reminder
to
everybody.
We
love
feedback
and
questions.
If
you
have
questions
or
things
that
you
would
like
to
see
in
in
upcoming
videos,
please
let
george
or
I
know
or
please
make
comments
on
the
videos.
B
Let
us
know
that
you're
watching
the
videos,
let
us
know
what
what
you
like.
We
love
finding
comments
amongst
the
videos
and
we
welcome
many
more.