Lists software update compliance by computer, classification and severity. Note: Only updates present in the SCCM database are displayed. This affects both the installed and required update information displayed. Default exclusions are for antivirus definitions. Popovici Ioan @ SCCM-Zone.com 0 /ConfigMgr_A01/{5C6358F2-4BB6-4a1b-A16E-8D96795D8602} None 33f94ec3-1e39-4466-a6ee-65619da20a87 DataSource =Parameters!Locale.Value =Parameters!UserSIDs.Value =Parameters!CollectionID.Value =Parameters!ShowInstalled.Value =Parameters!ExcludeUpdates.Value /* .SYNOPSIS Gets the software update compliance in SCCM. .DESCRIPTION Gets the software update compliance in SCCM by computer, classification and severity. .NOTES Created by Ioan Popovici 2018-10-11 Release notes https://github.com/Ioan-Popovici/SCCMZone/blob/master/Reporting/Updates/SU%20Compliance%20by%20Computer%20Classification%20and%20Severity/CHANGELOG.md This query is part of a report should not be run separately. .LINK https://SCCM-Zone.com .LINK https://github.com/Ioan-Popovici/SCCMZone */ /*##=============================================*/ /*## QUERY BODY */ /*##=============================================*/ /* Testing variables !! Need to be commented for Production !! */ --DECLARE @UserSIDs AS NVARCHAR(10) = 'Disabled'; --DECLARE @CollectionID AS NVARCHAR(10) = 'A010000A'; --DECLARE @Locale AS INT = '2'; --DECLARE @ShowInstalled AS INT = '0'; --DECLARE @ExcludeUpdates AS NVARCHAR(250) = '915597,2267602,2461484' --AV Definitions /* Variable declaration */ DECLARE @LCID AS INT = dbo.fn_LShortNameToLCID (@Locale) /* Initialize ClientState descriptor table */ DECLARE @ClientState TABLE ( BitMask int , StateName NVARCHAR(250) ) /* Populate ClientState table */ INSERT INTO @ClientState (BitMask, StateName) VALUES ('0', 'No Reboot'), ('1', 'Configuration Manager'), ('2', 'File Rename'), ('4', 'Windows Update'), ('8', 'Add or Remove Feature') /* Initialize SystemsInfo table */ DECLARE @SystemsInfo TABLE ( ResourceID INT , ComputerName NVARCHAR(250) , UserName NVARCHAR(250) , OperatingSystem NVARCHAR(250) , OSBuild NVARCHAR(250) , OSVersion NVARCHAR(250) , Domain NVARCHAR(250) , IPAddresses NVARCHAR(250) , LastBootTime NVARCHAR(250) , PendingRestart NVARCHAR(250) , Managed NVARCHAR(5) , ClientState NVARCHAR(20) , ClientVersion NVARCHAR(250) , LastUpdateScan NVARCHAR(250) ) /* Initialize UpdateInfo table */ DECLARE @UpdateInfo TABLE ( ResourceID INT , ComplianceStatus NVARCHAR(250) , Classification NVARCHAR(250) , Severity NVARCHAR(250) , ArticleID NVARCHAR(250) , BulletinID NVARCHAR(250) , DisplayName NVARCHAR(250) , DateRevised NVARCHAR(250) , IsDeployed NVARCHAR(5) , IsEnabled NVARCHAR(5) ) /* Get systems data */ INSERT INTO @SystemsInfo (ResourceID, ComputerName, UserName, OperatingSystem, OSBuild, OSVersion, Domain, IPAddresses, LastBootTime, PendingRestart, Managed, ClientState, ClientVersion, LastUpdateScan) SELECT ResourceID = Computers.ResourceID , ComputerName = Computers.Netbios_Name0 , UserName = CONCAT(Computers.User_Domain0 + '\', Computers.User_Name0) --Add user domain to UserName , OperatingSystem = CASE WHEN OperatingSystem.Caption0 <> '' THEN CONCAT( REPLACE(OperatingSystem.Caption0, 'Microsoft ', ''), --Remove 'Microsoft ' from OperatingSystem REPLACE(OperatingSystem.CSDVersion0, 'Service Pack ', ' SP') --Replace 'Service Pack ' with ' SP' in OperatingSystem ) ELSE /* Workaround for systems not in GS_OPERATING_SYSTEM table */ ( CASE WHEN CombinedResources.DeviceOS LIKE '%Workstation 6.1%' THEN 'Windows 7' WHEN CombinedResources.DeviceOS LIKE '%Workstation 6.2%' THEN 'Windows 8' WHEN CombinedResources.DeviceOS LIKE '%Workstation 6.3%' THEN 'Windows 8.1' WHEN CombinedResources.DeviceOS LIKE '%Workstation 10.0%' THEN 'Windows 10' WHEN CombinedResources.DeviceOS LIKE '%Server 6.0' THEN 'Windows Server 2008' WHEN CombinedResources.DeviceOS LIKE '%Server 6.1' THEN 'Windows Server 2008R2' WHEN CombinedResources.DeviceOS LIKE '%Server 6.2' THEN 'Windows Server 2012' WHEN CombinedResources.DeviceOS LIKE '%Server 6.3' THEN 'Windows Server 2012 R2' WHEN CombinedResources.DeviceOS LIKE '%Server 10.0' THEN 'Windows Server 2016' ELSE 'Unknown' END ) END , OSBuild = Computers.Build01 , OSVersion = ( SELECT OSLocalizedNames.Value FROM fn_GetWindowsServicingLocalizedNames() AS OSLocalizedNames JOIN fn_GetWindowsServicingStates() AS OSServicingStates ON OSServicingStates.Build = Computers.Build01 WHERE OSLocalizedNames.Name = OSServicingStates.Name AND Computers.OSBranch01 = OSServicingStates.Branch --Select only the branch of the installed OS ) , Domain = Computers.Full_Domain_Name0 , IPAddresses = REPLACE( ( SELECT LTRIM(RTRIM(IP.IP_Addresses0)) AS [data()] FROM fn_rbac_RA_System_IPAddresses(@UserSIDs) AS IP WHERE IP.ResourceID = Computers.ResourceID AND IP.IP_Addresses0 NOT LIKE 'fe%' -- Exclude IPv6 FOR XML PATH('') ), ' ',', ' -- Replace space with ', ' ) , LastBootTime = OperatingSystem.LastBootUpTime0 , PendingRestart = CASE WHEN CombinedResources.ClientState = 0 THEN 'No' ELSE( STUFF( REPLACE( ( SELECT '#!' + LTRIM(RTRIM(StateName)) AS [data()] FROM @ClientState WHERE BitMask & CombinedResources.ClientState <> 0 FOR XML PATH('') ), ' #!',', ' ), 1, 2, '' ) ) END , Managed = CASE Computers.Client0 WHEN 1 THEN 'Yes' ELSE 'No' END , ClientState = ClientSummary.ClientStateDescription , ClientVersion = Computers.Client_Version0 , LastUpdateScan = UpdateScan.LastScanTime FROM fn_rbac_FullCollectionMembership(@UserSIDs) AS CollectionMembers LEFT JOIN fn_rbac_R_System(@UserSIDs) AS Computers ON Computers.ResourceID = CollectionMembers.ResourceID LEFT JOIN fn_rbac_GS_OPERATING_SYSTEM(@UserSIDs) OperatingSystem ON OperatingSystem.ResourceID = CollectionMembers.ResourceID LEFT JOIN fn_rbac_CombinedDeviceResources(@UserSIDs) AS CombinedResources ON CombinedResources.MachineID = CollectionMembers.ResourceID LEFT JOIN fn_rbac_CH_ClientSummary(@UserSIDs) AS ClientSummary ON ClientSummary.ResourceID = CollectionMembers.ResourceID LEFT JOIN fn_rbac_UpdateScanStatus(@UserSIDs) AS UpdateScan ON UpdateScan.ResourceID = CollectionMembers.ResourceID WHERE CollectionMembers.CollectionID = @CollectionID /* Get update data */ INSERT INTO @UpdateInfo (ResourceID, ComplianceStatus, Classification, Severity, ArticleID, BulletinID, DisplayName, DateRevised, IsDeployed, IsEnabled) SELECT CollectionMembers.ResourceID , ComplianceStatus = CASE ComplianceStatus.Status WHEN 0 THEN 'Unknown' WHEN 1 THEN 'Not Required' WHEN 2 THEN 'Required' WHEN 3 THEN 'Installed' END , Classification = Category.CategoryInstanceName , Severity = ISNULL(NULLIF(UpdateCIs.SeverityName, ''), 'Unknown') , ArticleID = UpdateCIs.ArticleID , BulletinID = NULLIF(UpdateCIs.BulletinID, '') , DisplayName = UpdateCIs.DisplayName , DateRevised = UpdateCIs.DateRevised , IsDeployed = CASE UpdateCIs.IsDeployed WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' END , IsEnabled = CASE UpdateCIs.IsEnabled WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' END FROM fn_rbac_ClientCollectionMembers(@UserSIDs) AS CollectionMembers INNER JOIN fn_rbac_Update_ComplianceStatus(@UserSIDs) AS ComplianceStatus ON CollectionMembers.ResourceID = ComplianceStatus.ResourceID AND ComplianceStatus.Status IN (0, 2, @ShowInstalled) --0 Unknown, 2 Required, 3 Installed INNER JOIN fn_ListUpdateCIs(@LCID) AS UpdateCIs ON ComplianceStatus.CI_ID = UpdateCIs.CI_ID AND UpdateCIs.CIType_ID IN (1, 8) --1 Software Updates, 8 Software Update Bundle (v_CITypes) AND UpdateCIs.IsExpired = 0 --Update is not Expired AND UpdateCIs.IsSuperseded = 0 --Update is not Superseeded AND UpdateCIs.ArticleID NOT IN --Exclude updates based on ArticleID ( SELECT * FROM dbo.ufn_csv_String_Parser(@ExcludeUpdates, ',') ) LEFT JOIN fn_rbac_CICategories_All(@UserSIDs) AS CICategories ON UpdateCIs.CI_ID = CICategories.CI_ID RIGHT JOIN fn_rbac_ListUpdateCategoryInstances(@LCID, @UserSIDs) AS Category ON CICategories.CategoryInstanceID = Category.CategoryInstanceID AND Category.CategoryTypeName = 'UpdateClassification' --Get only the 'UpdateClasification' category WHERE CollectionMembers.CollectionID = @CollectionID /* Join SystemsInfo and UpdateInfo data */ SELECT Managed , ComputerName , UserName , OperatingSystem , OSBuild , OSVersion , Domain , IPAddresses , LastBootTime , PendingRestart , ClientState , ClientVersion , LastUpdateScan , ComplianceStatus = /* Set Compliance based on Compliance Status Activity and LastUpdateScan */ ( CASE WHEN ComplianceStatus IS NOT NULL THEN ComplianceStatus WHEN ComplianceStatus IS NULL AND LastUpdateScan > = (SELECT DATEADD(dd, -7, CURRENT_TIMESTAMP)) --Scanned for updates in the last 7 days AND ClientState LIKE 'Active%' THEN 'Compliant' ELSE 'Unknown' END ) , Classification , Severity , ArticleID , BulletinID , DisplayName , DateRevised , IsDeployed , IsEnabled FROM @SystemsInfo AS SystemsInfo LEFT JOIN @UpdateInfo AS UpdateInfo ON UpdateInfo.ResourceID = SystemsInfo.ResourceID ORDER BY Managed , ComputerName , OperatingSystem , OSBuild , OSVersion , Domain , IPAddresses , LastBootTime , PendingRestart , ClientState , ClientVersion , LastUpdateScan , ComplianceStatus , Classification , Severity , ArticleID , BulletinID , DisplayName , DateRevised , IsDeployed , IsEnabled /*##=============================================*/ /*## END QUERY BODY */ /*##=============================================*/ true Managed System.String ComputerName System.String UserName System.String OperatingSystem System.String OSBuild System.String OSVersion System.String Domain System.String IPAddresses System.String LastBootTime System.String PendingRestart System.String ClientVersion System.String ClientState System.String LastUpdateScan System.String ComplianceStatus System.String Classification System.String Severity System.String BulletinID System.String ArticleID System.String DisplayName System.String DateRevised System.String IsDeployed System.String IsEnabled System.String DataSource =Parameters!UserTokenSIDs.Value /* Get UserSID */ SELECT dbo.fn_rbac_GetAdminIDsfromUserSIDs (@UserTokenSIDs) AS UserSIDs true UserSIDs System.String DataSource =Parameters!UserSIDs.Value /* Get Device Collections */ SELECT CollectionID, Name FROM dbo.fn_rbac_Collection(@UserSIDs) WHERE CollectionType = 2 ORDER BY Name; true CollectionID System.String Name System.String DataSource =Parameters!ReportName.Value /* ReportDescription Dataset */ SELECT DISTINCT Description FROM ReportServer.dbo.Catalog WHERE Name = @ReportName Description System.String 108.87292mm 40.08125mm 29.7625mm 17.32708mm 6.80433mm true =Fields!DisplayName.Value Classification true =SrsResources.Localization.GetString("DisplayName", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt true =Fields!DateRevised.Value Classification true =SrsResources.Localization.GetString("DateRevised", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt true =Fields!IsDeployed.Value Classification true =SrsResources.Localization.GetString("Deployed", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt true =Sum(Count(Fields!ArticleID.Value)) ComputerName true =SrsResources.Localization.GetString("Total", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 6mm true true Textbox119 SkyBlue Middle 2pt 2pt 2pt 2pt true true Textbox222 SkyBlue Middle 2pt 2pt 2pt 2pt true true Textbox223 SkyBlue Middle 2pt 2pt 2pt 2pt true true =CountDistinct(Fields!ComputerName.Value) SkyBlue Middle 2pt 2pt 2pt 2pt 6mm true true Textbox202 #e6eefc Middle 2pt 2pt 2pt 2pt true true Textbox203 #e6eefc Middle 2pt 2pt 2pt 2pt true true Textbox204 #e6eefc Middle 2pt 2pt 2pt 2pt true true Textbox205 #e6eefc Middle 2pt 2pt 2pt 2pt 6mm true true Textbox58 #e6eefc Middle 2pt 2pt 2pt 2pt 3 true true Textbox62 #e6eefc Middle 2pt 2pt 2pt 2pt 6mm true true Textbox377 #e6eefc Middle 2pt 2pt 2pt 2pt 3 true true =Count(Fields!Classification.Value) #e6eefc Middle 2pt 2pt 2pt 2pt 6.80433mm true true =Fields!DisplayName.Value #e6eefc Middle 2pt 2pt 2pt 2pt true true =Fields!DateRevised.Value #e6eefc Middle 2pt 2pt 2pt 2pt true true =Fields!IsDeployed.Value #e6eefc Middle 2pt 2pt 2pt 2pt true true Textbox26 #e6eefc Middle 2pt 2pt 2pt 2pt 6.35mm true true SkyBlue Top 2pt 2pt 2pt 2pt true true SkyBlue Top 2pt 2pt 2pt 2pt true true SkyBlue Top 2pt 2pt 2pt 2pt true true =Count(Fields!ArticleID.Value) SkyBlue Top 2pt 2pt 2pt 2pt 6.80433mm true true Textbox41 #7292cc Middle 2pt 2pt 2pt 2pt true true Textbox49 #7292cc Middle 2pt 2pt 2pt 2pt true true Textbox45 #7292cc Middle 2pt 2pt 2pt 2pt true true =CountDistinct(Fields!ComputerName.Value) #7292cc Middle 2pt 2pt 2pt 2pt 19.44375mm true true =SrsResources.Localization.GetString("Managed", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 41.36434mm true =Fields!ComputerName.Value ComputerName true =SrsResources.Localization.GetString("ComputerName", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 31.63904mm true =Fields!UserName.Value ComputerName true =SrsResources.Localization.GetString("User", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 50.18781mm true true =Fields!OperatingSystem.Value ComputerName true =SrsResources.Localization.GetString("OperatingSystem", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 19.17917mm true =Fields!OSBuild.Value ComputerName true =SrsResources.Localization.GetString("Build", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 22.35416mm true =Fields!OSVersion.Value ComputerName true =SrsResources.Localization.GetString("Version", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 32.14375mm true =Fields!Domain.Value ComputerName true =SrsResources.Localization.GetString("Domain", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 33.20208mm true =Fields!IPAddresses.Value ComputerName true =SrsResources.Localization.GetString("IP Addresses", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 26.45209mm true =Fields!LastBootTime.Value ComputerName true =SrsResources.Localization.GetString("Last Boot Time", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 43.78542mm true =Fields!PendingRestart.Value ComputerName true =SrsResources.Localization.GetString("PendingRestart", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 25mm true =Fields!ClientVersion.Value ComputerName true =SrsResources.Localization.GetString("ClientVersion", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 31.61458mm true =Fields!ClientState.Value ComputerName true =SrsResources.Localization.GetString("ClientState", User!Language) Textbox173 #4c68a2 Middle 2pt 2pt 2pt 2pt 33.46667mm true =Fields!LastUpdateScan.Value ComputerName true =SrsResources.Localization.GetString("Last Update Scan", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 25mm true =Fields!ComplianceStatus.Value ComputerName true =SrsResources.Localization.GetString("Status", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 36.1125mm true =Fields!Classification.Value Classification true =SrsResources.Localization.GetString("Classification", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 22.80085mm true =Fields!Severity.Value Classification true =SrsResources.Localization.GetString("Severity", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt 22.08959mm true =Fields!ArticleID.Value Classification true =SrsResources.Localization.GetString("ArticleID", User!Language) #4c68a2 Middle 2pt 2pt 2pt 2pt =Fields!Managed.Value =Fields!Managed.Value 19.44375mm true true =Fields!Managed.Value SkyBlue Top 2pt 2pt 2pt 2pt 41.36434mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 31.63904mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 50.18781mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 19.17917mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 22.35416mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 32.14375mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 33.20208mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 26.45209mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 43.78542mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 25mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 31.61458mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 33.46667mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 25mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 36.1125mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 22.80085mm true true SkyBlue Middle 2pt 2pt 2pt 2pt 22.08959mm true true SkyBlue Middle 2pt 2pt 2pt 2pt After =Fields!ComputerName.Value =Fields!ComputerName.Value =Fields!UserName.Value =Fields!OperatingSystem.Value =Fields!OSBuild.Value =Fields!OSVersion.Value =Fields!Domain.Value =Fields!IPAddresses.Value =Fields!LastBootTime.Value =Fields!PendingRestart.Value =Fields!ClientVersion.Value =Fields!ClientState.Value 41.36434mm true true =Fields!ComputerName.Value #e6eefc Top 2pt 2pt 2pt 2pt =Fields!UserName.Value 31.63904mm true true =Fields!UserName.Value #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!OperatingSystem.Value =Fields!OperatingSystem.Value 50.18781mm true =Fields!OperatingSystem.Value #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!OSBuild.Value =Fields!OSBuild.Value 19.17917mm true true =Fields!OSBuild.Value #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!OSVersion.Value =Fields!OSVersion.Value 22.35416mm true true =Fields!OSVersion.Value #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!Domain.Value =Fields!Domain.Value 32.14375mm true true =Fields!Domain.Value #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!IPAddresses.Value =Fields!IPAddresses.Value 33.20208mm true true =REPLACE(Fields!IPAddresses.Value,", ",CHR(10)) #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!LastBootTime.Value =Fields!LastBootTime.Value 26.45209mm true true =Fields!LastBootTime.Value #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!PendingRestart.Value =Fields!PendingRestart.Value 43.78542mm true true =REPLACE(Fields!PendingRestart.Value,", ",CHR(10)) #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!ClientVersion.Value =Fields!ClientVersion.Value 25mm true true =Fields!ClientVersion.Value #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!ClientState.Value =Fields!ClientState.Value 31.61458mm true true =Fields!ClientState.Value ClientState #e6eefc Middle 2pt 2pt 2pt 2pt =Fields!LastUpdateScan.Value =Fields!LastUpdateScan.Value 33.46667mm true true =Fields!LastUpdateScan.Value #e6eefc Middle 2pt 2pt 2pt 2pt 25mm true true =IIF(Fields!ComplianceStatus.Value = "Compliant", "Compliant", (IIF(Fields!Managed.Value = "No", "Unknown", ""))) Textbox198 #e6eefc Middle 2pt 2pt 2pt 2pt 36.1125mm true true #e6eefc Middle 2pt 2pt 2pt 2pt 22.80085mm true true #e6eefc Middle 2pt 2pt 2pt 2pt 22.08959mm true true #e6eefc Middle 2pt 2pt 2pt 2pt After =Fields!ComplianceStatus.Value =Fields!ComplianceStatus.Value 25mm true true =Fields!ComplianceStatus.Value #e6eefc Middle 2pt 2pt 2pt 2pt 81.00294mm true true #e6eefc Middle 2pt 2pt 2pt 2pt After =Fields!Classification.Value =Fields!Classification.Value 36.1125mm true true =Fields!Classification.Value #e6eefc Middle 2pt 2pt 2pt 2pt 44.89044mm true true #e6eefc Middle 2pt 2pt 2pt 2pt After 22.80085mm true true =Fields!Severity.Value #e6eefc Middle 2pt 2pt 2pt 2pt 22.08959mm true true =Fields!ArticleID.Value #e6eefc Middle 2pt 2pt 2pt 2pt true TV_Classification true TV_ComplianceStatus =IIf((Fields!Managed.Value="No" OR Fields!ComplianceStatus.Value = "Compliant" ), True, False) 41.36434mm true true SkyBlue Top 2pt 2pt 2pt 2pt 31.63904mm true true SkyBlue Top 2pt 2pt 2pt 2pt 50.18781mm true true true SkyBlue Top 2pt 2pt 2pt 2pt 19.17917mm true true SkyBlue Top 2pt 2pt 2pt 2pt 22.35416mm true true SkyBlue Top 2pt 2pt 2pt 2pt 32.14375mm true true SkyBlue Top 2pt 2pt 2pt 2pt 33.20208mm true true SkyBlue Top 2pt 2pt 2pt 2pt 26.45209mm true true SkyBlue Top 2pt 2pt 2pt 2pt 43.78542mm true true SkyBlue Top 2pt 2pt 2pt 2pt 25mm true true SkyBlue Top 2pt 2pt 2pt 2pt 31.61458mm true true SkyBlue Top 2pt 2pt 2pt 2pt 33.46667mm true true SkyBlue Top 2pt 2pt 2pt 2pt 25mm true true SkyBlue Top 2pt 2pt 2pt 2pt 36.1125mm true true SkyBlue Top 2pt 2pt 2pt 2pt 22.80085mm true true SkyBlue Top 2pt 2pt 2pt 2pt 22.08959mm true true SkyBlue Top 2pt 2pt 2pt 2pt true TV_Managed 19.44375mm true true Total #7292cc Middle 2pt 2pt 2pt 2pt 41.36434mm true true #7292cc Middle 2pt 2pt 2pt 2pt 31.63904mm true true #7292cc Middle 2pt 2pt 2pt 2pt 50.18781mm true true true #7292cc Middle 2pt 2pt 2pt 2pt 19.17917mm true true #7292cc Middle 2pt 2pt 2pt 2pt 22.35416mm true true #7292cc Middle 2pt 2pt 2pt 2pt 32.14375mm true true #7292cc Middle 2pt 2pt 2pt 2pt 33.20208mm true true #7292cc Middle 2pt 2pt 2pt 2pt 26.45209mm true true #7292cc Middle 2pt 2pt 2pt 2pt 43.78542mm true true #7292cc Middle 2pt 2pt 2pt 2pt 25mm true true #7292cc Middle 2pt 2pt 2pt 2pt 31.61458mm true true #7292cc Middle 2pt 2pt 2pt 2pt 33.46667mm true true #7292cc Middle 2pt 2pt 2pt 2pt 25mm true true #7292cc Middle 2pt 2pt 2pt 2pt 36.1125mm true true #7292cc Middle 2pt 2pt 2pt 2pt 22.80085mm true true #7292cc Middle 2pt 2pt 2pt 2pt 22.08959mm true true #7292cc Middle 2pt 2pt 2pt 2pt true true UpdateAndComputerData 13.39607mm 0.9525mm 50.76299mm 711.87955mm 1.47018in 8.34071in 0.4in true true =SrsResources.Localization.GetString("Description", User!Language) 2pt 2pt 2pt 2pt true true =SrsResources.Localization.GetString(Fields!Description.Value, User!Language) 5pt 2pt 2pt 2pt ReportDescription 0.03157in 0.127cm 0.4in 9.81089in 1 0.45796in 0.0375in 0in 28.02675in 2 1.5pt White 1.5pt White 1.5pt White 1.5pt White 1.5pt 6.41591cm #6e7b8b 71.4155cm 2.5333cm true true 0.6007in 0.0375in 0in 28.02675in 0.75pt White 0.75pt White 0.75pt White 0.75pt White 0.75pt true true =SrsResources.Localization.GetString(Globals!ReportName, User!Language) 1.63513cm 0.12701cm 0.89817cm 24.91965cm 1 Middle 2pt 2pt 2pt 2pt #6e7b8b 0.82022cm true true true true ="Page: " + Globals!PageNumber.ToString() + "of " + Globals!TotalPages.ToString() 0.03528cm 0.03175cm 0.63492cm 2.79292cm #6e7b8b 29.7cm 21cm 2.54cm 2.54cm 2.54cm 2.54cm 1.27cm