Cue Tracker Report Templates
This document is a rough guide to creating and editing report templates for use in Cue Tracker.
If you're just starting out, I would recommend downloading the
predefined report templates and using one of them as a guide.
The report templates are basically HTML, but with special tags added in. Some of these are basically variable names that get replaced by the appropriate values, and others control how Cue Tracker loops through cues, takes, etc. Whatever the type, these tags are recognizable by the fact that they start with <! and end with !>. The basic tag types are:
1. Variable fields
These look something like <!project.title!>, and are replaced by their corresponding values (in this case, the title assigned to the current project).
2. Loops
Loops are defined by a pair of tags, such as <!foreach cue!> ... <!end cue!>. You can loop through the following object types:
- cue – loops through all cues (but not overdubs).
- cue/overdub – loops through all cues and their overdubs.
- reel
- take*
- mix*
- person
- composerassignment* – encapsulates information about a single composer's
credit on a single cue
- publisherassignment* – likewise for a single publisher and a single cue
*Note that in order for these to make sense, the scope of the current loop is important.
That is, simply typing <!foreach take!> will loop through all takes of all cues in
the project, which is not likely to be useful. Instead, start with a <!foreach cue!>
loop, and within it add a <!foreach cue.take!> loop. This will loop through only the
takes associated with the current cue. For example:
<!foreach cue!>
<h2><!cue.title!></h2>
<!foreach cue.take!>
<p>Take #<!take.number!></p>
<!end cue.take!>
<!end cue!>
will output something like:
1m1 Main Titles v4
Take #41
Take #42
Take #43
1m2 Foreign Diplomats v9
Take #19
Take #20
...etc...
3. Conditionals
Conditionals, or if statements, allow you to introduce a bit of logic into a report. They can take
one of two different forms:
- <!if cue.isfirstinreel.then!>(text)<!end cue.isfirstinreel!>
– This will evaluate the text between the tags only if the condition "cue.isfirstinreel"
is true. Note that you can include HTML tags or even other Cue Tracker-specific tags in this
type of conditional.
- <!cue.isfirstinreel.(text)!> – This shortened version has basically the
same effect, but is useful if you only need to insert a small amount of text. Unlike the
if/then form, Cue Tracker-specific tags cannot be inserted conditionally with this form
(since the conditional text appears within a Cue Tracker-specific tag already). However,
plain HTML tags can be used; e.g. <!cue.isfirstinreel.<p>New Reel</p>!>
In its simplest form, the expression that gets evaluated in a conditional (cue.isfirstinreel
in the examples above) is simply any Boolean variable—in this case, the "isfirstinreel"
property of the current cue—or it can be one of the following statements:
- <!if cue.has.take.then!> ... <!end cue.has.take!> to test
whether the current object possesses a given property
- <!if cue.hasno.take.then!> ... <!end cue.hasno.take!> to test
whether the current object does not possess a given property
- <!if cue.not.isfirstinreel.then!> ... <!end cue.not.isfirstinreel!>
to include the given text only if a given Boolean property evaluates as false
4. Report Type
This tag looks like <!report-type.Spotting Notes!>, and tells Cue Tracker what
to call the report type in the page footer. It should always be included at the beginning of
a report template.
Object types and properties
Below is a listing of the available properties for each object type. Note that strings, numbers,
dates, and timecodes can all be included in variable fields. Booleans can also be included in
a variable field, but will be replaced by the HTML codes defined in Cue Tracker Preferences.
Relationships to other objects are useful for foreach loops (for to-many relationships)
and for getting another object's properties (for to-one relationships), but cannot be used
directly in a variable field.
- project (one per document; not loopable)
- title (string)
- studio (string)
- comments (string)
- studiocontact (string)
- composer (relationship to one person)
- director (relationship to one person)
- musiceditor (relationship to one person)
- publisher (relationship to one publisher)
- startdate (date; format = "%m/%d/%Y")
- fps (string; one of: "24", "25", or "29.97/30")
- seriesaka (string)
- prodnumber (string)
- episodenumber (string)
- episodetitle (string)
- episodeaka (string)
- airdate (date)
- projecttotals (one per document; not loopable)
- runningtime (string)
- totaltime (string)
- totallength (string)
- percentdone (string)
- timeneedingcomposing (string)
- timeneedingapproval (string)
- timeneedingprerecording (string)
- timeneedingorchestrating (string)
- timeneedingcopying (string)
- timeneedingrevising (string)
- timeneedingconforming (string)
- timeneedingreapproval (string)
- timeneedingreprinting (string)
- timeneedingrecording (string)
- timeneedingmixing (string)
- timecomposed (string)
- timeapproved (string)
- timeprerecorded (string)
- timeorchestrated (string)
- timecopied (string)
- timerevised (string)
- timeconformed (string)
- timereapproved (string)
- timereprinted (string)
- timerecorded (string)
- timemixed (string)
- percentcomposed (string)
- percentapproved (string)
- percentprerecorded (string)
- percentorchestrated (string)
- percentcopied (string)
- percentrevised (string)
- percentconformed (string)
- percentreapproved (string)
- percentreprinted (string)
- percentrecorded (string)
- percentmixed (string)
- cuesneedingcomposing (number)
- cuesneedingapproval (number)
- cuesneedingprerecording (number)
- cuesneedingorchestrating (number)
- cuesneedingcopying (number)
- cuesneedingrevising (number)
- cuesneedingconforming (number)
- cuesneedingreapproval (number)
- cuesneedingreprinting (number)
- cuesneedingrecording (number)
- cuesneedingmixing (number)
- cuescomposed (number)
- cuesapproved (number)
- cuesprerecorded (number)
- cuesorchestrated (number)
- cuescopied (number)
- cuesrevised (number)
- cuesconformed (number)
- cuesreapproved (number)
- cuesreprinted (number)
- cuesrecorded (number)
- cuesmixed (number)
- cue
- title (string)
- number (string)
- reelnumber (number)
- version (string)
- numberandtitle (string)
- take (relationship to many takes)
- mix (relationship to many mixes)
- composerassignment (relationship to many composer assignments)
- publisherassignment (relationship to many publisher assignments)
- comments (string)
- orchestrator (relationship to one person)
- orchestra (relationship to one orchestra)
- picture (relationship to one picture)
- usage (string)
- usagecode (string)
- ischild (bool)
- isnotchild (bool)
- composed (bool)
- approved (bool)
- prerecorded (bool)
- orchestrated (bool)
- copied (bool)
- revised (bool)
- conformed (bool)
- reapproved (bool)
- reprinted (bool)
- user1 (bool)
- user2 (bool)
- user3 (bool)
- recorded (bool)
- mixed (bool)
- starttime (smpte)
- endtime (smpte)
- length (string)
- startnotes (string)
- endnotes (string)
- cuenotes (string)
- reel
- number (number)
- totaltime (string)
- totallength (string)
- percentdone (string)
- cuesinreel (number)
- cue (relationship to many cues)
- timeneedingcomposing (string)
- timeneedingapproval (string)
- timeneedingprerecording (string)
- timeneedingorchestrating (string)
- timeneedingcopying (string)
- timeneedingrevising (string)
- timeneedingconforming (string)
- timeneedingreapproval (string)
- timeneedingreprinting (string)
- timeneedingrecording (string)
- timeneedingmixing (string)
- timecomposed (string)
- timeapproved (string)
- timeprerecorded (string)
- timeorchestrated (string)
- timecopied (string)
- timerevised (string)
- timeconformed (string)
- timereapproved (string)
- timereprinted (string)
- timerecorded (string)
- timemixed (string)
- percentcomposed (string)
- percentapproved (string)
- percentprerecorded (string)
- percentorchestrated (string)
- percentcopied (string)
- percentrevised (string)
- percentconformed (string)
- percentreapproved (string)
- percentreprinted (string)
- percentrecorded (string)
- percentmixed (string)
- cuesneedingcomposing (number)
- cuesneedingapproval (number)
- cuesneedingprerecording (number)
- cuesneedingorchestrating (number)
- cuesneedingcopying (number)
- cuesneedingrevising (number)
- cuesneedingconforming (number)
- cuesneedingreapproval (number)
- cuesneedingreprinting (number)
- cuesneedingrecording (number)
- cuesneedingmixing (number)
- cuescomposed (number)
- cuesapproved (number)
- cuesprerecorded (number)
- cuesorchestrated (number)
- cuescopied (number)
- cuesrevised (number)
- cuesconformed (number)
- cuesreapproved (number)
- cuesreprinted (number)
- cuesrecorded (number)
- cuesmixed (number)
- take
- suffix (string)
- cue (relationship to one cue)
- number (number)
- master (bool)
- datetime (date; format = "%m/%d/%Y %I:%M %p")
- comments (string)
- mix
- cue (relationship to one cue)
- number (string)
- approved (bool)
- datetime (date; format = "%m/%d/%Y %I:%M %p")
- comments (string)
- person
- name (string)
- pro (string)
- phone (string)
- email (string)
- fax (string)
- composerassignment
- composername (string)
- composerpro (string)
- percent (number)
- cue (relationship to one cue)
- publisherassignment
- publishername (string)
- publisherpro (string)
- percent (number)
- cue (relationship to one cue)