Hewlett Packard One International Blvd., Suite 200 Mahwah, NJ 07495 (201) 512-1000 Radia Reporting Server Reporting Filter and View Customization Prepared By: Joe Marrinan Hewlett Packard © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 1 of 40 All Rights Reserved Revisions DATE 2004-12-30 REV 1.0 AUTHOR Joe Marrinan COMMENTS Initial Draft © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 2 of 40 All Rights Reserved Legal Notices Warranty Hewlett-Packard makes no warranty of any kind with regard to this document, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Hewlett-Packard shall not be held liable for errors contained herein or direct, indirect, special, incidental or consequential damages in connection with the furnishing, performance, or use of this material. A copy of the specific warranty terms applicable to your Hewlett-Packard product can be obtained from your local Sales and Service Office. Restricted Rights Legend Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause in DFARS 252.227-7013. Hewlett-Packard Company United States of America Rights for non-DOD U.S. Government Departments and Agencies are as set forth in FAR 52.227-19(c)(1,2). Copyright Notices © Copyright 1998-2004 Hewlett-Packard Development Company, L.P. No part of this document may be copied, reproduced, or translated into another language without the prior written consent of Hewlett-Packard Company. The information contained in this material is subject to change without notice. Trademark Notices Linux is a registered trademark of Linus Torvalds. OpenLDAP is a registered trademark of the OpenLDAP Foundation. Acknowledgements PREBOOT EXECUTION ENVIRONMENT (PXE) SERVER Copyright © 1996-1999 Intel Corporation. TFTP SERVER Copyright © 1983, 1993 The Regents of the University of California. OpenLDAP Copyright 1999-2001 The OpenLDAP Foundation, Redwood City, California, USA. Portions Copyright © 1992-1996 Regents of the University of Michigan. OpenSSL License Copyright © 1998-2001 The OpenSSLProject. Original SSLeay License Copyright © 1995-1998 Eric Young (eay@cryptsoft.com) DHTML Calendar Copyright Mihai Bazon, 2002, 2003 © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 3 of 40 All Rights Reserved Table of Contents 1 2 Overview ............................................................................................................. 5 Reporting Server Directory Structure ....................................................................... 6 2.1 3 Data Filters .......................................................................................................... 8 3.1 3.2 3.3 3.4 3.5 4 The Objects Directory ...................................................................................................................................... 7 Filtergroups (Top-Level)................................................................................................................................... 9 Filtergroups (Sub-Menu) ................................................................................................................................ 10 Filters.............................................................................................................................................................. 11 Filter Data Queries ......................................................................................................................................... 12 Creating a Custom Filter ................................................................................................................................ 13 Reporting Views and Windows .............................................................................. 18 4.1 4.2 4.3 4.4 Viewgroups (Top-Level) ................................................................................................................................. 20 Viewgroups (Sub-Menu) ................................................................................................................................ 21 Views.............................................................................................................................................................. 23 Windows......................................................................................................................................................... 25 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.5 4.6 RAMDevices.window – Global Section.................................................................................. 26 RAMDevices.window – Detail Mode - WindowFunctions Section ........................................ 27 RAMDevices.window – Detail Mode – Query Tags ............................................................... 28 RAMDevices.window – Detail Mode - Actions Section .......................................................... 29 RAMDevices.window – Detail Mode - Columns Section........................................................ 30 RAMDevices.window – Graph Mode – WindowFunctions and Charts Sections ................... 32 Window Data Queries .................................................................................................................................... 34 Creating a Custom Report View and Window................................................................................................ 35 © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 4 of 40 All Rights Reserved 1 Overview This document provides details on the Radia Reporting Server (RRS) object structure and details to facilitate customization of reporting filters, views and windows. The following image shows a sample RRS report as seen in a web browser. The RRS interface consists of a Data Filters menu in the left frame. This menu contains selectable filters that may be used to apply conditions to the set of data returned in a report. The RRS uses ‘filtergroup’ objects to create menu items, and ‘filter’ objects to define individual filters. The Reporting Views menu appears below the Data Filters menu. The Reporting views menu contains categorized reports that may be selected for viewing. The RRS uses ‘viewgroup’ objects to create the menu items. Each report that appears in the right-side frame is contained in a ‘view’ object. Each view may contain one or more ‘window’ objects. These window objects contain the details required to format data queried for the report. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 5 of 40 All Rights Reserved 2 Reporting Server Directory Structure The following figure shows the expanded directory structure used to contain the files for the Radia Reporting Server. ReportingServer The root directory of the Radia Reporting Server. This directory contains the config.tcl file used to configure all of the core RRS server options. Contains nvdkit.exe – this bin executable is configured as a web server CGI file and is used to generate dynamic components of the reports Contains the default.css file css (Cascading Style Sheet). Contains various documents and doc samples images Contains images used within the web pages. images\devices Contains subdirectories by PC manufacturer. Images within the manufacturer directories are used to display an image of the computer model in the detail reports. This directory structure can be supplemented with additional images for models not found in the default reports. Contains various supporting files for lib Reporting Server functions. Contains the reporting.log file log which contains details of the reporting server transactions. This is a source of valuable troubleshooting information. objects Contains the objects used to define filters, views, windows and queries. Contains updates to other Radia prereq components and database imports to support Radia Reporting Server (see installation documentation) © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 6 of 40 All Rights Reserved 2.1 The Objects Directory The files within the ReportingServer\objects directory are used to define each of the filters, views, windows and queries that make up a filter or report. ReportingServer\objects directory substructure Directories containing files specific to Data Filters are highlighted in blue, these include: • objects\english\filtergroups • objects\english\filters • objects\english\filters\data Directories containing files specific to Reporting Views are highlighted in yellow, these include: • objects\english\viewgroups • objects\english\views • objects\english\windows • objects\engligh\windows\data © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 7 of 40 All Rights Reserved 3 Data Filters Data filters are used to apply one or more conditions to the set of devices that appear in a report. Data Filter Files and Function File Location File Extension objects\ .filtergroup english\ Function/Example (Screen area modified by object file highlighted in blue) A filtergroup file defines the Top level and sub-level menu options found under the Data Filters menu filtergroups objects\ english\ filters .filter A filter file defines the layout and function of an individual filter. objects\ english\ filter\ data .sql .oracle A sql or oracle file defines an MS SQL or Oracle ODBC query to return a list of devices limited by the applied filter.\ © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 8 of 40 All Rights Reserved 3.1 Filtergroups (Top-Level) Directory: filtergroups Extension: .filtergroup The filtergroup directory contains files that define the structure of the Data Filters menu. Each file in the filtergroup directory has a .filtergroup extension. The .filtergroup files can define either ‘top’ level menu items, or ‘sub’ menu items. Top level menu items appear at the top level of the Data Filters menu. Sub-Menu filtergroups appear below Top-Menu items or within other Sub-Menu filtergroups. Sub-Menu filtergroups can be nested to define multiple levels of menu items. The following example shows the ‘Inventory Manager Related’ Filtergroup as defined in the ‘RIM.Filtergroup’ file. RIM.Filtergroup is an example of the Top-Menu Filtergroup. Several of the more significant tags within the Filtergroup file are defined below. Filtergroup Top-Menu Inventory Manager Related .filtergroup File: filtergroup\RIM.filtergroup <filtergroupobject> <global> <description>Inventory Manager Related</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-inventorymanager16.gif</image> <treelevel>top</treelevel> </global> <filters> <filtergroupobject>RIM Hardware</filtergroupobject> <filtergroupobject>RIM Operating System</filtergroupobject> <filtergroupobject>RIM Software</filtergroupobject> </filters> </filtergroupobject> <description> The <description> tag defines the text that will appear in the Data Filters menu for this Filtergroup item. <treelevel> Top level menus are defined with a <treelevel>top</treelevel> tag in the .Filtergroup file. Sub menu items appear as an options within Data Filter menus. Sub menu items are defined with a <treelevel>sub</treelevel> tag in the .filtergroup file. <filtergroupobject> The <filtergroupobject> tag defines associations to .filtergroup files that make up sub-menu options within a filtergroup. The text defined in the <filtergroupobject> tag must match the filename of the sub-menu filtergroup file that defines that sub-menu (without the .filtergroup extension). As seen in the example below, the following tag: <filtergroupobject>RIM Operating System</filtergroupobject> refers to the sub-menu filtergroup file “filtergroup\RIM Operating System.filtergroup” © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 9 of 40 All Rights Reserved 3.2 Filtergroups (Sub-Menu) Directory: filtergroups Extension: .filtergroup Sub-Menu Filtergroups work in the same manner as Top-menu filtergroups. The <treelevel>sub</treelevel> tag defines a Sub-Menu Filtergroup. As seen in the example below, The ‘OS Related’ Sub-Menu Filtergroup as defined in the ‘RIM Operating System.filtergroup’ file is shown <filterobject> The <filterobject> tag defines links to .filter files. The .filter files contain the individual data filter definitions. Note: A single .filtergroup may contain both <filtergroup> and <filterobject> tags. A combination of sub-menu items and filters would appear in the menu list. Filtergroup Sub-Menu OS Related .filtergroup File filtergroup\RIM Operating System.filtergroup <filtergroup> <global> <description>OS Related</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-container16.gif</image> <treelevel>sub</treelevel> </global> <filters> <filterobject>RAM Operating System</filterobject> <filterobject>RAM OS Level</filterobject> <filterobject>RIM WBEM Service Name</filterobject> <filterobject>RIM WBEM Process Name</filterobject> </filters> </filtergroup> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 10 of 40 All Rights Reserved 3.3 Filters Directory: filter Extension: .filter The ‘Operating System’ Filter as defined in the ‘RAM Operating System.filter’ file is shown below. Filter Operating System .filter File: filter\RAM Operating System.filter <filterobject> <global> <description>Operating System</description> <visible>false</visible> <require>RAMENABLE</require> <image>ads-search16.gif</image> <filtertype>DEVICELIST</filtertype> <querytype>RAMSQL</querytype> <queryfile>RAM Operating System</queryfile> <inputmask>text</inputmask> <inputhelp>Enter the Operating System value.</inputhelp> <inputvalues>[sql execute RIM "SELECT DISTINCT from [config RAMPREFIX]deviceconfig order by OS"]</inputvalues> OS </global> </filterobject> <filtertype> <querytype> <queryfile> The <queryfile> tag identifies associations to .sql or .oracle files that define the filter query. The text defined in the <queryfile> tag must match the filename of the filter data query file that defines the query to execute (without the .sql or .oracle extension). © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 11 of 40 All Rights Reserved 3.4 Filter Data Queries Directory: filter\data Extension: .sql or .oracle The “RAM Operating System.sql” and “RAM Operating System.oracle” files are shown below. These files define the SQL query that returns a list of devices with the selected filter applied. RAM Operating System SQL Query File: filter\data\RAM Operating System.sql select device_id from <<NEGATE>> = '<<VALUE>>' <<RAMPREFIX>>DeviceConfig where os RAM Operating System Oracle Query File: filter\data\RAM Operating System.oracle select device_id from <<RAMPREFIX>>DeviceConfig where upper(os) <<NEGATE>> = upper('<<VALUE>>') © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 12 of 40 All Rights Reserved 3.5 Creating a Custom Filter The following steps describe the process of creating a simple custom filter using existing examples as a template. In the example to follow, a new top menu item will be created called ‘Custom Filters’. The Custom Filters menu item will have a submenu item called ‘Hardware Filters’. Within the Hardware Filters menu a ‘Subnet Location’ filter will be created that will allow filtering based on a client’s subnet. Creating the Top Menu It is often easiest to use an existing item as a template. In this case the ‘RIM.filtergroup’ file will be used to create our ‘Custom Filters’ Top-Menu. When creating new filters it is important to give your custom files a consistent prefix so that they can be easily identified as custom files and they will remain isolated from future updates to the core reporting files. In the examples to follow, each of the files will begin with the prefix ‘Custom’. 1. Create a new ‘Custom Filters’ Top Level Menu 1.1. In the filtergroups directory, copy ‘RIM.filtergroup’ to ‘Custom.filtergroup’ 1.2. Edit the new Custom.filtergroup file. It should appear similar to the one below: <filtergroupobject> <global> <description>Inventory Manager Related</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-inventorymanager16.gif</image> <treelevel>top</treelevel> </global> <filters> <filtergroupobject>RIM Hardware</filtergroupobject> <filtergroupobject>RIM Operating System</filtergroupobject> <filtergroupobject>RIM Software</filtergroupobject> </filters> </filtergroupobject> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 13 of 40 All Rights Reserved 1.3. Edit the text in the <description> tag to read ‘Custom Filters’. The <description> tag defines the description of the Top menu item found in the Data Filters on the reporting web page. 1.4. Edit the text in the first <filtergroupobject> tag to read ‘Custom Hardware Filters’. The <filtergroup> tag defines the filename of the file containing sub-menu filtergroup information (the .filtergroup extension should be omitted). 1.5. Remove the remaining <filtergroupobject> tags. 1.6. Save the ‘Custom.filtergroup’ file. Your file should now appear similar to the one shown below: <filtergroupobject> <global> <description>Custom Filters</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-inventorymanager16.gif</image> <treelevel>top</treelevel> </global> <filters> <filtergroupobject>Custom Hardware Filters</filtergroupobject> </filters> </filtergroupobject> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 14 of 40 All Rights Reserved 2. Create a new ‘Hardware Filters’ Sub Menu 2.1. In the filtergroups directory, copy ‘RIM Operating System.filtergroup’ file to ‘Custom Hardware Filters.filtergroup’ 2.2. Edit the ‘Custom Hardware Filters.filtergroup’ file. Before modification, it should appear similar to the one below: <filtergroup> <global> <description>OS Related</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-container16.gif</image> <treelevel>sub</treelevel> </global> <filters> <filterobject>RAM Operating System</filterobject> <filterobject>RAM OS Level</filterobject> <filterobject>RIM WBEM Service Name</filterobject> <filterobject>RIM WBEM Process Name</filterobject> </filters> </filtergroup> 2.3. Edit the text in the <description> tag to read ‘Hardware Filters’. The <description> tag defines the description of the sub menu item found under the ‘Custom Filters’ top menu on the reporting web page 2.4. Edit the text in the first <filterobject> tag to read ‘Custom Subnet Location’. The <filterobject> tag defines the filename of the file containing the filter definition (the .filter extension should be omitted). 2.5. Remove the remaining <filterobject> tags. 2.6. Save the ‘Custom Hardware Filters.filtergroup’ file. Your file should now appear similar to the one shown below: <filtergroup> <global> <description>Hardware Filters</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-container16.gif</image> <treelevel>sub</treelevel> </global> <filters> <filterobject>Custom Subnet Location</filterobject> </filters> </filtergroup> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 15 of 40 All Rights Reserved 3. Create a new ‘Subnet Location’ Filter 3.1. In the filters directory, copy ‘RAM Operating System.filter’ file to ‘Custom Subnet Location.filter’ 3.2. Edit the ‘Custom Subnet Location.filter’ file. Before modification, it should appear similar to the one below: <filterobject> <global> <description>Operating System</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-search16.gif</image> <filtertype>DEVICELIST</filtertype> <querytype>RAMSQL</querytype> <queryfile>RAM Operating System</queryfile> <inputmask>text</inputmask> <inputtext></inputtext> or <inputhelp>Enter the Operating System value. &#13;Example: Windows* SunOS or HPUX</inputhelp> <inputvalues>[sql execute RIM "SELECT DISTINCT OS from [config RAMPREFIX]deviceconfig order by OS"]</inputvalues> </global> </filterobject> 3.3. Edit the text in the <description> tag to read ‘Subnet Location’. The <description> tag defines the description of the filter item found under the ‘Hardware Filters’ sub menu on the reporting web page 3.4. Edit the text in the first <queryfile> tag to read ‘Custom Subnet Location’. The <queryfile> tag defines the filename of the file containing the filter query to return a list of devices resulting from the applied filter (the .sql or .oracle extension should be omitted). 3.5. Edit the text of the <inputhelp> tag to read: Enter the Subnet Location value. &#13;Example: 10_17_10* or 10_17_10_0 The <inputhelp> tag defines the text that appears when hovering over the help Filter 3.6. Edit the text of the <inputvalues> field to read: [sql execute RIM "SELECT DISTINCT netloc from [config RAMPREFIX]deviceconfig order by netloc"] The <inputvalues> field defines the query that will retrieve a list of available options from the database for this field. This query is executed when a user selects the magnifying glass icon of the filter (V4.1 feature). In this example, a list of distinct (unique) values found in the DeviceConfig table’s ‘netloc’ column (Subnet Locations) will be returned. Note: If you were querying a value found in a table other than ‘DeviceConfig’, you would replace the DeviceConfig reference with the name of the table containing the field you wanted to filter on © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 16 of 40 All Rights Reserved icon of the 3.7. Save the ‘Custom Subnet Location.filter’ file. Your file should now appear similar to the one shown below: <filterobject> <global> <description>Subnet Location</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-search16.gif</image> <filtertype>DEVICELIST</filtertype> <querytype>RAMSQL</querytype> <queryfile>Custom Subnet Location</queryfile> <inputmask>text</inputmask> <inputtext></inputtext> or <inputhelp>Enter the Subnet Location value. &#13;Example: 10_17_10* 10_17_10_0 </inputhelp> <inputvalues>[sql execute RIM "SELECT DISTINCT netloc from [config RAMPREFIX]deviceconfig order by netloc"]</inputvalues> </global> </filterobject> Note: <inputhelp> and <inputvalues> are shown wrapping across multiple lines in the above example for clarity in documentation. The values in these fields should appear on a single line in the file. 4. Create a new Filter Data Query 4.1. In the filters/data directory, copy ‘RIM Operating System.sql’ file to ‘Custom Subnet Location.sql’ 4.2. Edit the ‘Custom Subnet Location.sql’ file. Before modification, it should appear similar to the one below: select device_id from <<RAMPREFIX>>DeviceConfig where os <<NEGATE>> <<CONDITION>> '<<VALUE>>' 4.3. Edit the ‘where’ clause to reference the value we want to filter on. In this case it is the DeviceConfig table’s ‘netloc’ column. 4.4. Save the ‘Custom Subnet Location.sql’ file. Your file should now appear similar to the one shown below: select device_id from <<RAMPREFIX>>DeviceConfig where netloc <<NEGATE>> <<CONDITION>> '<<VALUE>>' © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 17 of 40 All Rights Reserved 4 Reporting Views and Windows Reporting Views and Windows are used to provide a selectable set of reports, and present the results of a report query to the end user. Filters applied from the Data Filters menu are automatically applied to the reports. View and Window Files and Function The following table summarizes the different file types responsible for building reporting Views and Windows. The area of the interface affected by the contents of each file is highlighted in yellow. File File Example Location Extensio (Screen area modified by object file highlighted in blue) n objects\ .viewgrou A viewgroup file defines the Top level and sub-level menu options found english\ p under the Reporting Views menu viewgrou ps objects\ english\ views .view A view file defines a reference to one or more windows to display in the rightside reporting pane, and refers to the functions to display the top menu and applied filters. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 18 of 40 All Rights Reserved objects\ english\ .window A window file defines the presentation of queried data. .sql .oracle A sql or oracle file defines an MS SQL or Oracle ODBC query to return data to a window for display. windows objects\ english\ windows \ data © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 19 of 40 All Rights Reserved 4.1 Viewgroups (Top-Level) Directory: viewgroups Extension: .viewgroup The viewgroup directory contains files that define the structure of the Reporting Views menu. Each file in the viewgroup directory has a .viewgroup extension. The structure of viewgroups is identical to the structure to define filtergroups. The only difference being that viewgroup menu items refer to sub-viewgroup, and view objects. The .viewgroup files can define either ‘top’ level menu items, or ‘sub’ menu items. Top level menu items appear at the top level of the Reporting Views menu. Sub-Menu viewgroups appear below TopMenu items or within other Sub-Menu viewgroups. Sub-Menu viewgroups can be nested to define multiple levels of menu items. The following example shows the ‘Inventory Manager Reports’ viewgroup as defined in the ‘RIM.viewgroup’ file. RIM.viewgroup is an example of the Top-Menu viewgroup. Viewgroup Top-Menu Inventory Manager Reports .viewgroup File: viewgroup\RIM.viewgroup <viewgroupobject> <global> <description>Inventory Manager Reports</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-inventorymanager16.gif</image> <treelevel>top</treelevel> </global> <views> <viewgroupobject>RIM Hardware</viewgroupobject> <viewgroupobject>RIM Software</viewgroupobject> </views> </viewgroupobject> Note the use of the following tags within the viewgroup file. <description> The <description> tag defines the text that will appear in the Reporting Views menu for a Viewgroup item. <treelevel> Top level menus are defined with a <treelevel>top</treelevel> tag in the .viewgroup file. Sub menu items appear as options within Reporting Views menus. Sub menu items are defined with a <treelevel>sub</treelevel> tag in the .viewgroup file. <viewgroupobject> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 20 of 40 All Rights Reserved The <viewgroupobject> tag defines associations to .viewgroup files that make up sub-menu options within a viewgroup. The text defined in the <viewgroupobject> tag must match the filename of the sub-menu viewgroup file that defines that sub-menu (without the .viewgroup extension). As seen in the example below, the following tag: <viewgroupobject>RIM Hardware</viewgroupobject> refers to the sub-menu viewgroup file “viewgroups\RIM Hardware.viewgroup” 4.2 Viewgroups (Sub-Menu) Sub-Menu Viewgroups work in the same manner as Top-menu viewgroups. The <treelevel>sub</treelevel> tag defines a Sub-Menu Viewgroup. As seen in the example below, The ‘Hardware Reports’ Sub-Menu Viewgroup as defined in the ‘RIM Hardware.viewgroup’ file is shown. This viewgroup contains two <viewgroupobject> tags that refer to another sub-Menu Viewgroup. Viewgroup Sub-Menu .viewgroup File: viewgroup\RIM Hardware.viewgroup Hardware Reports <viewgroupobject> <global> <description>Hardware Reports</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-computer16.gif</image> <treelevel>sub</treelevel> </global> <views> <viewgroupobject>RIM Hardware Standard</viewgroupobject> <viewgroupobject>RIM Hardware Count By</viewgroupobject> </views> </viewgroupobject> <viewobject> The <viewobject> tag defines the leaves of the menu tree. Each <viewobject> tag references one or many .view files found in the objects\views directory. The .view files define what appears in the right-pane report area. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 21 of 40 All Rights Reserved Viewgroup Sub-Menu Hardware Reports .viewgroup File: viewgroup\RIM Hardware Standard.viewgroup <viewgroupobject> <global> <description>Detail Reports</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-computer16.gif</image> <treelevel>sub</treelevel> </global> <views> <viewobject>RIMHardwareSummary</viewobject> <viewobject>RAMDevices</viewobject> <viewobject>RIMHardwareVendor</viewobject> <viewobject>RIMHardwareCPUMEM</viewobject> <viewobject>RIMHardwareSERIALBIOS</viewobject> </views> </viewgroupobject> Note: A single .viewgroup file may contain both <viewgroupobject> and <viewobject> tags. A combination of sub-menu items and views would appear in the menu list. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 22 of 40 All Rights Reserved 4.3 Views Directory: views Extension: .view A view file contains the framework for reports displayed in the right-side reporting frame. Elements that may be contained within a view include headers, windows and footers. Headers define processes that appear at the top of the screen such as the frame functions (back, refresh, home, etc…) and search criteria summary. Windows define references to window objects that display queried reporting data. Footers display elements that appear at the bottom of the screen. The ‘Radia Managed Devices’ View as defined in the ‘RAMDevices.view’ file is shown below. The portions of the screen affected by the .view file are highlighted in yellow with arrows pointing to the section of the file that defines each portion of the screen. View Radia Managed Devices .view File: views\RAMDevices.view <viewobject> <global> <description>Radia Managed Devices</description> <visible>true</visible> <require>DEFENABLE</require> <image>mode-detail.gif</image> </global> <headers> <header> <procname>windows_PrintFrameFunctions</procname> <functions>-</functions> </header> <header> <procname>windows_PrintFilterSummary</procname> <functions>-</functions> </header> </headers> <windows> <window> <windowobject>RAMDevices</windowobject> <!-- Window Object Overrides --> <windowstate>Maximize</windowstate> <windowmode>detail</windowmode> <detailindex>1</detailindex> <detailrange>10</detailrange> <detailsortfield>-</detailsortfield> <detailsortorder>-</detailsortorder> </window> </windows> <footers> <footer> <procname></procname> <functions></functions> </footer> </footers> </viewobject> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 23 of 40 All Rights Reserved Note the use of the following tags within the RAMDevices.view file: <global> section <description> As seen in the viewgroups object, the <description> tag defines the text that will appear in the Reporting Views menu for a View item. <headers> section <header> Each Header tag contains the details for each view header procedure and functions <procname> The procname tag refers to built in procedures. In the view example shown, two procedures are called. 1. The windows_PrintFrameFunctions displays the top menu icons. 2. The windows_PrintFilterSummary displays the currently active filters. <windows> section The windows section contains one or more window tags. Multiple window tags can be defined to show query results from several window objects within one reporting view. Each window displayed in a view will have its own title row which can be maximized to show the window contents, or minimized to hide the window contents. <window> The Window tag defines a reference to a window object and overrides to tags found within the window object. <windowobject> The windowobject tag references a .window file found in the objects\windows directory. The .window files contain the details that appear for each report query. <!-- Window Object Overrides --> The tags following the ‘window object overrides’ comment can be used to override several parameters normally defined within a window object (.window file). Several of these tags will be discussed in the window object section. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 24 of 40 All Rights Reserved 4.4 Windows Directory: windows Extension: .window The window file contains definitions for how detail and graphical data are queried and displayed. Windows are what the reporting server is all about – displaying data retrieved from the database in an easy to understand and easy to view format. Each window may have two modes. Detail mode displays queried data in a row and column format. Graph mode can display charts and graphs. The definition for how each mode will appear in the window is defined in the window file. Since the window file provides a significant amount of flexibility in formatting each field returned from a query, the file can be quite large in comparison to a typical viewgroup or view file. In the interest of clarity, each significant section of the window file will be discussed separately below Detail Mode Graph Mode © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 25 of 40 All Rights Reserved Window Radia Managed Devices .window File: windows\RAMDevices.window 4.4.1 RAMDevices.window – Global Section <windowobject> <!-- Global Window Parameters --> <global> <description>Primary Listing of Devices</description> <visible>true</visible> <windowname>RAMDevices</windowname> <proc>window_PrintWindow</proc> <tcl></tcl> <require>RAMENABLE</require> <datasource>RIM</datasource> <cacheenable>[config RAMCACHEENABLE]</cacheenable> <cachelife>[config RAMCACHELIFE]</cachelife> <windowtitle>Radia Managed Devices</windowtitle> <windowstate>Minimize</windowstate> <windowmode>detail</windowmode> <detailindex>1</detailindex> <detailrange>10</detailrange> <detailsortfield>mtime</detailsortfield> <detailsortorder>desc</detailsortorder> </global> <global> section The global section of the .window file defines various default parameters for the window. Many of these parameters can be overridden within a view to provide additional flexibility in the use of window files. <description> - Unlike the <description> tag of other objects, the <description> tag of the window object is only informational. It is not displayed. <windowname> - You should create a unique windowname for each window. When data caching is enabled, windowname is used to identify the cache file. If a unique name is not used for each window, cached data from one window’s query may be used as source data for another window object. <windowtitle> - This field defines the title that will appear at the top of the window within the view. <windowmode> - Defines the default mode of the window <detailrange> - Defines the default number of records that will be displayed within the window. <detailsortfield> - Defines the default field that will be used to sort the data. The value defined in this tag must be the name of the field as returned from the SQL query. The value defined here is actually used to build add the ‘ORDER BY’ clause to the SQL query. This tag should NOT contain the name defined by the descriptive <columname> tag defined in the columns section of the window object (more on the <columname> tag later). <detaisortorder> - Defines the order to sort the field (desc for descending or asc for ascending) © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 26 of 40 All Rights Reserved RAMDevices.window windows object detail / windowfunctions / queryfile section 4.4.2 RAMDevices.window – Detail Mode - WindowFunctions Section <!-- Detail Section --> <detail> <!-- Window Toolbar Functions --> <windowfunctions> <function> <name>ViewMode</name> </function> <function> <name>ExportCSV</name> </function> <function> <name>ExportIQY</name> </function> <function> <name>Notify</name> <options>devicename</options> </function> <function> <name>NavBar</name> </function> </windowfunctions> <windowfunctions> section The <windowfunctions> section defines the options that will appear just below the window title. Each function is defined within a <function> tag containing a name. The names of the functions are built-in to the RRS core. In the example above, the following functions are shown: Viewmode – Provides an icon to switch between detail and graphical mode. If you define a window object with only one mode, then you will want to remove this <function> definition. ExportCSV – Exports detail data to a CSV file. ExportIQY – Exports detail data to a dynamic Excel Web Query (IQY) file. This allows Excel to dynamically retrieve data from the Radia Reporting Server, and even refresh the data requested from the Reporting Server without having to visit the Reporting Web Site. Notify – Provides a icon to the Client Notify function of the RRS. The <options> tag must define the field name containing the machine name of the system used for notification. The Notify icon will not be visible unless the {NOTIFYENABLE} option in the config.tcl file is enabled. NavBar – Displays the navigation bar which allows the user to select the number of rows to display at one time, and to page through the result. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 27 of 40 All Rights Reserved 4.4.3 RAMDevices.window – Detail Mode – Query Tags <!-- Query Filename and field ID --> <queryfile>RAMDevices</queryfile> <queryfield>device_id</queryfield> The <queryfile> tag within the <detail> section defines the name of the query file to use to query the database for ‘detail’ mode data. It is important to note that this <queryfile> tag is independent of the <queryfile> tag used to query data for ‘graph’ mode. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 28 of 40 All Rights Reserved 4.4.4 RAMDevices.window – Detail Mode - Actions Section <!-- Detail Mode Columns --> <actions> <action> <enabled>1</enabled> <image>details.gif</image> <columnname>Details</columnname> <url>[url]?setview=RAMDeviceDetails_[lindex 7].view&amp;filter=RAM Device ID.filter&amp;value=[lindex $row 0]&amp;</url> <urlalt>[language "Window Controls" SHOWDETAILS]</urlalt> <urltarget>_self</urltarget> </action> <action> <enabled>1</enabled> <image>task-vncviewer.gif</image> <columnname>Details</columnname> <url>http://[lindex $row 3]:5800</url> <urlalt>Remote Control (VNC)</urlalt> <urltarget>_new</urltarget> </action> </actions> $row <actions> section The actions section of the window file defines icons that will be displayed on the left of each row – allowing a unique action to be initiated based on data from a column within that row. Two common actions are; Notify, which allows a Client Notify to a single machine and Remote Control , which allows a VNC session to be established to the machine. <image> - The name of the image file used to display the icon. <columnname> - The name of the column that will appear in the header row. <url> - The web url that will be activated when the user clicks on the icon. Note the <url> definition in the second action above: <url>http://[lindex $row 3]:5800</url> The tcl code [lindex $row 3] would be executed to retrieve the third field returned from the query. That value would be merged into the remaining text of the <url> tag. Using the first row of the example screenshot above, the result would be the following URL: http://wal_esdlab42:5800 <urlalt> - The alternate text that appears when hovering over the action icon. <urltarget> The url target. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 29 of 40 All Rights Reserved 4.4.5 RAMDevices.window – Detail Mode - Columns Section <columns> <column> <fieldname>device_id</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname></columnname> <columnsettings></columnsettings> <url></url> <urlalt></urlalt> <urltarget></urltarget> </column> <column> <fieldname>mtime</fieldname> <fieldtype>datelocal</fieldtype> <fieldsettings></fieldsettings> <columnname>Last Connect</columnname> <columnsettings></columnsettings> <url></url> <urlalt></urlalt> <urltarget></urltarget> </column> <column> <fieldname>userid</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname>Radia ID</columnname> <columnsettings></columnsettings> <url></url> <urlalt></urlalt> <urltarget></urltarget> </column> <column> <fieldname>devicename</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname>Device</columnname> <columnsettings></columnsettings> <url>[url]?filter=RAM Device Name.filter&amp;value=[quote $col]]&amp;</url> <urlalt>[language "Search Controls" ADDFILTER]</urlalt> <urltarget>_self</urltarget> </column> <column> <fieldname>ipaddr</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname>IP Address</columnname> <columnsettings></columnsettings> <url></url> <urlalt></urlalt> <urltarget></urltarget> </column> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 30 of 40 All Rights Reserved [link 4.4.5 RAMDevices.window – Detail Mode - Columns Section <column> <fieldname>os</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname>Operating System</columnname> <columnsettings></columnsettings> <url>[url]?filter=RAM Operating System.filter&amp;value=[quote [link $col]]]&amp;</url> <urlalt>[language "Search Controls" ADDFILTER]</urlalt> <urltarget>_self</urltarget> </column> <column> <fieldname>os_level</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname>OS Level</columnname> <columnsettings></columnsettings> <url>[url]?filter=RAM OS Level.filter&amp;value=[quote [link $col]]]&amp;</url> <urlalt>[language "Search Controls" ADDFILTER]</urlalt> <urltarget>_self</urltarget> </column> <column> <fieldname>tableschema</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname></columnname> <columnsettings></columnsettings> <url></url> <urlalt></urlalt> <urltarget></urltarget> </column> </columns> </detail> [link [link <columns> section The <columns> section contains one <column> tag for each column returned by the query defined by the <queryfile> tag. Every column returned from a query must have a corresponding <column> tag identifier <column> tag – Each column tag contains several fields that define the layout and behavior of a column. <fieldname> - Defines the name of the field to be displayed. This field name should match the name of the field from the SQL query. <fieldtype> - Defines the type of field for formatting purposes. Fields may be text, date, numeric. <columnname> - Defines the text that will appear in the top header column in the window. If this tag is left blank, the field will not appear in the window at all – it will he hidden. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 31 of 40 All Rights Reserved 4.4.6 RAMDevices.window – Graph Mode – WindowFunctions and Charts Sections <!-- Graphical Mode/Chart Section --> <graph> <!-- Window Toolbar Functions --> <windowfunctions> <function> <name>ViewMode</name> </function> </windowfunctions> <!-- Chart Objects for Graphical Mode --> <charts> <chart> <queryfile>RIMDevices_VENDORMODEL_Graph_OperatingSystems</queryfile> <queryfield>device_id</queryfield> <charttype>chart_drawBarChartStacked</charttype> <chartwidth>700</chartwidth> <chartheight>150</chartheight> <charttitle>Operating Systems</charttitle> <charturl>[url]?RAM OS Level.filter=$charturldata</charturl> <params> </params> </chart> </charts> </graph> </windowobject> The figure above shows the power of the chart objects in the graph mode. A chart representing Operating Systems and Service Packs is shown using the ‘chart_drawBarChartStacked Note the use of the ‘ViewMode’ function to provide an icon to switch back to Detail View. <charts> section The <charts> section may contain several chart objects – allowing multiple charts to appear within one windowobject. <chart> - Each <chart> section defines an individual chart. <queryfile> - The name of the file that contains the query used to provide data to the chart function. <charttype> - The type of chart drawn. <chartwidth> - The width in pixels of the entire chart object. <chartheight> - The height in pixels of the entire chart object. <charttitle> - The title that will appear at the top of the chart. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 32 of 40 All Rights Reserved <charturl> - The URL that will be activated when the user clicks on an area of the chart. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 33 of 40 All Rights Reserved 4.5 Window Data Queries Directory: windows\data Extension: .sql or .oracle The “RAMDevices.sql” and “RAMDevices.oracle” files are shown below. These files define the SQL query to return a set of data used by the RAMDevices.window object ‘Detail’ mode. Since the SQL clause between MS SQL and Oracle is the same for this query, both files are the same. RAM Devices – Detail - SQL Query File: filter\data\RAMDevices.sql SELECT device_id, mtime, device_id as userid, devicename, ipaddr, os, os_level, CASE WHEN os like '%Window%' then 'WBEM' else 'CIM' end as tableschema FROM <<RAMPREFIX>>deviceconfig WHERE [devicelist device_id 99] RAM Devices – Detail - Oracle Query File: filter\data\RAMDevices.oracle SELECT device_id, mtime, device_id as userid, devicename, ipaddr, os, os_level, CASE WHEN os like '%Window%' then 'WBEM' else 'CIM' end as tableschema FROM <<RAMPREFIX>>deviceconfig WHERE [devicelist device_id 99] The “RIMDevicesVENDORMODEL_Graph_OperatingSystems.sql” and “RIMDevicesVENDORMODEL_Graph_OperatingSystems.sql” files are shown below. These files define the SQL query to return a set of data used by the RAMDevices.window object ‘Graph’ mode. Since the SQL clause between MS SQL and Oracle is the same for this query, both files are the same. RAM Devices – Graph – SQL Query File: filter\data\ RIMDevicesVENDORMODEL_Graph_OperatingSystems.sql SELECT os, os_level, COUNT(os) as count FROM <<RAMPREFIX>>deviceconfig WHERE [devicelist device_id 99] GROUP BY os, os_level ORDER BY os, os_level asc RAM Devices – Graph - Oracle Query File: filter\data\ RIMDevicesVENDORMODEL_Graph_OperatingSystems.oracle SELECT os, os_level, count(os) as count FROM <<RAMPREFIX>>deviceconfig WHERE [devicelist device_id 99] GROUP BY os, os_level ORDER BY os, os_level asc © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 34 of 40 All Rights Reserved 4.6 Creating a Custom Report View and Window The following steps describe the process of creating a simple custom window and view using existing examples as a template. In the example to follow, a new top menu item will be created called ‘Custom Reports’. Within the Custom Reports Menu a ‘Video Info’ View will be created that will contain a single window displaying Video Controller and resolution information. Additionally, the window will contain the option to enable graph mode. Graph mode will display a bar chart of the video controllers and screen resolutions. For this example, we will start with the query required to retrieve the data from the database, and work our way back up the tree by building a window for the data, a view for the window, and a viewgroup to create a menu item for the report. Just as creating new filters, it is important to give your custom files a consistent prefix so that they can be easily identified as custom files and they will remain isolated from future updates to the core reporting files. In the examples to follow, each of the files will begin with the prefix ‘Custom’. In the examples to follow, we will be creating query files targeted at a MS SQL database. To create the same files for an Oracle database, simply save the query files with a .oracle extension, and verify the correct syntax for an oracle environment. All files added or modified for the following procedure are found within the reporting server ‘objects\english’ directory structure. All references to directory and file paths are relative to this directory. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 35 of 40 All Rights Reserved 1. Create a new ‘CustomRIMDeviceVideoInfoDetail’ query file. 1.1. In the windows\data directory, create a new file called CustomRIMDeviceVideoInfoDetail.sql (or .oracle if you are using an oracle database) 1.2. Edit the new CustomRIMDeviceVideoInfoDetail.sql file to read: SELECT device_id, mtime, device_id as userid, devicename, video, video_res FROM <<RAMPREFIX>>deviceconfig WHERE [devicelist device_id 99] Note: The ‘RIMDevice.sql file was used as a template to build this file 2. Create a new ‘CustomRIMDeviceVideoInfoGraph’ query file. 2.1. In the windows\data directory, create a new file called CustomRIMDeviceVideoInfoGraph.sql (or .oracle if you are using an oracle database) 2.2. Edit the new CustomRIMDeviceVideoGraph.sql file to read: SELECT video, video_res, count(video) as count FROM <<RAMPREFIX>>deviceconfig WHERE [devicelist device_id 99] GROUP BY video, video_res ORDER BY video, video_res asc Note: The ‘RIMDevicesVENDORMODEL_Graph_OperatingSystems.sql’ file was used as a template to build this file 3. Create a new ‘CustomRIMDeviceVideoInfo’ window file. 3.1. In the windows directory, copy ‘RAMDevices.window’ to ‘CustomRIMDeviceVideoInfo.window’ 3.2. Edit the new CustomRIMDeviceVideoInfo.window file. Here is a summary of the changes: 3.2.1. Update the <global> section to modify title and window name 3.2.2. Update <queryfile> in the <detail> section to reference our CustomRIMDeviceVideoInfoDetail query file 3.2.3. Remove all information from within the <action> tags to remove the ‘Details’ column. Note: Do not remove the <action></action> tag completely – they are required within a window file. 3.2.4. Remove unused columns in the <columns> section, and add columns for the video and video_res fields 3.2.5. Update the <queryfile> in the <graph> section to reference our CustomRIMDeviceVideoInfoGraph query file. The updated CustomRIMDeviceVideoInfo.window file appears below. Significant updates are indicated in bold blue. <windowobject> <!-- Global Window Parameters --> <global> <description>Listing of Video Controllers</description> <visible>true</visible> <windowname>CustomRIMDeviceVideoInfo</windowname> <proc>window_PrintWindow</proc> <tcl></tcl> <require>RAMENABLE</require> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 36 of 40 All Rights Reserved <datasource>RIM</datasource> <cacheenable>[config RAMCACHEENABLE]</cacheenable> <cachelife>[config RAMCACHELIFE]</cachelife> <windowtitle>Video Controller Info</windowtitle> <windowstate>Minimize</windowstate> <windowmode>detail</windowmode> <detailindex>1</detailindex> <detailrange>15</detailrange> <detailsortfield>mtime</detailsortfield> <detailsortorder>desc</detailsortorder> </global> <!-- Detail Section --> <detail> <!-- Window Toolbar Functions --> <windowfunctions> <function> <name>ViewMode</name> </function> <function> <name>ExportCSV</name> </function> <function> <name>ExportIQY</name> </function> <function> <name>Notify</name> <options>devicename</options> </function> <function> <name>NavBar</name> </function> </windowfunctions> <!-- Query Filename and field ID --> <queryfile>CustomRIMDeviceVideoInfoDetail</queryfile> <queryfield>device_id</queryfield> <action></action> <!-- Detail Mode Columns --> <columns> <column> <fieldname>device_id</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname></columnname> <columnsettings></columnsettings> <url></url> <urlalt></urlalt> <urltarget></urltarget> </column> <column> <fieldname>mtime</fieldname> <fieldtype>datelocal</fieldtype> <fieldsettings></fieldsettings> <columnname>Last Connect</columnname> <columnsettings></columnsettings> <url></url> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 37 of 40 All Rights Reserved <urlalt></urlalt> <urltarget></urltarget> </column> <column> <fieldname>userid</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname>Radia ID</columnname> <columnsettings></columnsettings> <url></url> <urlalt></urlalt> <urltarget></urltarget> </column> <column> <fieldname>devicename</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname>Device</columnname> <columnsettings></columnsettings> <url>[url]?filter=RAM Device Name.filter&amp;value=[quote [link $col]]&amp;</url> <urlalt>[language "Search Controls" ADDFILTER]</urlalt> <urltarget>_self</urltarget> </column> <column> <fieldname>video</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname>Video Controller</columnname> <columnsettings></columnsettings> <url></url> <urlalt></urlalt> <urltarget></urltarget> </column> <column> <fieldname>video_res</fieldname> <fieldtype>text</fieldtype> <fieldsettings></fieldsettings> <columnname>Video Resolution</columnname> <columnsettings></columnsettings> <url></url> <urlalt></urlalt> <urltarget></urltarget> </column> </columns> </detail> <!-- Graphical Mode/Chart Section --> <graph> <!-- Window Toolbar Functions --> <windowfunctions> <function> <name>ViewMode</name> </function> </windowfunctions> <!-- Chart Objects for Graphical Mode --> <charts> © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 38 of 40 All Rights Reserved <chart> <queryfile>CustomRIMDeviceVideoInfoGraph</queryfile> <queryfield>device_id</queryfield> <charttype>chart_drawBarChartStacked</charttype> <chartwidth>700</chartwidth> <chartheight>150</chartheight> <charttitle>Video Controllers</charttitle> <charturl></charturl> <params> </params> </chart> </charts> </graph> </windowobject> 4. Create a new ‘CustomRIMDeviceVideoInfo’ view file. 4.1. In the view directory, copy ‘RAMDevices.view’ to ‘CustomRIMDeviceVideoInfo.view’ 4.2. Edit the new CustomRIMDeviceVideoInfo.view file to reference our new window file as seen below: <viewobject> <global> <description>Video Info</description> <visible>true</visible> <require>DEFENABLE</require> <image>mode-detail.gif</image> </global> <headers> <header> <procname>windows_PrintFrameFunctions</procname> <functions>-</functions> </header> <header> <procname>windows_PrintFilterSummary</procname> <functions>-</functions> </header> </headers> <windows> <window> <windowobject>CustomRIMDeviceVideoInfo</windowobject> <!-- Window Object Overrides --> <windowstate>Maximize</windowstate> <windowmode>detail</windowmode> <detailindex>1</detailindex> <detailrange>15</detailrange> <detailsortfield>-</detailsortfield> <detailsortorder>-</detailsortorder> </window> </windows> <footers> <footer> <procname></procname> <functions></functions> </footer> </footers> </viewobject> 5. Create a new ‘CustomRIMDeviceVideoInfo’ viewgroup file. © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 39 of 40 All Rights Reserved 5.1. In the viewgroup directory, copy ‘RAMDevices.viewgroup’ to ‘CustomReports.viewgroup’ 5.2. Edit the new CustomReports.viewgroup file to reference our new view file as seen below: <viewgroupobject> <global> <description>Custom Reports</description> <visible>true</visible> <require>RAMENABLE</require> <image>ads-inventorymanager16.gif</image> <treelevel>top</treelevel> </global> <views> <viewobject>CustomRIMDeviceVideoInfo</viewobject> </views> </viewgroupobject> 6. Start a web browser, and visit the Radia Reporting Server web site. You will see a new ‘Custom Reports’ menu item in the Report Views List. Selecting this menu item will expose the ‘Video Info’ reporting view menu option. Selecting the ‘Video Info’ view will present the new detail report. 7. Selecting the Graph mode icon ( ) will present the defined chart: © Copyright 2004 Hewlett Packard Development Company, L.P. 2005-07-22 Page 40 of 40 All Rights Reserved