<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Reports and Charts</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="The Bugzilla Guide - 2.20.1 
    Release"
HREF="index.html"><LINK
REL="UP"
TITLE="Using Bugzilla"
HREF="using.html"><LINK
REL="PREVIOUS"
TITLE="User Preferences"
HREF="userpreferences.html"><LINK
REL="NEXT"
TITLE="Flags"
HREF="flags.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide - 2.20.1 
    Release</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="userpreferences.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. Using Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="flags.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="reporting"
>6.11. Reports and Charts</A
></H1
><P
>As well as the standard buglist, Bugzilla has two more ways of
    viewing sets of bugs. These are the reports (which give different
    views of the current state of the database) and charts (which plot
    the changes in particular sets of bugs over time.)</P
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="reports"
>6.11.1. Reports</A
></H2
><P
>&#13;        A report is a view of the current state of the bug database.
      </P
><P
>&#13;        You can run either an HTML-table-based report, or a graphical
        line/pie/bar-chart-based one. The two have different pages to
        define them, but are close cousins - once you've defined and
        viewed a report, you can switch between any of the different
        views of the data at will.
      </P
><P
>&#13;        Both report types are based on the idea of defining a set of bugs
        using the standard search interface, and then choosing some
        aspect of that set to plot on the horizontal and/or vertical axes.
        You can also get a form of 3-dimensional report by choosing to have
        multiple images or tables.
      </P
><P
>&#13;        So, for example, you could use the search form to choose "all
        bugs in the WorldControl product", and then plot their severity
        against their component to see which component had had the largest
        number of bad bugs reported against it. 
      </P
><P
>&#13;        Once you've defined your parameters and hit "Generate Report",
        you can switch between HTML, CSV, Bar, Line and Pie. (Note: Pie
        is only available if you didn't define a vertical axis, as pie
        charts don't have one.) The other controls are fairly self-explanatory;
        you can change the size of the image if you find text is overwriting
        other text, or the bars are too thin to see.
      </P
></DIV
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="charts"
>6.11.2. Charts</A
></H2
><P
>&#13;        A chart is a view of the state of the bug database over time.
      </P
><P
>&#13;        Bugzilla currently has two charting systems - Old Charts and New 
        Charts. Old Charts have been part of Bugzilla for a long time; they
        chart each status and resolution for each product, and that's all.
        They are deprecated, and going away soon - we won't say any more 
        about them.
        New Charts are the future - they allow you to chart anything you
        can define as a search.
      </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;          Both charting forms require the administrator to set up the
          data-gathering script. If you can't see any charts, ask them whether
          they have done so.
        </P
></TD
></TR
></TABLE
></DIV
><P
>&#13;        An individual line on a chart is called a data set.
        All data sets are organised into categories and subcategories. The 
        data sets that Bugzilla defines automatically use the Product name 
        as a Category and Component names as Subcategories, but there is no 
        need for you to follow that naming scheme with your own charts if 
        you don't want to.
      </P
><P
>&#13;        Data sets may be public or private. Everyone sees public data sets in
        the list, but only their creator sees private data sets. Only 
        administrators can make data sets public.
        No two data sets, even two private ones, can have the same set of 
        category, subcategory and name. So if you are creating private data 
        sets, one idea is to have the Category be your username.
      </P
><DIV
CLASS="section"
><H3
CLASS="section"
><A
NAME="AEN2484"
>6.11.2.1. Creating Charts</A
></H3
><P
>&#13;          You create a chart by selecting a number of data sets from the
          list, and pressing Add To List for each. In the List Of Data Sets
          To Plot, you can define the label that data set will have in the
          chart's legend, and also ask Bugzilla to Sum a number of data sets 
          (e.g. you could Sum data sets representing RESOLVED, VERIFIED and 
          CLOSED in a particular product to get a data set representing all 
          the resolved bugs in that product.)
        </P
><P
>&#13;          If you've erroneously added a data set to the list, select it
          using the checkbox and click Remove. Once you add more than one 
          data set, a "Grand Total" line
          automatically appears at the bottom of the list. If you don't want
          this, simply remove it as you would remove any other line.
        </P
><P
>&#13;          You may also choose to plot only over a certain date range, and
          to cumulate the results - that is, to plot each one using the 
          previous one as a baseline, so the top line gives a sum of all 
          the data sets. It's easier to try than to explain :-)
        </P
><P
>&#13;          Once a data set is in the list, one can also perform certain 
          actions on it. For example, one can edit the
          data set's parameters (name, frequency etc.) if it's one you
          created or if you are an administrator.
        </P
><P
>&#13;           Once you are happy, click Chart This List to see the chart.
        </P
></DIV
><DIV
CLASS="section"
><H3
CLASS="section"
><A
NAME="AEN2491"
>6.11.2.2. Creating New Data Sets</A
></H3
><P
>&#13;          You may also create new data sets of your own. To do this,
          click the "create a new data set" link on the Create Chart page.
          This takes you to a search-like interface where you can define
          the search that Bugzilla will plot. At the bottom of the page,
          you choose the category, sub-category and name of your new
          data set. 
        </P
><P
>&#13;          If you have sufficient permissions, you can make the data set public,
          and reduce the frequency of data collection to less than the default
          seven days.
        </P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="userpreferences.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="flags.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>User Preferences</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="using.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Flags</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>