Here is a query I've used to create a collection that will show me computers by name that have X software installed. Keep in mind that this query will not translate directly to a report query, because the altiris app inserts a conversion layer between you and the SQL you need to get the data (

).
To create the report, you need to discover how the software is reporting itself to Altiris, and then set your reporting parameter accordingly. You will probably need 1 report or collection per application you are looking for, to keep things simple.
Anyway, here's the query I've used to create a collection based on the presence of an application on the computer. The bolded portions are where you need to modify it to fit your environment. If I recall correctly, the GUID should be the GUID for "all computers."
Create a clone of the "all computers" collection, and modify the query like below to include a search for the software.
************************
SELECT DISTINCT
d.[Domain],
d.[Name],
a1.[Manufacturer],
a1.[ProductName],
a1.[ProductVersion]
FROM dbo.Inv_AeX_SW_Audit_Software a1
JOIN dbo.Inv_AeX_AC_Identification d
ON a1._ResourceGuid = d.[_ResourceGuid]
LEFT JOIN dbo.CollectionMembership cm
ON cm.ResourceGuid = d.[_ResourceGuid]
LEFT JOIN dbo.vCollection it
ON it.Guid = cm.CollectionGuid
WHERE 1 = 1
AND lower(d.[Domain]) like lower('%Domain%')
AND lower(d.[Name]) like lower('%Computer name%')
AND it.[Guid] LIKE
(CASE
WHEN REPLACE(REPLACE('%Collection%','{',''),'}','') = '
200694C3-9D8A-4db6-8D19-68590D1AAA75' THEN '%'
ELSE REPLACE(REPLACE('%Collection%','{',''),'}','')
END)
AND a1._ResourceGuid like '%Resource guid%'
AND (
a1.Manufacturer = 'Faronics Corporation')
ORDER BY
d.[Domain],
d.[Name],
a1.[Manufacturer],
a1.[ProductName],
a1.[ProductVersion]