Programmer's Guide:
Using Dashboard Page Objects
Dashboard page items can be created in any eRoom itembox and can summarize
1 or more source items of the same type. Dashboard results can be retrieved
Dashboard Pages as well as from Project Schedules, Databases and Calendars
items directly using the GetDashboardResults() method.
The following example will create a dashboard page item that summarized
all calendars in the facility.
Example 1 (VBScript):
’r;Create a dashboard for all calendars in the facility
and display the events
Sub CalendarDashboardCreateAndGetResults(room)
Dim dashboarditem
Set dashboarditem=CreateMyAllCalendarsDashboard(room.HomePage)
CalendarDashboardShowResults dashboarditem
End Sub
’r;Create a dashboard for all calendars in the facility
Function CreateMyAllCalendarsDashboard(initem)
Dim dashboard
’r;Create a dashboard page.
Note that Source argument is erItemTypeCalendarPage meaning all calendars.
Set dashboard = initem.CreateDashboardPage("Dashboard
of Calendars", "My Example Dashboard is based all calendars
from this facility", erFormatPlainText, erItemTypeCalendarPage, 0)
’r;NOTE: There are no dashboard
operators defined for calendars (default returns events themselves)
set CreateMyAllCalendarsDashboard
=dashboard
End Function
Sub CalendarDashboardShowResults (item)
Dim dashboard, dashboardresults
Set dashboard = item
’r;Get the dashboard results
(for calendars, that’s this weeks events)
Set dashboardresults = dashboard.GetDashboardResults()
Response.Write "DashboardResults.ResultCount="
+ CStr(dashboardresults.ResultCount)
’r;Use ::GetFirst() and ::GetNext()
methods to enumerate results
Dim srcitem, dashrow
Set dashrow = dashboardresults.GetFirst()
While Not (dashrow Is Nothing)
’r;::SourceItem
property identifies the calendar event
Set srcitem
= dashrow.sourceitem
Dim calevent
Set calevent
= srcitem
Response.Write
CStr(calevent.Date) + calevent.Name
’r;Get
next result row
Set dashrow
= dashboardresults.GetNext()
Wend
End Sub
The following example creates a dashboard for a given database
item and displays the dashboard results.
Example 2 (VBScript):
’r; Create a dashboard for a database, add dashboard
columns and display dashboard results.
Function CreateMyDBDashboard(initem, sourceDBItem)
Dim dashboard
’r;Create a dashboard based
on specified database item.
’r;Note that source could also
be a collection of enterprise database instances, and enterprise database
or standalone database.
Set dashboard = initem.CreateDashboardPage("Dashboard
of Database", "My DB Dashboard", erFormatPlainText, sourceDBItem,
0)
’r;NOTE: If sourceDBItem is
an enterprise database, you can also specify
’r; specific instances
to be included by setting the .SourceInstance
’r; If SourceInstances is empty,
all instances are included.
Dim dbcolumns, dashcolumns
Set dbcolumns = sourceDBItem.columns
’r; get source database columns
’r; create a collection for
the dashboard columns
Set dashcolumns = CreateObject(”r;eRoom.Collection”)
’r;add dashboard column: count of
each value: Yes/No
dashcolumns.Add dashboard.MakeDashboardColumn(dbcolumns("My
Boolean Column"), erDashOpSubColumns)
’r;add dashboard column: max
value for numeric column
dashcolumns.Add dashboard.MakeDashboardColumn(dbcolumns("My
Numeric Column"), erDashOpMax)
’r;add dashboard column: count
of blank and nonblank (used) values
dashcolumns.Add dashboard.MakeDashboardColumn(dbcolumns("Some
Keyword Column"), erDashOpCountBlank|erDashOpCountUsed)
’r;set the dashboard’s
columns from dashcolumn collection.
dashboard.DashboardColumns = dashcolumns
set CreateMyDBDashboard=dashboard
End Function
Sub DisplayDashboardResults(dashboardresults)
Response.Write "DASHBOARD RESULTS:
ResultCount=" + CStr(dashboardresults.ResultCount)
Dim foundCount ’r;As Long
foundCount = 0
Dim dashrow ’r;As IERUDashboardRow
Dim cells ’r;As
ERUCollection
Dim srcitem ’r;As IERUItem
Dim srccount ’r;As Long
Set dashrow = dashboardresults.GetFirst()
While Not (dashrow Is Nothing)
foundCount
= foundCount + 1
Set srcitem
= dashrow.sourceitem
srccount
= dashrow.SourceResultCount
If dashrow.sourceitem
Is Nothing Then
Response.Write
"DASHBOARD ROW # " + CStr(foundCount) + ", SourceItem=NOTHING;
(TOTALS ROW)"
Else
Response.Write
"DASHBOARD ROW # " + CStr(foundCount) + ", SourceItem="
+ dashrow.sourceitem.Name
End If
Response.Write
"SourceResultCount=" + CStr(srccount)
Set cells
= dashrow.DashboardCells
Response.Write
"DASHBOARD CELLS: count=" + CStr(cells.Count)
Dim cell
’r;As IERUDashboardCell
’r;Loop
over cells. Each cell contains a single result value
’r;
for a column/operator bit.
For Each
cell In cells
Response.Write
"--cell.column.name: " + cell.column.Name
Response.Write
" cell.DashboardOperator:" + CSTR(cell.DashboardOperator)
Response.Write
" cell.ColumnLabel: " + cell.ColumnLabel
Response.Write
" cell.DisplayContent: " + cell.DisplayContent
Response.Write
" cell.Content: (" + TypeName(cell.Content) + ")
" + CStr(cell.Content)
Next
Set dashrow
= dashboardresults.GetNext()
Wend
End Sub |