Multiple Project Reports

Caliber allows you to print requirements for more than one Caliber project using Document Factory. You can select multiple projects or multiple baselines and combine requirements that span more than one Caliber project into a single output.

Use the $MULTIPLE_PROJECT command to print requirements for more than one Caliber project. Whenever this command is used, Document Factory uses that the template for multiple projects and multiple baselines.

Document Factory reads the $MULTIPLE_PROJECT command and checks for $PROJECT and $BASELINE commands. If these commands are not present, Document Factory prompts you to specify the project and baseline. The project and baseline will be used for global keywords and global commands, if required.

$BEGIN_TRACES marks the start of trace areas and at the same time also sets the option properties.

It is important that a command is always on its own line and not on the same line with other commands. If commands are on the same line, they will be deleted. Document Factory captures data correctly when using one command per line and proper semantics.

When using the $MULTIPLE_PROJECT command, follow the global commands with an input parameter, such as project name, inside a pair of parenthesis. All project and baseline specific commands, such as $BEGIN_SIGNATURES, can work in two ways as shown in the next two examples.

In the first example, all data is retrieved from the project “Order Processing”. However, if you do not use a pair of parenthesis followed by the $BEGIN_SIGNATURES command, then you must use input to command $PROJECT and $BASELINE.

Note: In order for global commands to use Multiple Project command, use (project name,baseline) with no space between ex: $BEGIN_SIGNATURES(Address Book,Current Baseline) .
$BEGIN_SIGNATURES(Order Processing,Version 1.0)
First Name: <<First_Name>>
Last Name: <<Last_Name>>
Title: <<Title>>
Signature Date: <<Signature_Date>>
Meaning: <<Meaning>>
Comment: <<Comment>>
$END_SIGNATURES

In the following example, all data is retrieved from the project “Order Processing”:

$PROJECT{Order Processing}
…………………………………….
$BEGIN_SIGNATURES
First Name: <<First_Name>>
Last Name: <<Last_Name>>
Title: <<Title>>
Signature Date: <<Signature_Date>>
Meaning: <<Meaning>>
Comment: <<Comment>>
$END_SIGNATURES

There are two ways to represent all project and baseline specific keywords and global keywords, such as <<Project>> or <<Project_Description>>, in the template document.

Represent global keywords using following notations:

You can use the $FILTER command to gather and print requirements.

$MULTIPLE_PROJECT
$BEGIN_SECTION(Address Book,Current Baseline)
$FILTER{Filter:BusinessRequirementsOnly}

<<Hierarchy>> <<Name>> <<Tag>> <<ID_Number>> 

<<Description>>

$END_SECTION
$BEGIN_SECTION(Austomated Teller Machine,Current Baseline)
$FILTER{Filter:UserRequirementsOnly}

<<Hierarchy>> <<Name>> <<Tag>> <<ID_Number>>
 
<<Description>>

$END_SECTION

To filter requirements, use the $FILTER command.

$FILTER{Filter:myfilter}

Where myfilter is a filter created in the Requirements Grid.

In this case, requirements are printed in document factory output based on how the filter is defined. If $FILTER is not used at all, then all requirements from all projects and all baseline are gathered and printed.

$MULTIPLE_PROJECT
$BEGIN_SECTION(Order Processing,Version 1.0)
$FILTER{Filter: myfilter}

<<Hierarchy>> <<Name>> <<Tag>> <<ID_Number>>
$END_SECTION

To sort requirements, use SORT command:

$SORT {fieldname, keyword}

The following are variants in using the $SORT command:

Project1 
	1.	Req1
	2.	Req2
Project2
	1.	Req1
	2.	Req2
 Project3
	1. Req1
	2. Req2

You have to use different sections from different projects as follows:

$BEGIN_SECTION(Project1,Current Baseline)
$FILTER {Filter:myfilter1}
INDENTION_LEVEL{3}     
$INDENTION_SIZE{.5}
……………………
$END_SECTION
$BEGIN_SECTION(Project2,Current baseline)
$FILTER {Filter:myfilter2}

$INDENTION_LEVEL{3}
$INDENTION_SIZE{.5}
 ……………………
$END_SECTION

$BEGIN_SECTION(Project3,current baseline)
$FILTER {filter:myfilter3}
$INDENTION_LEVEL{3}
$INDENTION_SIZE{.5}
       ……………………       
$END_SECTION

Calculate commands can be used multiple times in the template, but should be used with different result names. For example, Result : <<Result1>>

$PROJECT{Order Processing}
$BASELINE{Version 1.0}	
$BEGIN_SECTION

<<Hierarchy>> <<Name>> (<<Tag>> <<ID_Number>>)

Addition:
$CALCULATE{A + B as Result1}
A: <<A>>
B: <<B>>
Sum: <<Result1>>

Subtraction
$CALCULATE{A - B as Result2}
A: <<A>>
B: <<B>>
Result: <<Result2>>

$END_SECTION