What i'm trying to achieve is to create a stack of subreports, each the same but for different locations(data sources), then in a final report, create graphs, charts, totals from the subreports, using shared variables from each of the seperate subreports.
Each subreport has this formula, depending upon location, this is for Minneapolis :-
SHARED numbervar TOTAL_OS;
SHARED numbervar TOTAL_AIX;
SHARED numbervar TOTAL_WINDOWS;
SHARED numbervar TOTAL_LINUX;
SHARED numbervar TOTAL_SOLARIS;
SHARED numbervar TOTAL_OTHER;
SHARED numbervar TOTAL_FS;
SHARED numbervar TOTAL_FS_AIX;
SHARED numbervar TOTAL_FS_WINDOWS;
SHARED numbervar TOTAL_FS_LINUX;
SHARED numbervar TOTAL_FS_SOLARIS;
SHARED numbervar TOTAL_FS_OTHER;
SHARED numbervar TOTAL_MINNEAPOLIS_OS;
SHARED numbervar TOTAL_MINNEAPOLIS_AIX;
SHARED numbervar TOTAL_MINNEAPOLIS_WINDOWS;
SHARED numbervar TOTAL_MINNEAPOLIS_LINUX;
SHARED numbervar TOTAL_MINNEAPOLIS_SOLARIS;
SHARED numbervar TOTAL_MINNEAPOLIS_OTHER;
SHARED numbervar TOTAL_MINNEAPOLIS_FS;
SHARED numbervar TOTAL_FS_MINNEAPOLIS_AIX;
SHARED numbervar TOTAL_FS_MINNEAPOLIS_WINDOWS;
SHARED numbervar TOTAL_FS_MINNEAPOLIS_LINUX;
SHARED numbervar TOTAL_FS_MINNEAPOLIS_SOLARIS;
SHARED numbervar TOTAL_FS_MINNEAPOLIS_OTHER;
if onlastrecord and previous({@Sort metric}) <> {@Sort metric}
or
{@Sort metric} <> next({@Sort metric}) then
If "AIX" IN GroupName ({SRMHOST.HOSTOS}) THEN
(
TOTAL_OS :=TOTAL_OS+{@count hosts };
TOTAL_AIX :=TOTAL_AIX+{@count hosts };
TOTAL_MINNEAPOLIS_AIX := TOTAL_MINNEAPOLIS_AIX +{@count hosts };
TOTAL_FS :=TOTAL_FS+{@FS size GB};
TOTAL_MINNEAPOLIS_FS := TOTAL_MINNEAPOLIS_FS+{@FS size GB};
TOTAL_FS_MINNEAPOLIS_AIX := TOTAL_FS_MINNEAPOLIS_AIX+{@FS size GB} ;
)
else if "WINDOWS" IN GroupName ({SRMHOST.HOSTOS}) THEN
(
TOTAL_OS :=TOTAL_OS+{@count hosts };
TOTAL_WINDOWS :=TOTAL_WINDOWS+{@count hosts };
TOTAL_MINNEAPOLIS_WINDOWS := TOTAL_MINNEAPOLIS_WINDOWS +{@count hosts };
TOTAL_FS :=TOTAL_FS+{@FS size GB};
TOTAL_MINNEAPOLIS_FS := TOTAL_MINNEAPOLIS_FS+{@FS size GB};
TOTAL_FS_MINNEAPOLIS_WINDOWS := TOTAL_FS_MINNEAPOLIS_WINDOWS+{@FS size GB} ;
)
else if "LINUX" IN GroupName ({SRMHOST.HOSTOS}) THEN
(
TOTAL_OS :=TOTAL_OS+{@count hosts };
TOTAL_LINUX :=TOTAL_LINUX+{@count hosts };
TOTAL_MINNEAPOLIS_LINUX := TOTAL_MINNEAPOLIS_LINUX +{@count hosts };
TOTAL_FS :=TOTAL_FS+{@FS size GB};
TOTAL_MINNEAPOLIS_FS := TOTAL_MINNEAPOLIS_FS+{@FS size GB};
TOTAL_FS_MINNEAPOLIS_LINUX := TOTAL_FS_MINNEAPOLIS_LINUX+{@FS size GB} ;
)
else if "SOLARIS" IN GroupName ({SRMHOST.HOSTOS}) THEN
(
TOTAL_OS :=TOTAL_OS+{@count hosts };
TOTAL_SOLARIS :=TOTAL_SOLARIS+{@count hosts };
TOTAL_MINNEAPOLIS_SOLARIS := TOTAL_MINNEAPOLIS_SOLARIS +{@count hosts };
TOTAL_FS :=TOTAL_FS+{@FS size GB};
TOTAL_MINNEAPOLIS_FS := TOTAL_MINNEAPOLIS_FS+{@FS size GB};
TOTAL_FS_MINNEAPOLIS_SOLARIS := TOTAL_FS_MINNEAPOLIS_SOLARIS+{@FS size GB} ;
)
else
(
TOTAL_OS :=TOTAL_OS+{@count hosts };
TOTAL_OTHER :=TOTAL_OTHER+{@count hosts };
TOTAL_MINNEAPOLIS_OTHER := TOTAL_MINNEAPOLIS_OTHER +{@count hosts };
TOTAL_FS :=TOTAL_FS+{@FS size GB};
TOTAL_MINNEAPOLIS_FS := TOTAL_MINNEAPOLIS_FS+{@FS size GB};
TOTAL_FS_MINNEAPOLIS_OTHER := TOTAL_FS_MINNEAPOLIS_OTHER+{@FS size GB} ;
)
This is a trimmed example of output :
WFLLPCRDSUP01 Windows Server 2003 5.2 1.00
1,499.99 1.00 1
5,999.99 1.00 0
999.99 1.00 0
2,999.63 1.00 0
11,499.59
WSDMD501,WSLCD106DB Windows Server 2003 5.2 2.00
15.63 2.00 2
999.00 2.00 0
189.37 2.00 0
20.00 2.00 0
4,080.00 2.00 0
2,047.96 2.00 0
1,032.99 2.00 0
The last value in the group header 1.00 or 2.00 is what i need to add just once, when you see in the records , the 1.00 or 2.oo is duplicated, and i need it 1/0 or 2/0 in each record.