A very easy way is using the logon / logoff records or the already created report for 'users profiles across multiple machines' (Reports-->Discovery and Inventory-->Windows-->User-->) that should be inventoried.
If not all machines are showing up in the report you talked about i beleive the filter for that report is machines with inventory. This would possibly point that some of the machines aren't reporting back with inventory information. I got around this problem by creating a filter for machines that dont have an inventory and then forcing a task to run a full inventory on the machines that are in that filter.
For a simple Logon Logoff list you can use: %LOUSERNAME% is a parameter i setup so i can easily search for specific users.
SELECT cid.[Name] Computer
,(LO.[Domain] + '\' + LO.[User]) [User]
,LO.[Login Time]
,LO.[Time] [Logout Time]
,CONVERT(decimal(10,2),ROUND((LO.[Duration]/60.0),2)) [Duration In Hours]
,LO.[Duration]
FROM [Altiris_CMDB7].[dbo].[Evt_AeX_Client_LogOn] LO
JOIN Inv_AeX_AC_Identification cid ON cid._ResourceGuid = LO._ResourceGuid
WHERE [User] LIKE '%LOUSERNAME%'
AND [LO].[Event] = 'Logoff'
ORDER BY LO.[Login Time] DESC