﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<StiSerializer version="1.02" type="Net" application="StiReport">
  <CacheAllData>True</CacheAllData>
  <Dictionary Ref="1" type="Dictionary" isKey="true">
    <BusinessObjects isList="true" count="0" />
    <Databases isList="true" count="1">
      <MainConnection Ref="2" type="Stimulsoft.Report.Dictionary.StiSqlDatabase" isKey="true">
        <Alias>MainConnection</Alias>
        <ConnectionStringEncrypted>4FrZz09dQ6RsW+2Yd0miD9V8wQtNUDHNy2Wl3PEcor/CYNHrxVmrrWhshPhiZOFniXr1jF1xAd1rTKGteizjKuRa4etNBUOZ4k6EGOR0YGfCeGmDY0qS9Wlu/cx6SeB383C/D0xKa4XhFaHcZ3CkE9wS++vZS6PZagWlmGI9dw/2cFMC2F1z</ConnectionStringEncrypted>
        <Name>MainConnection</Name>
      </MainConnection>
    </Databases>
    <DataSources isList="true" count="7">
      <MainData Ref="3" type="Stimulsoft.Report.Dictionary.StiSqlSource" isKey="true">
        <Alias>MainData</Alias>
        <Columns isList="true" count="14">
          <value>PupilID,System.String</value>
          <value>ForeName,System.String</value>
          <value>Surname,System.String</value>
          <value>TotalSessions,System.Int32</value>
          <value>Presents,System.Int32</value>
          <value>Absents,System.Int32</value>
          <value>PresentPercent,System.Decimal</value>
          <value>SessionsThisYear,System.Int32</value>
          <value>ReportStartDate,System.DateTime</value>
          <value>ReportEndDate,System.DateTime</value>
          <value>SchoolID,System.String</value>
          <value>SessionsLeftThiYear,System.Int32</value>
          <value>Description,System.String</value>
          <value>YearGroup,System.String</value>
        </Columns>
        <CommandTimeout>30</CommandTimeout>
        <Dictionary isRef="1" />
        <Name>MainData</Name>
        <NameInSource>MainConnection</NameInSource>
        <Parameters isList="true" count="2">
          <value>_x0040_Startdate,dtpStart.Value,4,0</value>
          <value>_x0040_SchoolYear,SchoolYearInt,8,0</value>
        </Parameters>
        <SqlCommand>SELECT  @StartDate =CAST(CONVERT(NVARCHAR(10), @StartDate, 120) + ' 00:00:00' as DATETIME)
SELECT @StartDate = DATEADD(DD,  2 -DATEPART(DW, @StartDate), @StartDate)
DECLARE @EndDate DATETIME = DATEADD(d,6,@StartDate)
DECLARE @PrevWeekStartDate DATETIME, @PrevWeekEndDate DATETIME

SELECT @PrevWeekStartDate = DATEADD(d,-7,@StartDate), @PrevWeekEndDate =  DATEADD(d,-7,@EndDate)

DECLARE @SchoolYearStart DATETIME
DECLARE @SchoolYearEnd DATETIME
DECLARE @TermDates TABLE (Dates DATETIME, IsSchoolHol NVARCHAR(6))

SELECT @SchoolYearStart = MIN(StartDate), @SchoolYearEnd = MAX(EndDate)
FROM SchoolTerms 
GROUP BY SchoolYear
HAVING
	@StartDate BETWEEN  MIN(StartDate) AND  MAX(EndDate)
	OR @EndDate BETWEEN  MIN(StartDate) AND  MAX(EndDate)

;WITH dates AS
(
	SELECT @SchoolYearStart AS [Date]
	    UNION ALL
	SELECT DATEADD(d,1,[Date]) FROM dates WHERE [Date] &lt;@SchoolYearEnd
)


INSERT INTO @TermDates 
SELECT Dts.Date, CASE WHEN ISNULL(CAST(Hol.StartDate AS NVARCHAR),'FALSE') = 'FALSE' THEN 'FALSE' ELSE 'TRUE' END from dates Dts --where DATENAME(dt) NOT IN ('Saturday','Sunday')
LEFT OUTER JOIN 
(			
	-- Term Breaks
	SELECT
		StartDate,
		DATEADD(d, 1, DATEADD(s, -1, EndDate)) AS EndDate
	FROM TermBreaks
	WHERE StartDate BETWEEN @SchoolYearStart AND @SchoolYearEnd
	UNION ALL		
	-- Bank Holidays
	SELECT 
		HolidayDate,
		DATEADD(d, 1, DATEADD(s, -1, HolidayDate))
	FROM BankHolidays
	WHERE HolidayDate BETWEEN @SchoolYearStart AND @SchoolYearEnd
	UNION ALL		
	-- Gaps between Terms
	SELECT
		DATEADD(d, 1, ST.EndDate),
		DATEADD(s, -1, (SELECT MIN(StartDate) NextTermStartDate FROM SchoolTerms ST2 WHERE ST2.StartDate &gt; ST.EndDate)) EndDate
	FROM SchoolTerms ST
	UNION ALL		
	-- School Events
	SELECT
		EventDate,
		DATEADD(d, 1, DATEADD(s, -1, EventDate))
	FROM SchoolEvents
	WHERE
		IsSchoolClosed = 1
		AND EventDate Between @SchoolYearStart AND @SchoolYearEnd
)
Hol ON Dts.[Date] BETWEEN Hol.StartDate AND Hol.EndDate
OPTION (MAXRECURSION 0)

DECLARE @SessionsInSchoolYear INT
SELECT @SessionsInSchoolYear = COUNT(Dates) * 2
FROM @TermDates 
WHERE 
	IsSchoolHol = 'FALSE'
	AND DATENAME(dw,Dates) NOT IN ('Saturday', 'Sunday')

DECLARE @SessionsLeftThiYear INT
SELECT @SessionsLeftThiYear = COUNT(Dates) * 2
FROM @TermDates 
WHERE
	IsSchoolHol = 'FALSE'
	AND DATENAME(dw,Dates) NOT IN ('Saturday', 'Sunday')
	AND Dates&gt;@EndDate

DECLARE @PrevAttendance TABLE (PupilID NVARCHAR(20), PresentPercent DECIMAL)
INSERT INTO @PrevAttendance 
SELECT
	PSA.PupilID,
	(CAST(SUM(CASE WHEN AT.IsInAttendance = 1 THEN 1 ELSE 0 END) AS DECIMAL) / CAST(COUNT(PSA.PupilID) AS DECIMAL)) * 100
FROM  PupilSessionAttendance PSA
INNER LOOP JOIN AbsenceTypes AT
	ON PSA.AbsenceTypeID = AT.AbsenceTypeID
	AND PSA.AttendanceDate BETWEEN @PrevWeekStartDate AND @PrevWeekEndDate
GROUP BY PSA.PupilID


--Create a table to decide if you should use Period or Session attendance from the Attendance Parameters set up in Engage to avoid duplicate record taking.
DECLARE @periodStruc TABLE (
  academicYear int,
  clusterID nvarchar(20),
  schoolid nvarchar(20),
  yearGroup nvarchar(5),
  dayOfWeek int,
  periodNo int,
  sessionid nvarchar(5)
)

-- yeargroup level
INSERT INTO @periodStruc (academicYear, clusterID, schoolid, yearGroup, dayOfWeek, periodNo, sessionID)
SELECT
	aps.academicYear,
	aps.clusterID,
	aps.SchoolID,
	aps.yearGroup,
	aps.dayOfWeek,
	aps.PeriodID,
	atts.AttendanceSession
	FROM 
	AttendancePeriods aps
	LEFT OUTER JOIN AttendanceSessions atts
		ON aps.schoolid = atts.SchoolID
		AND atts.AcademicYear = aps.academicYear
		AND atts.YearGroup = aps.yearGroup
		AND atts.DayOfWeek = aps.dayOfWeek
		AND atts.AttendancePeriodNo = aps.PeriodID
WHERE
	aps.YearGroup &lt;&gt; ''
	AND aps.AcademicYear = @SchoolYear

-- school level
INSERT INTO @periodStruc (academicYear, clusterID, schoolid, yearGroup, dayOfWeek, periodNo, sessionID)
SELECT
	aps.academicYear,
	aps.clusterID,
	aps.SchoolID,
	yglu.LookupDetailsID,
	aps.dayOfWeek,
	aps.PeriodID,
	atts.AttendanceSession
	FROM
	AttendancePeriods aps
	INNER JOIN LookupDetails yglu
		ON yglu.LookupID = 3004
		AND LookupDetailsID &lt;&gt; '0000'
	LEFT OUTER JOIN AttendanceSessions atts
		ON aps.schoolid = atts.SchoolID
		AND atts.AcademicYear = aps.academicYear
		AND atts.YearGroup = aps.yearGroup
		AND atts.DayOfWeek = aps.dayOfWeek
		AND atts.AttendancePeriodNo = aps.PeriodID
WHERE
	aps.YearGroup = ''
	AND aps.schoolid &lt;&gt; ''
	AND aps.AcademicYear = @SchoolYear
AND yglu.LookupDetailsID NOT IN (SELECT	YearGroup FROM @periodStruc)

-- cluster level
INSERT INTO @periodStruc (academicYear, clusterID, schoolid, yearGroup, dayOfWeek, periodNo, sessionID)
SELECT
	aps.academicYear,
	aps.clusterID,
	aps.SchoolID,
	yglu.LookupDetailsID,
	aps.dayOfWeek,
	aps.PeriodID,
	atts.AttendanceSession
	FROM AttendancePeriods aps
  INNER JOIN LookupDetails yglu
    ON yglu.LookupID = 3004
    AND LookupDetailsID &lt;&gt; '0000'
  LEFT OUTER JOIN AttendanceSessions atts
    ON aps.schoolid = atts.SchoolID
    AND atts.AcademicYear = aps.academicYear
    AND atts.YearGroup = aps.yearGroup
    AND atts.DayOfWeek = aps.dayOfWeek
    AND atts.AttendancePeriodNo = aps.PeriodID
WHERE aps.YearGroup = ''
	AND aps.schoolid = ''
	AND aps.ClusterID &lt;&gt; ''
	AND aps.AcademicYear = @SchoolYear
AND yglu.LookupDetailsID NOT IN (SELECT	YearGroup FROM @periodStruc)

 
SELECT
	PPD.SchoolID,
	PPD.PupilID,
	PPD.ForeName,
	PPD.Surname,
	SLD.Description,
	PCS.YearGroup,
	COUNT(PPD.PupilID) AS TotalSessions,
	SUM(CASE WHEN AT.IsInAttendance = 1 THEN 1 ELSE 0 END) AS Presents,
	SUM(CASE WHEN AT.IsInAttendance = 0 THEN 1 ELSE 0 END) AS Absents,
	PA.PresentPercent, 
	@SessionsInSchoolYear AS SessionsThisYear,
	@SessionsLeftThiYear as SessionsLeftThiYear,
	@StartDate AS ReportStartDate,
	@EndDate  AS ReportEndDate
FROM CurrentPupil
INNER JOIN PupilPersonalDetails PPD
	ON CurrentPupil.PupilID = PPD.PupilID
	AND CurrentPupil.SchoolID = PPD.SchoolID
	AND ('%wc%' = '%wc%')-- AND PPD.PupilID = 1440
LEFT OUTER JOIN PupilSessionAttendance PSA
	ON PPD.PupilID = PSA.PupilID
	AND PPD.SchoolID = PPD.SchoolID
	AND PSA.AttendanceDate BETWEEN @SchoolYearStart AND @EndDate
LEFT OUTER LOOP JOIN AbsenceTypes AT
	ON PSA.AbsenceTypeID = AT.AbsenceTypeID 
LEFT OUTER JOIN @PrevAttendance PA
	ON PPD.PupilID = PA.PupilID
LEFT OUTER JOIN PupilCurrentSchool PCS
	ON PPD.PupilID = PCS.PupilID
LEFT OUTER JOIN SchoolLookupDetails SLD
	ON PCS.Form = SLD.LookupDetailsID
	AND SLD.LookupID = 1002
GROUP BY 
	PPD.SchoolID,
	PPD.PupilID,
	PPD.ForeName,
	PPD.Surname,
	PA.PresentPercent,
	PCS.YearGroup,
	SLD.Description</SqlCommand>
      </MainData>
      <SessionAttendance Ref="4" type="Stimulsoft.Report.Dictionary.StiSqlSource" isKey="true">
        <Alias>SessionAttendance</Alias>
        <Columns isList="true" count="6">
          <value>PupilID,System.String</value>
          <value>AttendanceDate,System.DateTime</value>
          <value>StringDate,System.String</value>
          <value>Weekday,System.String</value>
          <value>AttendanceSession,System.String</value>
          <value>DisplaySymbol,System.String</value>
        </Columns>
        <CommandTimeout>30</CommandTimeout>
        <ConnectOnStart>False</ConnectOnStart>
        <Dictionary isRef="1" />
        <Name>SessionAttendance</Name>
        <NameInSource>MainConnection</NameInSource>
        <Parameters isList="true" count="1">
          <value>_x0040_PupilIDs,getPupilIDs_x0028__x0029_,12,-1</value>
        </Parameters>
        <SqlCommand>--SELECT * FROM LookupDetails WHERE LookupID = 2200
--SELECT * FROM SchoolTerms
--SELECT * FROM AbsenceTypes

--SELECT  @StartDate =CAST(CONVERT(NVARCHAR(10), @StartDate, 120) + ' 00:00:00' as DATETIME)
--SELECT @StartDate = DATEADD(DD,  2 -DATEPART(DW, @StartDate), @StartDate)

DECLARE @EndDate DATETIME
DECLARE @StartDate DATETIME

DECLARE @SchoolYear INT  = 2017
DECLARE @SchoolTerm NVARCHAR(20) = 'Summer Term'

SET @StartDate = (
SELECT ST.StartDate
	FROM SchoolTerms ST
	LEFT JOIN LookupDetails LD
		ON LD.LookupDetailsID = ST.Name
	WHERE
		LD.Description = @SchoolTerm
		AND ST.SchoolYear = @SchoolYear
		AND LD.LookupID = 2200
)

SET @EndDate = (
SELECT ST.EndDate
	FROM SchoolTerms ST
	LEFT JOIN LookupDetails LD
		ON LD.LookupDetailsID = ST.Name
	WHERE 
		LD.Description = @SchoolTerm
		AND ST.SchoolYear = @SchoolYear
		AND LD.LookupID = 2200
)
--DATEADD(d,6,@StartDate)

SELECT
	CP.PupilID,
	PSA.AttendanceDate,
	CONVERT(NVARCHAR(10), PSA.AttendanceDate, 120) AS StringDate,
	DATENAME(dw,PSA.AttendanceDate) Weekday,
	PSA.AttendanceSession, 
	AT.DisplaySymbol,
	AT.AbsenceTypeID,
	AT.IsInAttendance,
	AT.AbsenceType,
	AT.IsAuthorised
--INTO TempTable
FROM CurrentPupil CP
--INNER JOIN PupilPersonalDetails PPD ON CurrentPupil.PupilID = PPD.PupilID AND CurrentPupil.SchoolID = PPD.SchoolID
INNER JOIN PupilSessionAttendance PSA
	ON CP.PupilID = PSA.PupilID
	AND CP.SchoolID = CP.SchoolID
	AND PSA.AttendanceDate BETWEEN @StartDate AND @EndDate
/*INNER JOIN FNSplitTextIDs(@PupilIDs) PID ON CP.PupilID = PID.id*/
LEFT OUTER LOOP JOIN AbsenceTypes AT
	ON PSA.AbsenceTypeID = AT.AbsenceTypeID 


</SqlCommand>
      </SessionAttendance>
      <Dates Ref="5" type="Stimulsoft.Report.Dictionary.StiSqlSource" isKey="true">
        <Alias>Dates</Alias>
        <Columns isList="true" count="2">
          <value>StringDate,System.String</value>
          <value>dates,System.DateTime</value>
        </Columns>
        <CommandTimeout>30</CommandTimeout>
        <ConnectOnStart>False</ConnectOnStart>
        <Dictionary isRef="1" />
        <Name>Dates</Name>
        <NameInSource>MainConnection</NameInSource>
        <Parameters isList="true" count="1">
          <value>_x0040_StartDate,dtpStart.Value,4,0</value>
        </Parameters>
        <SqlCommand>/* SELECT @StartDate = DATEADD(DD,  2 -DATEPART(DW, @StartDate), @StartDate)
DECLARE @EndDate DATETIME = DATEADD(d,6,@StartDate)

;with dates as(
select @StartDate as dates
    union all
select DATEADD(d,1,dates) from dates where dates &lt; @EndDate
)
select
CONVERT(NVARCHAR(10), dates, 120) as StringDate, dates
	
 from dates  WHERE DATENAME(dw,dates) NOT IN ('Saturday','Sunday')*/
</SqlCommand>
      </Dates>
      <Weeks Ref="6" type="Stimulsoft.Report.Dictionary.StiSqlSource" isKey="true">
        <Alias>Weeks</Alias>
        <Columns isList="true" count="6">
          <value>WkNo,System.Int32</value>
          <value>DateRange,System.String</value>
          <value>sowDR,System.String</value>
          <value>eowDR,System.String</value>
          <value>SoW,System.DateTime</value>
          <value>EoW,System.DateTime</value>
        </Columns>
        <CommandTimeout>30</CommandTimeout>
        <ConnectOnStart>False</ConnectOnStart>
        <Dictionary isRef="1" />
        <Name>Weeks</Name>
        <NameInSource>MainConnection</NameInSource>
        <Parameters isList="true" count="2">
          <value>_x0040_SchoolYear,SchoolYearInt,8,4</value>
          <value>_x0040_SchoolTerm,SchoolTerm,12,20</value>
        </Parameters>
        <SqlCommand>declare @startdate datetime;
declare @enddate datetime;
SET @startdate = 
(
	SELECT ST.StartDate
	FROM SchoolTerms ST
	LEFT JOIN LookupDetails LD
		ON ST.Name = LD.LookupDetailsID
		AND LD.LookupID = '2200'
	WHERE
		ST.SchoolYear = @SchoolYear AND
		LD.Description = @SchoolTerm
)

SET @enddate =
(
	SELECT ST.EndDate
	FROM SchoolTerms ST
	LEFT JOIN LookupDetails LD 
		ON ST.Name = LD.LookupDetailsID
		AND LD.LookupID = '2200'
	WHERE
		ST.SchoolYear = @SchoolYear AND
		LD.Description = @SchoolTerm
)

;WITH GetDates AS
(
	SELECT
		DATEADD(DAY, 0, @startdate) AS TheDate,
		DATEPART(WK, DATEADD(DAY, 1, @startdate)) WkNo,
		DATEPART(YEAR, DATEADD(DAY, 1, @startdate)) DateYear
	UNION ALL
	SELECT
		DATEADD(DAY, 1, TheDate),
		DATEPART(WK, DATEADD(DAY, 1, TheDate)),
		DATEPART(YEAR, DATEADD(DAY, 1, TheDate))
		FROM GetDates
		WHERE TheDate &lt; @enddate
)
SELECT
	WkNo,
	MIN(TheDate) AS SoW,
	MAX(TheDate) AS EoW,	
	RIGHT('0' + CONVERT(VARCHAR, DATEPART(dd, CAST(MIN(TheDate) AS DATETIME))), 2) + '/' + RIGHT('0' + CONVERT(VARCHAR, DATEPART(mm, CAST(MIN(TheDate) AS DATETIME))) ,2) AS sowDR,
	RIGHT('0' + CONVERT(VARCHAR, DATEPART(dd, CAST(MAX(TheDate) AS DATETIME))), 2) + '/' + RIGHT('0' + CONVERT(VARCHAR, DATEPART(mm, CAST(MAX(TheDate) AS DATETIME))), 2) AS eowDR
FROM GetDates
GROUP BY WkNo
OPTION (MAXRECURSION 0);</SqlCommand>
      </Weeks>
      <sTermDropDown Ref="7" type="Stimulsoft.Report.Dictionary.StiSqlSource" isKey="true">
        <Alias>sTermDropDown</Alias>
        <Columns isList="true" count="6">
          <value>StartDate,System.DateTime</value>
          <value>EndDate,System.DateTime</value>
          <value>Description,System.String</value>
          <value>YearTerm,System.String</value>
          <value>SchoolYear,System.Int32</value>
          <value>Name,System.String</value>
        </Columns>
        <CommandTimeout>30</CommandTimeout>
        <Dictionary isRef="1" />
        <Name>sTermDropDown</Name>
        <NameInSource>MainConnection</NameInSource>
        <Parameters isList="true" count="0" />
        <SqlCommand>SELECT TOP 12
	CAST(ST.SchoolYear AS NVARCHAR(4)) + ' ~ ' + LD.Description AS YearTerm,
	ST.StartDate,
	ST.EndDate,
	ST.SchoolYear,
	ST.Name
FROM
	SchoolTerms ST
LEFT JOIN
	LookupDetails LD ON ST.Name = LD.LookupDetailsID AND LD.LookupID = '2200'
ORDER BY
	ST.SchoolID,
	ST.SchoolYear DESC,
	ST.Name
	</SqlCommand>
      </sTermDropDown>
      <PeriodClassSessionStruct Ref="8" type="Stimulsoft.Report.Dictionary.StiSqlSource" isKey="true">
        <Alias>PeriodClassSessionStruct</Alias>
        <Columns isList="true" count="7">
          <value>academicYear,System.Int32</value>
          <value>clusterID,System.String</value>
          <value>schoolid,System.String</value>
          <value>yearGroup,System.String</value>
          <value>dayOfWeek,System.Int32</value>
          <value>periodNo,System.Int32</value>
          <value>sessionid,System.String</value>
        </Columns>
        <CommandTimeout>30</CommandTimeout>
        <ConnectOnStart>False</ConnectOnStart>
        <Dictionary isRef="1" />
        <Name>PeriodClassSessionStruct</Name>
        <NameInSource>MainConnection</NameInSource>
        <Parameters isList="true" count="1">
          <value>_x0040_SchoolYear,SchoolYearInt,8,0</value>
        </Parameters>
        <SqlCommand>DECLARE @periodStruc TABLE (
  academicYear int,
  clusterID nvarchar(20),
  schoolid nvarchar(20),
  yearGroup nvarchar(5),
  dayOfWeek int,
  periodNo int,
  sessionid nvarchar(5)
)

-- yeargroup level
INSERT INTO @periodStruc (academicYear, clusterID, schoolid, yearGroup, dayOfWeek, periodNo, sessionID)
SELECT
	aps.academicYear,
	aps.clusterID,
	aps.SchoolID,
	aps.yearGroup,
	aps.dayOfWeek,
	aps.PeriodID,
	atts.AttendanceSession
FROM AttendancePeriods aps
LEFT OUTER JOIN AttendanceSessions atts
	ON aps.schoolid = atts.SchoolID
	AND atts.AcademicYear = aps.academicYear
	AND atts.YearGroup = aps.yearGroup
	AND atts.DayOfWeek = aps.dayOfWeek
	AND atts.AttendancePeriodNo = aps.PeriodID
WHERE
	aps.YearGroup &lt;&gt; ''
	AND aps.AcademicYear = @SchoolYear

-- school level
INSERT INTO @periodStruc (academicYear, clusterID, schoolid, yearGroup, dayOfWeek, periodNo, sessionID)
SELECT
	aps.academicYear,
	aps.clusterID,
	aps.SchoolID,
	yglu.LookupDetailsID,
	aps.dayOfWeek,
	aps.PeriodID,
	atts.AttendanceSession
FROM AttendancePeriods aps
INNER JOIN LookupDetails yglu
	ON yglu.LookupID = 3004
	AND LookupDetailsID &lt;&gt; '0000'
LEFT OUTER JOIN AttendanceSessions atts
	ON aps.schoolid = atts.SchoolID
	AND atts.AcademicYear = aps.academicYear
	AND atts.YearGroup = aps.yearGroup
	AND atts.DayOfWeek = aps.dayOfWeek
	AND atts.AttendancePeriodNo = aps.PeriodID
WHERE
	aps.YearGroup = ''
	AND aps.schoolid &lt;&gt; ''
	AND aps.AcademicYear = @SchoolYear
	AND yglu.LookupDetailsID NOT IN (SELECT	YearGroup FROM @periodStruc)

-- cluster level
INSERT INTO @periodStruc (academicYear, clusterID, schoolid, yearGroup, dayOfWeek, periodNo, sessionID)
SELECT
	aps.academicYear,
	aps.clusterID,
	aps.SchoolID,
	yglu.LookupDetailsID,
	aps.dayOfWeek,
	aps.PeriodID,
	atts.AttendanceSession
FROM AttendancePeriods aps
INNER JOIN LookupDetails yglu
	ON yglu.LookupID = 3004
    AND LookupDetailsID &lt;&gt; '0000'
LEFT OUTER JOIN AttendanceSessions atts
	ON aps.schoolid = atts.SchoolID
    AND atts.AcademicYear = aps.academicYear
    AND atts.YearGroup = aps.yearGroup
    AND atts.DayOfWeek = aps.dayOfWeek
    AND atts.AttendancePeriodNo = aps.PeriodID
WHERE
	aps.YearGroup = ''
	AND aps.schoolid = ''
	AND aps.ClusterID &lt;&gt; ''
	AND aps.AcademicYear = @SchoolYear
	AND yglu.LookupDetailsID NOT IN (SELECT	YearGroup FROM @periodStruc)

SELECT * 
FROM @periodStruc ps
ORDER BY
	yearGroup,
	dayofweek,
	periodNo,
	sessionid</SqlCommand>
      </PeriodClassSessionStruct>
      <WeeklyPct Ref="9" type="Stimulsoft.Report.Dictionary.StiSqlSource" isKey="true">
        <Alias>WeeklyPct</Alias>
        <Columns isList="true" count="1">
          <value>PupilID,System.Int32</value>
        </Columns>
        <CommandTimeout>30</CommandTimeout>
        <Dictionary isRef="1" />
        <Name>WeeklyPct</Name>
        <NameInSource>MainConnection</NameInSource>
        <Parameters isList="true" count="2">
          <value>_x0040_SchoolYear,SchoolYearInt,8,0</value>
          <value>_x0040_SchoolTerm,SchoolTerm,12,20</value>
        </Parameters>
        <SqlCommand>--DECLARE @SchoolYear INT = 2015, @SchoolTerm NVARCHAR(200) = 'Summer Term'


-- Find All school holiday/off days to be ignored in the attendance calculation
DECLARE @SchoolYearStart DATETIME
DECLARE @SchoolYearEnd DATETIME
DECLARE @TermDates TABLE (Dates DATETIME, IsSchoolHol NVARCHAR(6))

SELECT
	@SchoolYearStart = MIN(StartDate),
	@SchoolYearEnd = MAX(EndDate)
FROM SchoolTerms ST
INNER JOIN LookupDetails LD
	ON LookupID = 2200
	AND LD.LookupDetailsID = ST.Name
WHERE
	SchoolYear = @SchoolYear
	AND LD.Description = @SchoolTerm
GROUP BY SchoolYear


;WITH dates AS
(
SELECT @SchoolYearStart AS [Date]
	    UNION ALL
SELECT DATEADD(d,1,[Date]) FROM dates WHERE [Date] &lt;@SchoolYearEnd
)

INSERT INTO @TermDates 
SELECT
	Dts.Date,
	CASE WHEN ISNULL(CAST(Hol.StartDate AS NVARCHAR),'FALSE') = 'FALSE' THEN 'FALSE' ELSE 'TRUE' END 
FROM dates Dts --where DATENAME(dt) NOT IN ('Saturday','Sunday')
LEFT OUTER JOIN 
(			
	-- Term Breaks
SELECT
	StartDate,
	DATEADD(d, 1, DATEADD(s, -1, EndDate)) AS EndDate
	FROM TermBreaks
	WHERE StartDate BETWEEN @SchoolYearStart AND @SchoolYearEnd
	UNION ALL		
	-- Bank Holidays
SELECT 
	HolidayDate,
	DATEADD(d, 1, DATEADD(s, -1, HolidayDate))
	FROM BankHolidays
	WHERE HolidayDate BETWEEN @SchoolYearStart AND @SchoolYearEnd
	UNION ALL		
	-- Gaps between Terms
SELECT
	DATEADD(d, 1, ST.EndDate),
	DATEADD(s, -1, (SELECT MIN(StartDate) NextTermStartDate FROM SchoolTerms ST2 WHERE ST2.StartDate &gt; ST.EndDate)) EndDate
	FROM SchoolTerms ST
	UNION ALL		
	-- School Events
SELECT
	EventDate,
	DATEADD(d, 1, DATEADD(s, -1, EventDate))
	FROM SchoolEvents
	WHERE
	IsSchoolClosed = 1
	AND EventDate Between @SchoolYearStart AND @SchoolYearEnd
)
Hol
	ON Dts.[Date] BETWEEN Hol.StartDate AND Hol.EndDate
OPTION (MAXRECURSION 0)

-- Select all attendance data from PupilSessionAttendance and PupilClassAttendance and the data in temp table #CombinedAttClSe
CREATE TABLE #CombinedAttClSe
	(
	SchoolID NVARCHAR(40),
	PupilID NVARCHAR(40),
	AttendanceDate DATETIME,
	WeekNo INT,
	AttendanceSession NVARCHAR(8),
	AbsenceTypeID NVARCHAR(40),
	AbsenceType NVARCHAR(200),
	IsAuthorised BIT,
	IsInAttendance BIT,
	PeriodNumber TINYINT,
	SchoolYear INT,
	YearGroupID NVARCHAR(40),
	SubjectID NVARCHAR(40),
	DivisionID NVARCHAR(40),
	BatchID NVARCHAR(40)
)

INSERT INTO #CombinedAttClSe
	(
	SchoolID,
	PupilID,
	SchoolYear,
	AttendanceDate,
	WeekNo,
	AbsenceType,
	AbsenceTypeID,
	IsInAttendance,
	IsAuthorised,
	AttendanceSession
	)
	SELECT
		PSA.SchoolID,
		PSA.PupilID,	
		ST.SchoolYear,
		PSA.AttendanceDate,
		DATEPART(WK,PSA.AttendanceDate),
		ABT.AbsenceType,
		PSA.AbsenceTypeID,
		ABT.IsInAttendance,
		ABT.IsAuthorised,
		PSA.AttendanceSession
		FROM PupilSessionAttendance PSA
LEFT JOIN AbsenceTypes ABT
	ON PSA.AbsenceTypeID = ABT.AbsenceTypeID
INNER JOIN CurrentPupil CP
	ON CP.PupilID = PSA.PupilID
INNER JOIN SchoolTerms ST
	ON PSA.SchoolID = ST.SchoolID
	AND PSA.AttendanceDate BETWEEN ST.StartDate AND ST.EndDate
INNER JOIN LookupDetails LD
	ON ST.NAME = LD.LookupDetailsID
	AND LD.LookupID = 2200
LEFT JOIN @TermDates TD
	ON PSA.AttendanceDate = TD.Dates
WHERE
	LD.Description = @SchoolTerm
	AND ST.SchoolYear = @SchoolYear
	AND IsSchoolHol = 'FALSE'
	AND ('%wc%' = '%wc%')

INSERT INTO #CombinedAttClSe
	(
	SchoolID,
	PupilID,
	SchoolYear,
	AttendanceDate,
	WeekNo,
	AbsenceType,
	AbsenceTypeID,
	IsInAttendance,
	IsAuthorised,
	PeriodNumber
	)
	SELECT
		PCA.SchoolID,
		PCA.PupilID,
		ST.SchoolYear,
		PCA.AttendanceDate,
		DATEPART(WK,PCA.AttendanceDate),
		ABT.AbsenceType,
		PCA.AbsenceTypeID,
		ABT.IsInAttendance,
		ABT.IsAuthorised,
		PCA.PeriodNumber
		FROM PupilClassAttendance PCA
LEFT JOIN AbsenceTypes ABT
	ON PCA.AbsenceTypeID = ABT.AbsenceTypeID
INNER JOIN CurrentPupil CP
	ON CP.PupilID = PCA.PupilID
INNER JOIN SchoolTerms ST
	ON PCA.SchoolID = ST.SchoolID
	AND PCA.AttendanceDate BETWEEN ST.StartDate AND ST.EndDate 
INNER JOIN LookupDetails LD 
	ON ST.NAME = LD.LookupDetailsID
	AND LD.LookupID = 2200
LEFT JOIN @TermDates TD
	ON PCA.AttendanceDate = TD.Dates
WHERE
	LD.Description = @SchoolTerm
	AND ST.SchoolYear = @SchoolYear
	AND IsSchoolHol = 'FALSE'
	AND ('%wc%' = '%wc%')


DECLARE @WkCols AS NVARCHAR(MAX),
		@WkQuery AS NVARCHAR(MAX)

select @WkCols = STUFF((SELECT ',' + QUOTENAME(WeekNo) 
	FROM #CombinedAttClSe
	GROUP BY WeekNo
	ORDER BY WeekNo
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @WkQuery = 'SELECT PupilID, SchoolYear,' + @WkCols + ' FROM 
            (
SELECT
	CA.SchoolYear,
	CA.PupilID,
	CA.WeekNo,
	AttPct = SUM(CASE WHEN CA.IsInAttendance = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(1)
                FROM
                    #CombinedAttClSe AS CA
                GROUP BY
					CA.SchoolYear,
                    CA.PupilID,
                    CA.WeekNo
				
            ) x
            PIVOT 
            (
                MAX(AttPct)
                FOR WeekNo IN (' + @WkCols + ')
            ) p '

execute(@WkQuery);

</SqlCommand>
      </WeeklyPct>
    </DataSources>
    <Relations isList="true" count="0" />
    <Report isRef="0" />
    <Variables isList="true" count="24">
      <value>,SchoolName,SchoolName,System.String,Saint_x0020_Nicholas_x0020_School,False,False</value>
      <value>,ReportSubTitle,ReportSubTitle,System.String,,False,False</value>
      <value>,ReportTitle,ReportTitle,System.String,Weekly_x0020_Attendance_x0020_Summary,False,False</value>
      <value>,ReportDateTime,ReportDateTime,System.DateTime,,False,False</value>
      <value>,EngageCopyright,EngageCopyright,System.String,_x00A9__x0020_2018_x0020_Double_x0020_First_x0020_Ltd.,False,False</value>
      <value>,UserID,UserID,System.String,engagesupport,False,False</value>
      <value>Formula Variables</value>
      <value>,TotalPupils,TotalPupils,System.Decimal,,False,False</value>
      <value>,PupilsUnder85,PupilsUnder85,System.Decimal,,False,False</value>
      <value>,PupilsUnder92,PupilsUnder92,System.Decimal,,False,False</value>
      <value>Formula_x0020_Variables,AutumnTotal,AutumnTotal,System.Decimal,,False,False</value>
      <value>Formula_x0020_Variables,SpringTotal,SpringTotal,System.Decimal,,False,False</value>
      <value>Formula_x0020_Variables,SummerTotal,SummerTotal,System.Decimal,,False,False</value>
      <value>Formula_x0020_Variables,YTDTotal,YTDTotal,System.Decimal,,False,False</value>
      <value>Formula_x0020_Variables,PossibleTotal,PossibleTotal,System.Decimal,,False,False</value>
      <value>Formula_x0020_Variables,SummerPupilCount,SummerPupilCount,System.Decimal,,False,False</value>
      <value>Formula_x0020_Variables,SpringPupilCount,SpringPupilCount,System.Decimal,,False,False</value>
      <value>Formula_x0020_Variables,AutumnPupilCount,AutumnPupilCount,System.Decimal,,False,False</value>
      <value>UserDefined</value>
      <value>UserDefined,TermDropDown,TermDropDown,System.String,,False,False</value>
      <value>UserDefined,SchoolTerm,SchoolTerm,System.String,,False,False</value>
      <value>UserDefined,SchoolYearString,SchoolYearString,System.String,,False,False</value>
      <value>UserDefined,SchoolYearInt,SchoolYearInt,System.Int32,,False,False</value>
      <value>UserDefined,NoOfChildren,NoOfChildren,System.Int32,,False,False</value>
    </Variables>
  </Dictionary>
  <EngineVersion>EngineV2</EngineVersion>
  <GlobalizationStrings isList="true" count="0" />
  <MetaTags isList="true" count="0" />
  <Pages isList="true" count="2">
    <Main_Page Ref="10" type="Page" isKey="true">
      <BeforePrintEvent>if(!MainData.IsConnected)
	MainData.Connect();</BeforePrintEvent>
      <Border>None;Black;2;Solid;False;4;Black</Border>
      <Brush>Transparent</Brush>
      <Components isList="true" count="8">
        <MainHeader Ref="11" type="PageHeaderBand" isKey="true">
          <Brush>Transparent</Brush>
          <ClientRectangle>0,0.4,27.7,1.76</ClientRectangle>
          <Components isList="true" count="4">
            <ReportTitleText Ref="12" type="Text" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>0.2,0,13.65,0.58</ClientRectangle>
              <Conditions isList="true" count="0" />
              <Font>Trebuchet MS,12</Font>
              <Guid>646b7d73644a4c36a80992c0e5960953</Guid>
              <Margins>0,0,0,0</Margins>
              <Name>ReportTitleText</Name>
              <Page isRef="10" />
              <Parent isRef="11" />
              <Text>Weekly Attendance Summary</Text>
              <TextBrush>Black</TextBrush>
              <VertAlignment>Center</VertAlignment>
            </ReportTitleText>
            <SchoolNameText Ref="13" type="Text" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>13.65,0,13.65,0.58</ClientRectangle>
              <Conditions isList="true" count="0" />
              <Font>Trebuchet MS,12</Font>
              <Guid>e15a71690f5b465fa7f144b5e460815a</Guid>
              <HorAlignment>Right</HorAlignment>
              <Margins>0,0,0,0</Margins>
              <Name>SchoolNameText</Name>
              <Page isRef="10" />
              <Parent isRef="11" />
              <Text>Saint Nicholas School</Text>
              <TextBrush>Black</TextBrush>
              <VertAlignment>Center</VertAlignment>
            </SchoolNameText>
            <ReportDateTimeText Ref="14" type="Text" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>13.65,0.78,13.65,0.58</ClientRectangle>
              <Conditions isList="true" count="0" />
              <Font>Trebuchet MS,12</Font>
              <Guid>67dee33e0480474481cef151cd392bf0</Guid>
              <HorAlignment>Right</HorAlignment>
              <Margins>0,0,0,0</Margins>
              <Name>ReportDateTimeText</Name>
              <Page isRef="10" />
              <Parent isRef="11" />
              <Text>{ReportDateTime}</Text>
              <TextBrush>Black</TextBrush>
              <TextFormat Ref="15" type="DateFormat" isKey="true">
                <NullDisplay />
                <StringFormat>dd/MM/yyyy HH:mm</StringFormat>
              </TextFormat>
              <VertAlignment>Center</VertAlignment>
            </ReportDateTimeText>
            <MainHeaderLine Ref="16" type="HorizontalLinePrimitive" isKey="true">
              <ClientRectangle>0.2,1.56,27.3,0.0254</ClientRectangle>
              <Color>Black</Color>
              <EndCap Ref="17" type="Cap" isKey="true">
                <Color>Black</Color>
              </EndCap>
              <Guid>4e24cdc2d9024d21b53d7bbe7484b454</Guid>
              <Name>MainHeaderLine</Name>
              <Page isRef="10" />
              <Parent isRef="11" />
              <ShiftMode>None</ShiftMode>
              <StartCap Ref="18" type="Cap" isKey="true">
                <Color>Black</Color>
              </StartCap>
            </MainHeaderLine>
          </Components>
          <Conditions isList="true" count="0" />
          <Guid>94256dbd4c9347ebb2793a2a05cc391f</Guid>
          <Name>MainHeader</Name>
          <Page isRef="10" />
          <Parent isRef="10" />
        </MainHeader>
        <PageHeaderBand1 Ref="19" type="PageHeaderBand" isKey="true">
          <Brush>Transparent</Brush>
          <CanShrink>True</CanShrink>
          <ClientRectangle>0,2.96,27.7,1.2</ClientRectangle>
          <Components isList="true" count="2">
            <Text1 Ref="20" type="Text" isKey="true">
              <AutoWidth>True</AutoWidth>
              <Brush>Transparent</Brush>
              <ClientRectangle>10.4,0,7.2,0.6</ClientRectangle>
              <Conditions isList="true" count="0" />
              <Font>Calibri,11,Bold</Font>
              <Margins>0,0,0,0</Margins>
              <Name>Text1</Name>
              <Page isRef="10" />
              <Parent isRef="19" />
              <Text>{SchoolName} Weekly Attendance Summary</Text>
              <TextBrush>Black</TextBrush>
              <Type>Expression</Type>
              <VertAlignment>Center</VertAlignment>
            </Text1>
            <Text7 Ref="21" type="Text" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>0,0.15,4.8,0.6</ClientRectangle>
              <Conditions isList="true" count="0" />
              <Font>Calibri,11,Underline</Font>
              <Margins>0,0,0,0</Margins>
              <Name>Text7</Name>
              <Page isRef="10" />
              <Parent isRef="19" />
              <Text>{SchoolYearString} {SchoolTerm}</Text>
              <TextBrush>Black</TextBrush>
              <Type>Expression</Type>
            </Text7>
          </Components>
          <Conditions isList="true" count="0" />
          <Name>PageHeaderBand1</Name>
          <Page isRef="10" />
          <Parent isRef="10" />
        </PageHeaderBand1>
        <MainFooter Ref="22" type="PageFooterBand" isKey="true">
          <Brush>Transparent</Brush>
          <ClientRectangle>0,17.04,27.7,1.96</ClientRectangle>
          <Components isList="true" count="3">
            <ReportPageNumberText Ref="23" type="Text" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>0.2,0.4,27.3,0.58</ClientRectangle>
              <Conditions isList="true" count="0" />
              <Font>Trebuchet MS,12</Font>
              <Guid>adfe15f6c7e54a99a61b8044eb47cd37</Guid>
              <Margins>0,0,0,0</Margins>
              <Name>ReportPageNumberText</Name>
              <Page isRef="10" />
              <Parent isRef="22" />
              <Text>{PageNumber}</Text>
              <TextBrush>Black</TextBrush>
              <VertAlignment>Bottom</VertAlignment>
            </ReportPageNumberText>
            <ReportCopyrightText Ref="24" type="Text" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>0.2,1.18,27.3,0.58</ClientRectangle>
              <Conditions isList="true" count="0" />
              <Font>Trebuchet MS,12</Font>
              <Guid>27b34795f57549c4a72232a11ffd8411</Guid>
              <HorAlignment>Right</HorAlignment>
              <Margins>0,0,0,0</Margins>
              <Name>ReportCopyrightText</Name>
              <Page isRef="10" />
              <Parent isRef="22" />
              <Text>© 2018 Double First Ltd.</Text>
              <TextBrush>Black</TextBrush>
              <VertAlignment>Bottom</VertAlignment>
            </ReportCopyrightText>
            <MainFooterLine Ref="25" type="HorizontalLinePrimitive" isKey="true">
              <ClientRectangle>0.2,0.2,27.3,0.0254</ClientRectangle>
              <Color>Black</Color>
              <EndCap Ref="26" type="Cap" isKey="true">
                <Color>Black</Color>
              </EndCap>
              <Guid>ed2ae05c00144cf7b4ea18d23fcb2e72</Guid>
              <Name>MainFooterLine</Name>
              <Page isRef="10" />
              <Parent isRef="22" />
              <StartCap Ref="27" type="Cap" isKey="true">
                <Color>Black</Color>
              </StartCap>
            </MainFooterLine>
          </Components>
          <Conditions isList="true" count="0" />
          <Guid>fd12cf4aa5e347ce860af897e9909748</Guid>
          <Name>MainFooter</Name>
          <Page isRef="10" />
          <Parent isRef="10" />
        </MainFooter>
        <GroupHeaderBand2 Ref="28" type="GroupHeaderBand" isKey="true">
          <BeforePrintEvent>CrossGroupHeaderBand3.Width = 0;</BeforePrintEvent>
          <Brush>Transparent</Brush>
          <ClientRectangle>0,4.96,27.7,1.2</ClientRectangle>
          <Components isList="true" count="4">
            <CrossHeaderBand2 Ref="29" type="Stimulsoft.Report.Components.StiCrossHeaderBand" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>0,0,6.2,1.2</ClientRectangle>
              <Components isList="true" count="3">
                <Text37 Ref="30" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,0,2.2,1.2</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,10,Bold</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>1538911ef5554387b718911a4d3283cb</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text37</Name>
                  <Page isRef="10" />
                  <Parent isRef="29" />
                  <Text>First Name</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text37>
                <Text41 Ref="31" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>2.2,0,3,1.2</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,10,Bold</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>d5cfd436a05b4a43b97251dfc496434e</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text41</Name>
                  <Page isRef="10" />
                  <Parent isRef="29" />
                  <Text>Surname</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text41>
                <Text42 Ref="32" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>5.2,0,1,1.2</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,10,Bold</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>e8f46aab6e4748cba276f2c00dd4523b</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text42</Name>
                  <Page isRef="10" />
                  <Parent isRef="29" />
                  <Text>Form</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text42>
              </Components>
              <Conditions isList="true" count="0" />
              <Name>CrossHeaderBand2</Name>
              <Page isRef="10" />
              <Parent isRef="28" />
            </CrossHeaderBand2>
            <CrossGroupHeaderBand3 Ref="33" type="CrossGroupHeaderBand" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>6.2,0,1,1.2</ClientRectangle>
              <Components isList="true" count="0" />
              <Condition>{Weeks.WkNo}</Condition>
              <Conditions isList="true" count="0" />
              <Name>CrossGroupHeaderBand3</Name>
              <Page isRef="10" />
              <Parent isRef="28" />
            </CrossGroupHeaderBand3>
            <CrossDataBand2 Ref="34" type="CrossDataBand" isKey="true">
              <Brush>Transparent</Brush>
              <BusinessObjectGuid isNull="true" />
              <ClientRectangle>7.2,0,1,1.2</ClientRectangle>
              <Components isList="true" count="1">
                <Text9 Ref="35" type="Text" isKey="true">
                  <Border>Top, Left, Right;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,0,1,1.2</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,9,Bold</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>40943797f44943909fc59a5ea29eb1c9</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text9</Name>
                  <Page isRef="10" />
                  <Parent isRef="34" />
                  <ShrinkFontToFit>True</ShrinkFontToFit>
                  <Text>{Weeks.sowDR}
-
{Weeks.eowDR}</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text9>
              </Components>
              <Conditions isList="true" count="0" />
              <DataRelationName isNull="true" />
              <DataSourceName>Weeks</DataSourceName>
              <Filters isList="true" count="0" />
              <Name>CrossDataBand2</Name>
              <Page isRef="10" />
              <Parent isRef="28" />
              <Sort isList="true" count="0" />
            </CrossDataBand2>
            <CrossFooterBand2 Ref="36" type="Stimulsoft.Report.Components.StiCrossFooterBand" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>8.2,0,2.4,1.2</ClientRectangle>
              <Components isList="true" count="2">
                <Text12 Ref="37" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,0,1,1.2</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,10,Bold</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>afb754b16bcc4f92bea8448d8e4baebf</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text12</Name>
                  <Page isRef="10" />
                  <Parent isRef="36" />
                  <Text>Total</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text12>
                <Text2 Ref="38" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>1,0,1.4,1.2</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,10,Bold</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>01adfeaaab5646c7bb824145c7afd8f5</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text2</Name>
                  <Page isRef="10" />
                  <Parent isRef="36" />
                  <Text>Poss. Att.
to
EoY %</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text2>
              </Components>
              <Conditions isList="true" count="0" />
              <Name>CrossFooterBand2</Name>
              <Page isRef="10" />
              <Parent isRef="28" />
            </CrossFooterBand2>
          </Components>
          <Condition>{MainData.SchoolID}</Condition>
          <Conditions isList="true" count="0" />
          <Name>GroupHeaderBand2</Name>
          <Page isRef="10" />
          <Parent isRef="10" />
          <PrintOnAllPages>True</PrintOnAllPages>
        </GroupHeaderBand2>
        <GroupHeaderBand1 Ref="39" type="GroupHeaderBand" isKey="true">
          <AfterPrintEvent>NoOfChildren++;</AfterPrintEvent>
          <BeforePrintEvent>CrossGroupHeaderBand1.Width = 0;</BeforePrintEvent>
          <Brush>Transparent</Brush>
          <ClientRectangle>0,6.96,27.7,0</ClientRectangle>
          <Components isList="true" count="0" />
          <Condition>{MainData.Surname}{MainData.ForeName}{MainData.PupilID}</Condition>
          <Conditions isList="true" count="0" />
          <Name>GroupHeaderBand1</Name>
          <Page isRef="10" />
          <Parent isRef="10" />
        </GroupHeaderBand1>
        <DataMainData Ref="40" type="DataBand" isKey="true">
          <Brush>Transparent</Brush>
          <BusinessObjectGuid isNull="true" />
          <CanShrink>True</CanShrink>
          <ClientRectangle>0,7.76,27.7,0</ClientRectangle>
          <Components isList="true" count="1">
            <Text4 Ref="41" type="Text" isKey="true">
              <Border>Left, Right, Bottom;Black;1;Solid;False;4;Black</Border>
              <Brush>Transparent</Brush>
              <ClientRectangle>0,0,3.6,0</ClientRectangle>
              <Conditions isList="true" count="0" />
              <Font>Calibri,11,Bold</Font>
              <Margins>0,0,0,0</Margins>
              <Name>Text4</Name>
              <Page isRef="10" />
              <Parent isRef="40" />
              <Text>{sTermDropDown.Parameters["@YearDropDown"].ParameterValue}</Text>
              <TextBrush>Black</TextBrush>
              <Type>DataColumn</Type>
            </Text4>
          </Components>
          <Conditions isList="true" count="0" />
          <DataSourceName>MainData</DataSourceName>
          <Filters isList="true" count="0" />
          <Guid>8e72468b142b48a3b29239bb228edb01</Guid>
          <Name>DataMainData</Name>
          <Page isRef="10" />
          <Parent isRef="10" />
          <Sort isList="true" count="0" />
        </DataMainData>
        <GroupFooterBand1 Ref="42" type="GroupFooterBand" isKey="true">
          <BeforePrintEvent>CrossGroupHeaderBand1.Width = 0;</BeforePrintEvent>
          <Brush>Transparent</Brush>
          <ClientRectangle>0,8.56,27.7,0.6</ClientRectangle>
          <Components isList="true" count="4">
            <CrossHeaderBand1 Ref="43" type="Stimulsoft.Report.Components.StiCrossHeaderBand" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>0,0,6.2,0.6</ClientRectangle>
              <Components isList="true" count="3">
                <Text20 Ref="44" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <CanGrow>True</CanGrow>
                  <ClientRectangle>0,0,2.2,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,10</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <HorAlignment>Width</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text20</Name>
                  <Page isRef="10" />
                  <Parent isRef="43" />
                  <ShrinkFontToFit>True</ShrinkFontToFit>
                  <Text>{MainData.ForeName}</Text>
                  <TextBrush>Black</TextBrush>
                  <TextOptions>HotkeyPrefix=None, LineLimit=False, RightToLeft=False, Trimming=None, WordWrap=True, Angle=0, FirstTabOffset=40, DistanceBetweenTabs=20,</TextOptions>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text20>
                <Text43 Ref="45" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>2.2,0,3,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,10</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>03a01c3caacf4695923afc89fb19fa5c</Guid>
                  <HorAlignment>Width</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text43</Name>
                  <Page isRef="10" />
                  <Parent isRef="43" />
                  <ShrinkFontToFit>True</ShrinkFontToFit>
                  <ShrinkFontToFitMinimumSize>7</ShrinkFontToFitMinimumSize>
                  <Text>{MainData.Surname}</Text>
                  <TextBrush>Black</TextBrush>
                  <TextOptions>HotkeyPrefix=None, LineLimit=False, RightToLeft=False, Trimming=None, WordWrap=True, Angle=0, FirstTabOffset=40, DistanceBetweenTabs=20,</TextOptions>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text43>
                <Text11 Ref="46" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <CanGrow>True</CanGrow>
                  <ClientRectangle>5.2,0,1,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,10</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>5159b9fedec04b73beb64dfc029e4efd</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text11</Name>
                  <Page isRef="10" />
                  <Parent isRef="43" />
                  <ShrinkFontToFit>True</ShrinkFontToFit>
                  <Text>{MainData.Description}</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text11>
              </Components>
              <Conditions isList="true" count="0" />
              <Name>CrossHeaderBand1</Name>
              <Page isRef="10" />
              <Parent isRef="42" />
            </CrossHeaderBand1>
            <CrossGroupHeaderBand1 Ref="47" type="CrossGroupHeaderBand" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>6.2,0,1,0.6</ClientRectangle>
              <Components isList="true" count="0" />
              <Condition>{Weeks.WkNo}</Condition>
              <Conditions isList="true" count="0" />
              <Name>CrossGroupHeaderBand1</Name>
              <Page isRef="10" />
              <Parent isRef="42" />
            </CrossGroupHeaderBand1>
            <CrossDataBand1 Ref="48" type="CrossDataBand" isKey="true">
              <Border>All;Black;1;Solid;False;4;Black</Border>
              <Brush>Transparent</Brush>
              <BusinessObjectGuid isNull="true" />
              <ClientRectangle>7.2,0,1,0.6</ClientRectangle>
              <Components isList="true" count="0" />
              <Conditions isList="true" count="0" />
              <DataRelationName isNull="true" />
              <DataSourceName>Weeks</DataSourceName>
              <Filters isList="true" count="0" />
              <Name>CrossDataBand1</Name>
              <Page isRef="10" />
              <Parent isRef="42" />
              <Sort isList="true" count="0" />
            </CrossDataBand1>
            <CrossFooterBand1 Ref="49" type="Stimulsoft.Report.Components.StiCrossFooterBand" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>8.2,0,2.4,0.6</ClientRectangle>
              <Components isList="true" count="2">
                <Text24 Ref="50" type="Text" isKey="true">
                  <AfterPrintEvent>if(totalPossAttend() &lt; 85.0m)
	PupilsUnder85 ++;

if(totalPossAttend() &gt; 85.0m &amp;&amp; totalPossAttend() &lt; 92.0m)
	PupilsUnder92 ++;

TotalPupils ++;
PossibleTotal = totalPossAttend()+PossibleTotal;</AfterPrintEvent>
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <CanGrow>True</CanGrow>
                  <ClientRectangle>1,0,1.4,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,9</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>6ece99ee1ee542b5871bb31e94625427</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>0,0,0,0</Margins>
                  <Name>Text24</Name>
                  <Page isRef="10" />
                  <Parent isRef="49" />
                  <Text>{(totalPossAttend()).ToString("#0.##") + " %"}</Text>
                  <TextBrush>Black</TextBrush>
                  <TextOptions>HotkeyPrefix=None, LineLimit=False, RightToLeft=False, Trimming=None, WordWrap=True, Angle=0, FirstTabOffset=40, DistanceBetweenTabs=20,</TextOptions>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text24>
                <Text5 Ref="51" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <CanGrow>True</CanGrow>
                  <ClientRectangle>0,0,1,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11</Font>
                  <GrowToHeight>True</GrowToHeight>
                  <Guid>5a16e766c5304d2daae4827c2f1b80d7</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text5</Name>
                  <Page isRef="10" />
                  <Parent isRef="49" />
                  <Text>{Sum(GroupHeaderBand1,MainData.PresentPercent)}</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Totals</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text5>
              </Components>
              <Conditions isList="true" count="0" />
              <Name>CrossFooterBand1</Name>
              <Page isRef="10" />
              <Parent isRef="42" />
            </CrossFooterBand1>
          </Components>
          <Conditions isList="true" count="0" />
          <Name>GroupFooterBand1</Name>
          <Page isRef="10" />
          <Parent isRef="10" />
        </GroupFooterBand1>
        <GroupFooterBand2 Ref="52" type="GroupFooterBand" isKey="true">
          <BeforePrintEvent>CrossGroupHeaderBand2.Width = 0;</BeforePrintEvent>
          <Brush>Transparent</Brush>
          <ClientRectangle>0,9.96,27.7,3</ClientRectangle>
          <Components isList="true" count="4">
            <CrossHeaderBand3 Ref="53" type="Stimulsoft.Report.Components.StiCrossHeaderBand" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>0,0,6.2,3</ClientRectangle>
              <Components isList="true" count="5">
                <Text6 Ref="54" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,0,6.2,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11,Bold</Font>
                  <Guid>4f643e9d78f94816a545c2eba417cbb9</Guid>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text6</Name>
                  <Page isRef="10" />
                  <Parent isRef="53" />
                  <ShrinkFontToFit>True</ShrinkFontToFit>
                  <Text>Number of Children</Text>
                  <TextBrush>Black</TextBrush>
                  <TextOptions>HotkeyPrefix=None, LineLimit=False, RightToLeft=False, Trimming=None, WordWrap=True, Angle=0, FirstTabOffset=40, DistanceBetweenTabs=20,</TextOptions>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text6>
                <Text8 Ref="55" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,1.2,6.2,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11,Bold</Font>
                  <Guid>35ada845974c4578b10899bc83fbe401</Guid>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text8</Name>
                  <Page isRef="10" />
                  <Parent isRef="53" />
                  <ShrinkFontToFit>True</ShrinkFontToFit>
                  <Text>Average</Text>
                  <TextBrush>Black</TextBrush>
                  <TextOptions>HotkeyPrefix=None, LineLimit=False, RightToLeft=False, Trimming=None, WordWrap=True, Angle=0, FirstTabOffset=40, DistanceBetweenTabs=20,</TextOptions>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text8>
                <Text10 Ref="56" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,1.8,6.2,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11,Bold</Font>
                  <Guid>622f5c771f954df2915956f0f1abb92e</Guid>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text10</Name>
                  <Page isRef="10" />
                  <Parent isRef="53" />
                  <ShrinkFontToFit>True</ShrinkFontToFit>
                  <Text>Sessions Available</Text>
                  <TextBrush>Black</TextBrush>
                  <TextOptions>HotkeyPrefix=None, LineLimit=False, RightToLeft=False, Trimming=None, WordWrap=True, Angle=0, FirstTabOffset=40, DistanceBetweenTabs=20,</TextOptions>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text10>
                <Text13 Ref="57" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,2.4,6.2,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11,Bold</Font>
                  <Guid>a613a5f0239a4a8cbe934567a001d4b6</Guid>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text13</Name>
                  <Page isRef="10" />
                  <Parent isRef="53" />
                  <ShrinkFontToFit>True</ShrinkFontToFit>
                  <Text>Sessions Filled</Text>
                  <TextBrush>Black</TextBrush>
                  <TextOptions>HotkeyPrefix=None, LineLimit=False, RightToLeft=False, Trimming=None, WordWrap=True, Angle=0, FirstTabOffset=40, DistanceBetweenTabs=20,</TextOptions>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text13>
                <Text19 Ref="58" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,0.6,6.2,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11,Bold</Font>
                  <Guid>aeae0a3bd0fc4227b1f8b0330b469d53</Guid>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text19</Name>
                  <Page isRef="10" />
                  <Parent isRef="53" />
                  <ShrinkFontToFit>True</ShrinkFontToFit>
                  <Text>School Attendance %</Text>
                  <TextBrush>Black</TextBrush>
                  <TextOptions>HotkeyPrefix=None, LineLimit=False, RightToLeft=False, Trimming=None, WordWrap=True, Angle=0, FirstTabOffset=40, DistanceBetweenTabs=20,</TextOptions>
                  <Type>Expression</Type>
                  <VertAlignment>Bottom</VertAlignment>
                </Text19>
              </Components>
              <Conditions isList="true" count="0" />
              <Name>CrossHeaderBand3</Name>
              <Page isRef="10" />
              <Parent isRef="52" />
            </CrossHeaderBand3>
            <CrossGroupHeaderBand2 Ref="59" type="CrossGroupHeaderBand" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>6.2,0,0.8,3</ClientRectangle>
              <Components isList="true" count="0" />
              <Condition>{Dates.dates}</Condition>
              <Conditions isList="true" count="0" />
              <Guid>8c4da0efd2c34b6598222531b614e4bc</Guid>
              <Name>CrossGroupHeaderBand2</Name>
              <Page isRef="10" />
              <Parent isRef="52" />
            </CrossGroupHeaderBand2>
            <CrossDataBand3 Ref="60" type="CrossDataBand" isKey="true">
              <Brush>Transparent</Brush>
              <BusinessObjectGuid isNull="true" />
              <ClientRectangle>7,0,1,3</ClientRectangle>
              <Components isList="true" count="5">
                <Text14 Ref="61" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,0,1,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11,Bold</Font>
                  <Guid>cb9ddeae1dec4c479342460ad8731232</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text14</Name>
                  <Page isRef="10" />
                  <Parent isRef="60" />
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text14>
                <Text15 Ref="62" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,0.6,1,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11</Font>
                  <Guid>4ffe1a9a21084beeb2d46c0580330ff2</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text15</Name>
                  <Page isRef="10" />
                  <Parent isRef="60" />
                  <Text>{Avg(GroupHeaderBand2,MainData.SessionsLeftThiYear)}</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text15>
                <Text16 Ref="63" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,1.2,1,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11</Font>
                  <Guid>6279a14c94c5401081b65a600a761c8f</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text16</Name>
                  <Page isRef="10" />
                  <Parent isRef="60" />
                  <Text>%</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text16>
                <Text17 Ref="64" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,1.8,1,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11</Font>
                  <Guid>1d739dd11a6a4a9bb2dd3c08e7d594ba</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text17</Name>
                  <Page isRef="10" />
                  <Parent isRef="60" />
                  <Text>%</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text17>
                <Text18 Ref="65" type="Text" isKey="true">
                  <Border>All;Black;1;Solid;False;4;Black</Border>
                  <Brush>Transparent</Brush>
                  <ClientRectangle>0,2.4,1,0.6</ClientRectangle>
                  <Conditions isList="true" count="0" />
                  <Font>Calibri,11</Font>
                  <Guid>4fd95b0ec47b4253bde5cceab4242e23</Guid>
                  <HorAlignment>Center</HorAlignment>
                  <Margins>1,0,0,0</Margins>
                  <Name>Text18</Name>
                  <Page isRef="10" />
                  <Parent isRef="60" />
                  <Text>%</Text>
                  <TextBrush>Black</TextBrush>
                  <Type>Expression</Type>
                  <VertAlignment>Center</VertAlignment>
                </Text18>
              </Components>
              <Conditions isList="true" count="0" />
              <DataRelationName isNull="true" />
              <DataSourceName>Weeks</DataSourceName>
              <Filters isList="true" count="0" />
              <Name>CrossDataBand3</Name>
              <Page isRef="10" />
              <Parent isRef="52" />
              <Sort isList="true" count="0" />
            </CrossDataBand3>
            <CrossFooterBand3 Ref="66" type="Stimulsoft.Report.Components.StiCrossFooterBand" isKey="true">
              <Brush>Transparent</Brush>
              <ClientRectangle>8,0,1.2,3</ClientRectangle>
              <Components isList="true" count="0" />
              <Conditions isList="true" count="0" />
              <Name>CrossFooterBand3</Name>
              <Page isRef="10" />
              <Parent isRef="52" />
            </CrossFooterBand3>
          </Components>
          <Conditions isList="true" count="0" />
          <Name>GroupFooterBand2</Name>
          <Page isRef="10" />
          <Parent isRef="10" />
        </GroupFooterBand2>
      </Components>
      <Conditions isList="true" count="0" />
      <Guid>f8decc2f15314a11acd3ba0893ba21c2</Guid>
      <Margins>1,1,1,1</Margins>
      <Name>Main_Page</Name>
      <Orientation>Landscape</Orientation>
      <PageHeight>21</PageHeight>
      <PageWidth>29.7</PageWidth>
      <Report isRef="0" />
      <Watermark Ref="67" type="Stimulsoft.Report.Components.StiWatermark" isKey="true">
        <Font>Arial,100</Font>
        <TextBrush>[50:0:0:0]</TextBrush>
      </Watermark>
    </Main_Page>
    <Form1 Ref="68" type="Stimulsoft.Report.Dialogs.StiForm" isKey="true">
      <BackColor>Control</BackColor>
      <Components isList="true" count="4">
        <dtpStart Ref="69" type="Stimulsoft.Report.Dialogs.StiDateTimePickerControl" isKey="true">
          <BackColor>Window</BackColor>
          <ClientRectangle>296,56,176,20</ClientRectangle>
          <Components isList="true" count="0" />
          <Enabled>False</Enabled>
          <Font>Microsoft Sans Serif,8</Font>
          <ForeColor>Black</ForeColor>
          <Location>296, 56</Location>
          <MaxDate>12/31/9998 12:00:00 AM</MaxDate>
          <MinDate>1/1/1753 12:00:00 AM</MinDate>
          <Name>dtpStart</Name>
          <Page isRef="68" />
          <Parent isRef="68" />
          <Size>176, 20</Size>
          <Value>7/13/2015 4:05:45 PM</Value>
        </dtpStart>
        <ButtonControl1 Ref="70" type="Stimulsoft.Report.Dialogs.StiButtonControl" isKey="true">
          <ClickEvent>getYearTermString();
if(!Weeks.IsConnected)
Weeks.Connect();
if(!PeriodClassSessionStruct.IsConnected)
PeriodClassSessionStruct.Connect();</ClickEvent>
          <ClientRectangle>8,72,176,24</ClientRectangle>
          <Components isList="true" count="0" />
          <DialogResult>OK</DialogResult>
          <Font>Microsoft Sans Serif,8</Font>
          <ForeColor>Black</ForeColor>
          <Location>8, 72</Location>
          <Name>ButtonControl1</Name>
          <Page isRef="68" />
          <Parent isRef="68" />
          <Size>176, 24</Size>
          <Text>OK</Text>
        </ButtonControl1>
        <LabelControl2 Ref="71" type="Stimulsoft.Report.Dialogs.StiLabelControl" isKey="true">
          <BackColor>Control</BackColor>
          <ClientRectangle>16,16,144,16</ClientRectangle>
          <Components isList="true" count="0" />
          <Font>Microsoft Sans Serif,8,Bold</Font>
          <ForeColor>Black</ForeColor>
          <Guid>72cd3d00dea24d01b54622bc07b6b3d6</Guid>
          <Location>16, 16</Location>
          <Name>LabelControl2</Name>
          <Page isRef="68" />
          <Parent isRef="68" />
          <Size>144, 16</Size>
          <Text>School Year + Term</Text>
        </LabelControl2>
        <lub_SchoolYear Ref="72" type="Stimulsoft.Report.Dialogs.StiLookUpBoxControl" isKey="true">
          <BackColor>Window</BackColor>
          <ClientRectangle>16,40,144,20</ClientRectangle>
          <Components isList="true" count="0" />
          <Font>Microsoft Sans Serif,8</Font>
          <ForeColor>Black</ForeColor>
          <Guid>ba5d3174824549dc9b8e48ad8280f8f9</Guid>
          <Items isList="true" count="0" />
          <ItemsBinding>sTermDropDown.YearTerm</ItemsBinding>
          <Keys isList="true" count="0" />
          <KeysBinding>sTermDropDown.YearTerm</KeysBinding>
          <Location>16, 40</Location>
          <MaxDropDownItems>10</MaxDropDownItems>
          <MaxLength>20</MaxLength>
          <Name>lub_SchoolYear</Name>
          <Page isRef="68" />
          <Parent isRef="68" />
          <Size>144, 20</Size>
          <Text>LookUpBox</Text>
        </lub_SchoolYear>
      </Components>
      <Font>Microsoft Sans Serif,8</Font>
      <Guid>0111bab1c6c74bdcb642d522c6e3d227</Guid>
      <Location>0, 0</Location>
      <Name>Form1</Name>
      <Report isRef="0" />
      <Size>224, 128</Size>
      <Text />
    </Form1>
  </Pages>
  <PrinterSettings Ref="73" type="Stimulsoft.Report.Print.StiPrinterSettings" isKey="true" />
  <ReferencedAssemblies isList="true" count="8">
    <value>System.Dll</value>
    <value>System.Drawing.Dll</value>
    <value>System.Windows.Forms.Dll</value>
    <value>System.Data.Dll</value>
    <value>System.Xml.Dll</value>
    <value>Stimulsoft.Controls.Dll</value>
    <value>Stimulsoft.Base.Dll</value>
    <value>Stimulsoft.Report.Dll</value>
  </ReferencedAssemblies>
  <ReportAlias>Weekly Attendance Summary</ReportAlias>
  <ReportAuthor>Double First Ltd</ReportAuthor>
  <ReportChanged>3/29/2018 12:17:20 PM</ReportChanged>
  <ReportCreated>8/22/2007 9:17:27 AM</ReportCreated>
  <ReportDescription>CurrentPupils|Attendance|CurrentPupil.PupilID</ReportDescription>
  <ReportFile>C:\Customer Data\Acorn Care and Education\Reports\Weekly Pupil Att\sstA655.mrt</ReportFile>
  <ReportGuid>469582b94ca14febb6271477ff4df2d0</ReportGuid>
  <ReportName>Weekly Attendance Summary</ReportName>
  <ReportUnit>Centimeters</ReportUnit>
  <ReportVersion>2013.3.1800</ReportVersion>
  <Script>using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using System.Text;
using System.Text.RegularExpressions;
using System.Globalization;
using Stimulsoft.Controls;
using Stimulsoft.Base.Drawing;
using Stimulsoft.Report;
using Stimulsoft.Report.Dialogs;
using Stimulsoft.Report.Components;
using Stimulsoft.Report.Dictionary;
using System.Collections.Generic;

namespace Reports
{
    
    public class Report : Stimulsoft.Report.StiReport
    {
		List&lt;string&gt; PupilIDs = new List&lt;string&gt;();
		
	/*	public IEnumerable&lt;DateTime&gt; EachDay(DateTime from, DateTime thru)
		{
			for (var day = from.Date; day.Date &lt;= thru.Date; day = day.AddDays(1))
				yeild return day;
		}*/
		
		private decimal totalPossAttend()
		{
			decimal yearTotal = (decimal)MainData.SessionsThisYear;
			decimal totalAbsences = (decimal)MainData.Absents;
			
		//	decimal Presents = yearTotal - totalAbsences;
			
		//	decimal SessionsLeftThiYear = (decimal)MainData.SessionsLeftThiYear;
			
			decimal RtnDec = yearTotal &gt; 0 ? (((yearTotal - totalAbsences) / yearTotal))*100 : 0m; 			
		//	decimal RtnDec = SessionsLeftThiYear &gt; 0 ? ((MainData.Presents / SessionsLeftThiYear))*100 : 0m; 
		//	return RtnStr + "   "  + Absents + "   " + PossAbsents + "   " + yearTotal;
			return RtnDec;			
		}
		
		//Populate SchoolTerm and SchoolYear variables with year and term from Form1 lookupbox.
		private void getYearTermString()
		{
			string bctString = lub_SchoolYear.SelectedItem.ToString();
			SchoolYearString = bctString.Substring(0,4);
			Int32.TryParse(SchoolYearString, out SchoolYearInt);
			string[] bctList = bctString.Split('~');
			SchoolTerm = bctList[1].Trim();			
		}
		
		
		private string getPupilIDs()
		{
			storeData();
			return String.Join(",", PupilIDs.ToArray());
		}

		private void storeData()
		{
			if (PupilIDs.Count == 0 || (PupilIDs.Count == 1 &amp;&amp; PupilIDs[0] != MainData.PupilID))
			{
				PupilIDs.Clear();
				if (MainData.DataTable != null)
				{
					if (MainData.DataTable.Columns.Count &gt; 0)
					{
						foreach (DataRow row in MainData.DataTable.Rows)
						{
							if (!PupilIDs.Contains(row["PupilID"].ToString()))
								PupilIDs.Add(row["PupilID"].ToString());
						}
					}
				}
			}
		}
        #region Date Functions
		
        public int Compare(DateTime Value, DateTime ComparedTo)
        {
            return Value.CompareTo(ComparedTo);
        }
        public bool Equals(DateTime Value, DateTime ComparedTo)
        {
            return Compare(Value, ComparedTo) == 0;
        }
        public bool Equals(DateTime Value, string ComparedTo)
        {
            try
            {
                return Equals(Value, System.Convert.ToDateTime(ComparedTo));
            }
            catch
            {
                return false;
            }
        }
        public bool LessThan(DateTime Value, DateTime ComparedTo)
        {
            return Compare(Value, ComparedTo) &lt; 0;
        }
        public bool LessThan(DateTime Value, string ComparedTo)
        {
            try
            {
                return LessThan(Value, System.Convert.ToDateTime(ComparedTo));
            }
            catch
            {
                return false;
            }
        }
        public bool GreaterThan(DateTime Value, DateTime ComparedTo)
        {
            return Compare(Value, ComparedTo) &gt; 0;
        }
        public bool GreaterThan(DateTime Value, string ComparedTo)
        {
            try
            {
                return GreaterThan(Value, System.Convert.ToDateTime(ComparedTo));
            }
            catch
            {
                return false;
            }
        }
        public bool LessThanOrEqualTo(DateTime Value, DateTime ComparedTo)
        {
            return Compare(Value, ComparedTo) &lt;= 0;
        }
        public bool LessThanOrEqualTo(DateTime Value, string ComparedTo)
        {
            try
            {
                return LessThanOrEqualTo(Value, System.Convert.ToDateTime(ComparedTo));
            }
            catch
            {
                return false;
            }
        }
        public bool GreaterThanOrEqualTo(DateTime Value, DateTime ComparedTo)
        {
            return Compare(Value, ComparedTo) &gt;= 0;
        }
        public bool GreaterThanOrEqualTo(DateTime Value, string ComparedTo)
        {
            try
            {
                return GreaterThanOrEqualTo(Value, System.Convert.ToDateTime(ComparedTo));
            }
            catch
            {
                return false;
            }
        }
        public int DayAsNumber(DateTime Value)
        {
            return Value.Day;
        }
        public int MonthAsNumber(DateTime Value)
        {
            return Value.Month;
        }
        public int YearAsNumber(DateTime Value)
        {
            return Value.Year;
        }
        public int DayOfWeekAsNumber(DateTime Value)
        {
            return (int)Value.DayOfWeek;
        }
        public string DayOfWeekAsShortText(DateTime Value)
        {
            return Value.ToString("ddd");
        }
        public string DayOfWeekAsLongText(DateTime Value)
        {
            return Value.ToString("dddd");
        }
        public string MonthAsShortText(DateTime Value)
        {
            return Value.ToString("MMM");
        }
        public string MonthAsLongText(DateTime Value)
        {
            return Value.ToString("MMMM");
        }
        public DateTime MakeDate(int Year, int Month, int Day)
        {
            try
            {
                return new DateTime(Year,Month, Day);
            }
            catch
            {
                return new DateTime();
            }
        }
		
		#endregion

        #region String Functions
		
        public int Compare(string Value, string ComparedTo)
        {
            return Value.ToUpper().CompareTo(ComparedTo.ToUpper());
        }
        public bool Equals(string Value, string ComparedTo)
        {
            return Compare(Value, ComparedTo) == 0;
        }
        public bool LessThan(string Value, string ComparedTo)
        {
            return Compare(Value, ComparedTo) &lt; 0;
        }
        public bool GreaterThan(string Value, string ComparedTo)
        {
            return Compare(Value, ComparedTo) &gt; 0;
        }
        public bool LessThanOrEqualTo(string Value, string ComparedTo)
        {
            return Compare(Value, ComparedTo) &lt;= 0;
        }
        public bool GreaterThanOrEqualTo(string Value, string ComparedTo)
        {
            return Compare(Value, ComparedTo) &gt;= 0;
        }
        public bool Contains(string Value, string LookFor)
        {
            return Value.ToUpper().IndexOf(LookFor.ToUpper()) != -1;
        }
		
		#endregion

        #region Boolean Functions
		
        public int Compare(bool Value, bool ComparedTo)
        {
            return Value.CompareTo(ComparedTo);
        }
        public bool Equals(bool Value, bool ComparedTo)
        {
            return Compare(Value, ComparedTo) == 0;
        }
        public bool Equals(bool Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToBoolean(ComparedTo)) == 0;
            }
            catch
            {
                return false;
            }
        }
		
		#endregion

        #region Double Functions
		
        public int Compare(double Value, double ComparedTo)
        {
            return Value.CompareTo(ComparedTo);
        }
        public bool Equals(double Value, double ComparedTo)
        {
            return Compare(Value, ComparedTo) == 0;
        }
        public bool LessThan(double Value, double ComparedTo)
        {
            return Compare(Value, ComparedTo) &lt; 0;
        }
        public bool GreaterThan(double Value, double ComparedTo)
        {
            return Compare(Value, ComparedTo) &gt; 0;
        }
        public bool LessThanOrEqualTo(double Value, double ComparedTo)
        {
            return Compare(Value, ComparedTo) &lt;= 0;
        }
        public bool GreaterThanOrEqualTo(double Value, double ComparedTo)
        {
            return Compare(Value, ComparedTo) &gt;= 0;
        }
        public bool Equals(double Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToDouble(ComparedTo)) == 0;
            }
            catch
            {
                return false;
            }
        }
        public bool LessThan(double Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToDouble(ComparedTo)) &lt; 0;
            }
            catch
            {
                return false;
            }
        }
        public bool GreaterThan(double Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToDouble(ComparedTo)) &gt; 0;
            }
            catch
            {
                return false;
            }
        }
        public bool LessThanOrEqualTo(double Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToDouble(ComparedTo)) &lt;= 0;
            }
            catch
            {
                return false;
            }
        }
        public bool GreaterThanOrEqualTo(double Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToDouble(ComparedTo)) &gt; 0;
            }
            catch
            {
                return false;
            }
        }
		
		#endregion

        #region Int Functions
		
        public int Compare(int Value, int ComparedTo)
        {
            return Value.CompareTo(ComparedTo);
        }
        public bool Equals(int Value, int ComparedTo)
        {
            return Compare(Value, ComparedTo) == 0;
        }
        public bool LessThan(int Value, int ComparedTo)
        {
            return Compare(Value, ComparedTo) &lt; 0;
        }
        public bool GreaterThan(int Value, int ComparedTo)
        {
            return Compare(Value, ComparedTo) &gt; 0;
        }
        public bool LessThanOrEqualTo(int Value, int ComparedTo)
        {
            return Compare(Value, ComparedTo) &lt;= 0;
        }
        public bool GreaterThanOrEqualTo(int Value, int ComparedTo)
        {
            return Compare(Value, ComparedTo) &gt;= 0;
        }
        public bool Equals(int Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToInt32(ComparedTo)) == 0;
            }
            catch
            {
                return false;
            }
        }
        public bool LessThan(int Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToInt32(ComparedTo)) &lt; 0;
            }
            catch
            {
                return false;
            }
        }
        public bool GreaterThan(int Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToInt32(ComparedTo)) &gt; 0;
            }
            catch
            {
                return false;
            }
        }
        public bool LessThanOrEqualTo(int Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToInt32(ComparedTo)) &lt;= 0;
            }
            catch
            {
                return false;
            }
        }
        public bool GreaterThanOrEqualTo(int Value, string ComparedTo)
        {
            try
            {
                return Compare(Value, System.Convert.ToInt32(ComparedTo)) &gt; 0;
            }
            catch
            {
                return false;
            }
        }
		
		#endregion

        #region String Functions
		
        public string Uppercase(string Value)
        {
            return Value.ToUpper();
        }
        public string Lowercase(string Value)
        {
            return Value.ToLower();
        }
        public string Mid(string Value, int Start, int Length)
        {
            return Value.Substring(Start, Length);
        }
        public string Left(string Value, int Length)
        {
            return Value.Substring(0, Length);
        }
        public string Right(string Value, int Length)
        {
            try
            {
                return Value.Substring(Value.Length - Length);
            }
            catch
            {
                return Value;
            }
        }
        public bool NumericText(string Value)
        {
            try
            {
                System.Convert.ToDouble(Value);
                return true;
            }
            catch
            {
                return false;
            }
        }
        public string Trim(string Value)
        {
            return Value.Trim();
        }
        public string Replace(string Value, string LookFor, string ReplaceWith)
        {
            return Value.Replace(LookFor, ReplaceWith);
        }
        public string Remove(string Value, string RemoveText)
        {
            return Value.Replace(RemoveText, "");
        }
		public string DropRightLetters(string Value, int Letters)
		{
			return Value.Substring(0,Value.Length-Letters);
		}
		
		#endregion

        #region Other Functions
		
        public bool ContainsRecords(StiDataSource Source)
        {
            return !Source.IsEmpty;
        }
        public int RowCount(StiDataSource Source)
        {
            return Source.Count;
        }
        public object DefaultIfNull(StiDataSource Source, string FieldName)
        {
            if (Source[FieldName] is System.DBNull)
            {
                if (Source.Columns[FieldName].Type == typeof(DateTime))
                {
                    return System.Convert.ToDateTime("01/01/1800");
                }
                else if (Source.Columns[FieldName].Type == typeof(string))
                {
                    return "";
                }
                else if (Source.Columns[FieldName].Type == typeof(Int32))
                {
                    return 0;
                }
                else if (Source.Columns[FieldName].Type == typeof(double))
                {
                    return 0.0;
                }
                else if (Source.Columns[FieldName].Type == typeof(decimal))
                {
                    return 0.0;
                }
                else if (Source.Columns[FieldName].Type == typeof(bool))
                {
                    return false;
                }
                else
                {
                    return null;
                }
            }
            else
            {
                return Source[FieldName];
            }
        }
		
		public string FormatAge(DateTime start, DateTime end, bool ShowYears, bool ShowMonths, bool ShowDays)
        {

            // Compute the difference between start

            //year and end year.

            DateTime savedStart = start;
            DateTime savedEnd = end;
            TimeSpan spn;
			string res = string.Empty;
            int years = end.Year - start.Year;
            int months = 0;
            int days = 0;

            // Check if the last year was a full year.
            if (end &lt; start.AddYears(years) &amp;&amp; years != 0)
            {
                --years;
            }

            start = start.AddYears(years);

            // Now we know start &lt;= end and the diff between them
            // is &lt; 1 year.
            if (start.Year == end.Year)
            {
                months = end.Month - start.Month;
            }
            else
            {
                months = (12 - start.Month) + end.Month;
            }

            // Check if the last month was a full month.
            if (end &lt; start.AddMonths(months) &amp;&amp; months != 0)
            {
                --months;
            }

            start = start.AddMonths(months);

            // Now we know that start &lt; end and is within 1 month
            // of each other.
            days = (end - start).Days;
			
			if (ShowYears)
			{
				res = years + " years ";
			}

			if ((ShowMonths) &amp;&amp; (ShowDays))
			{
				res += months + " months " + days + " days";
			}
			else if ((ShowMonths) &amp;&amp; !(ShowDays))
			{
				res += months + " months ";
			}
			else if (!(ShowMonths) &amp;&amp; (ShowDays))
			{
				res += days + " days";
			} 
			else
			{
				spn = savedEnd - savedStart;
				days = System.Convert.ToInt32(spn.TotalDays);
			}

            return res;

        }				
		public bool IsValueNull(object Value)
		{
			return (Value == null || Value is System.DBNull);			
		}
		
		#endregion
				
        
        public Report()
        {
            this.InitializeComponent();
        }
		
        #region StiReport Designer generated code - do not modify
		#endregion StiReport Designer generated code - do not modify
    }
}</Script>
  <ScriptLanguage>CSharp</ScriptLanguage>
  <Styles isList="true" count="0" />
</StiSerializer>