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