For CE9, I used a csp page that outputs to a table detailing the report name, report path, how many instances, and the average runtime. I believe CE10 will use similar syntax. The code could be altered to ouput in XML format which a report could be created against.
<HTML>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=charset=UTF-8">
<BODY>
<%
Dim SessionManager
Set SessionManager=Server.CreateObject("CrystalEnterprise.SessionMgr")
Dim Sess
Set Sess = SessionManager.Logon(login, password,CEserver, "secEnterprise")
Dim IStore
Set IStore = Sess.Service ("", "InfoStore")
Dim rundate
Dim rundate2
rundate = DateAdd("d",-1,Date)
rundate2 = DatePart("yyyy",rundate) & "." & DatePart("m",rundate) & "." & DatePart("d",rundate)
Dim holdprop
'Next we create a query
Dim Rs: Set rs = IStore.Query("SELECT SI_ID, SI_NAME, SI_UPDATE_TS, SI_CREATION_TIME FROM CI_INFOOBJECTS WHERE SI_PROGID = 'CrystalEnterprise.Report' " &_
"AND SI_INSTANCE = 0")
HTMLTable="<table border=0 width = ""100%""><TR><TD><B>ID</B></TD><TD><B>Name</B></TD>" & _
"<TD><B>Last Run TS</B></TD><TD><B>Last Update TS </B></TD>" &_
"<TD><B>Path</B></TD><TD><B>Instances</B></TD> " & _
"<TD><B>Recurring Instances</B></TD> " & _
"<TD><B>Avg Runtime</B></TD></TR>"
'and then loop thru the result set of Rs
For Each rsRow in Rs
'Add the instance name and details to the table.
'Ensure that each name is a link to the viewer.
HTMLTable=HTMLTable & _
"<TR valign=top><TD>" & rsRow.Properties("SI_ID") & "</A></TD>" & _
"<TD>" & rsRow.Properties("SI_NAME") & "</A></TD>" & _
"<TD>" & rsRow.Properties("SI_UPDATE_TS") & "</A></TD>" & _
"<TD>" & rsRow.Properties("SI_CREATION_TIME") & "</TD>"
'**************************************************************************
'Get the path
'**************************************************************************
Dim path
path = ""
Dim parentfolderid
parentfolderid = rsrow.ParentID
Dim tempobj
Set tempobj = iStore.Query("SELECT SI_ID, SI_NAME, SI_PARENTID FROM CI_INFOOBJECTS WHERE SI_ID=" & parentFolderID)
parentfolderid = tempObj.Item(1).ParentID
path = "/" + tempObj.Item(1).Title + path
Do While parentFolderID <> 0
Set tempObj = iStore.Query("SELECT SI_PATH, SI_NAME FROM CI_INFOOBJECTS WHERE SI_ID=" & parentFolderID)
path = "/" + tempObj.Item(1).Title + path
parentFolderId = tempObj.Item(1).parentid
Loop
path = "Home" & path
HTMLTable = HTMLTable & "<TD>" & Server.HTMLEncode(path) & "</TD>"
'**************************************************************************
'Get a count and avg runtime of the instances
'**************************************************************************
Set tempobj = iStore.Query("SELECT * FROM CI_INFOOBJECTS WHERE SI_PARENTID = " & rsRow.Properties("SI_ID") & _
" AND SI_INSTANCE = 1 AND SI_RUNNABLE_OBJECT = 0" )
Dim counter
Dim runtimetotal
Dim runtime
Dim rsRow2
counter = 0
runtime = 0
runtimetotal = 0
For each rsRow2 in tempobj
counter = counter + 1
runtimetotal = runtimetotal + (rsRow2.Properties("SI_ENDTIME") - rsRow2.Properties("SI_STARTTIME"))
Next
HTMLTable = HTMLTable & "<TD>" & counter & "</TD>"
'Convert total runtime to minutes
runtimetotal = runtimetotal *60 *24
'Calculate runtime
If counter <> 0 Then
runtime = runtimetotal/counter
End If
'**************************************************************************
'Get a count of the recurring instances
'**************************************************************************
Set tempobj = iStore.Query("SELECT * FROM CI_INFOOBJECTS WHERE SI_PARENTID = " & rsRow.Properties("SI_ID") & _
" AND SI_INSTANCE = 1 AND SI_RECURRING = 1" )
counter = 0
For each rsRow2 in tempobj
counter = counter + 1
Next
HTMLTable = HTMLTable & "<TD>" & counter & "</TD>"
HTMLTable = HTMLTable & "<TD>" & runtime & "</TD></TR>"
Next
HTMLTable=HTMLTable&"</table>"
Response.Write HTMLTable
%>
</BODY>
</HTML>