How To Use Flags To Control Printing
There may be times when you only want to print certain areas of your report based on criteria that you set.
If you cannot use a WHERE clause to get the results you want, you may be able to create a clause using a flag.
For instance, let's say you have an Operator Performance Report. As a Manager, you may want to be able to run
that report for any operator, but let's say that Operators should only be able to run the report for themselves
and Team Leaders can run it for the Operators that they lead.
All of the examples below will use @IF to conditionally allow the logic.
Single Criteria
@tvarUserLevel# = 0
@tvarOperator* = ""
@tvarTeamLead# = 0
@op no total where ( @op.id == @mm.yasoao ) MAX = 1
@tvarUserLevel = @os.ul
@op
//
@if ( @tvarUserLevel = 10 )
// manager can prompt for any operator
@tvarOperator = ? Please Enter an Operator ID. Leave Blank for All.
@elseif ( @tvarUserLevel = 40 )
// extra flag for team leads for query later
@tvarTeamLead = 1
@tvarOperator = @mm.yasoao
@else
// remaining user levels can only see themselves
@tvarOperator = @mm.yasoao
@endif
{Database Query}
{Report Output}
Multiple Criteria
@tvarUserLevel# = 0
@tvarUserType* = ""
@tvarOperator* = ""
// Flag Variables
@tvarManager# = 0
@tvarTeamLead# = 0
//
@op no total where ( @op.id == @mm.yasoao ) MAX = 1
@tvarUserLevel = @os.ul
@ul no total where ( @ul.co = @tvarUserLevel ) MAX = 1
@tvarUserType = @ul.fu
@ul
@op
//
@tvarManager = 1 if ( @tvarUserLevel = 1 )
@tvarManager = 1 if ( @tvarUserLevel = 10 )
@tvarManager = 1 if ( @tvarUserLevel = 20 )
@tvarManager = 1 if ( @tvarUserLevel = 30 )
@tvarManager = 1 if ( @tvarUserLevel = 80 )
@tvarManager = 1 if ( @tvarUserLevel = 85 )
@tvarManager = 1 if ( @tvarUserLevel = 99 )
@tvarManager = 1 if ( @tvarUserType = Manager )
@tvarTeamLead = 1 if ( @tvarUserLevel = 40 )
@tvarTeamLead = 1 if ( @tvarUserType = "Team Leader" )
//
@if ( @tvarManager = 1 )
// manager can prompt for any operator
@tvarOperator = ? Please Enter an Operator ID. Leave Blank for All.
@else
// remaining user levels can only see themselves
@tvarOperator = @mm.yasoao
@endif
{Database Query}
{Report Output}
Summary
Flags are a very useful way to control what is printed in your reports. Many times, the WHERE clause is all
that is needed to control the results that are output. However, whenever you want to control the output
conditionally, such as report bodies or database queries, then you can use a flag.
|
Was this page helpful? Do you have any comments on this document? Can we make it better? If so how may we improve this page.
Please click this link to send us your comments: helpinfo@collect.org