Changes between Version 2 and Version 3 of TracReports


Ignore:
Timestamp:
06/12/09 11:45:09 (4 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracReports

    v2 v3  
    66 
    77Rather than have its own report definition format, TracReports relies on standard SQL 
    8 `SELECT` statements for custom report definition. 
     8`SELECT` statements for custom report definition.  
    99 
    1010  '''Note:''' ''The report module is being phased out in its current form because it seriously limits the ability of the Trac team to make adjustments to the underlying database schema. We believe that the [wiki:TracQuery query module] is a good replacement that provides more flexibility and better usability. While there are certain reports that cannot yet be handled by the query module, we intend to further enhance it so that at some point the reports module can be completely removed. This also means that there will be no major enhancements to the report module anymore.'' 
     
    1717  ''This will make the query module the default handler for the “View Tickets” navigation item. We encourage you to try this configuration and report back what kind of features of reports you are missing, if any.'' 
    1818 
     19  '''''You will almost definitely need to restart your httpd at this point.''''' 
     20 
    1921A report consists of these basic parts: 
    20  * '''ID''' -- Unique (sequential) identifier 
     22 * '''ID''' -- Unique (sequential) identifier  
    2123 * '''Title'''  -- Descriptive title 
    2224 * '''Description'''  -- A brief description of the report, in WikiFormatting text. 
     
    2527 
    2628== Changing Sort Order == 
    27 Simple reports - ungrouped reports to be specific - can be changed to be sorted by any column simply by clicking the column header. 
     29Simple reports - ungrouped reports to be specific - can be changed to be sorted by any column simply by clicking the column header.  
    2830 
    2931If a column header is a hyperlink (red), click the column you would like to sort by. Clicking the same header again reverses the order. 
    3032 
     33== Changing Report Numbering == 
     34There may be instances where you need to change the ID of the report, perhaps to organize the reports better. At present this requires changes to the trac database. The ''report'' table has the following schema (as of 0.10): 
     35 * id integer PRIMARY KEY 
     36 * author text 
     37 * title text 
     38 * query text 
     39 * description text 
     40Changing the ID changes the shown order and number in the ''Available Reports'' list and the report's perma-link. This is done by running something like: 
     41{{{ 
     42update report set id=5 where id=3; 
     43}}} 
     44Keep in mind that the integrity has to be maintained (i.e., ID has to be unique, and you don't want to exceed the max, since that's managed by SQLite someplace). 
     45 
     46== Navigating Tickets == 
     47Clicking on one of the report results will take you to that ticket. You can navigate through the results by clicking the ''Next Ticket'' or ''Previous Ticket'' links just below the main menu bar, or click the ''Back to Report'' link to return to the report page. 
     48 
     49You can safely edit any of the tickets and continue to navigate through the results using the Next/Previous/Back to Report links after saving your results, but when you return to the report, there will be no hint about what has changed, as would happen if you were navigating a list of tickets obtained from a query (see TracQuery#NavigatingTickets). ''(since 0.11)'' 
    3150 
    3251== Alternative Download Formats == 
    3352Aside from the default HTML view, reports can also be exported in a number of alternative formats. 
    34 At the bottom of the report page, you will find a list of available data formats. Click the desired link to 
     53At the bottom of the report page, you will find a list of available data formats. Click the desired link to  
    3554download the alternative report format. 
    3655 
     
    4059 
    4160=== Tab-delimited === 
    42 Like above, but uses tabs (\t) instead of comma. 
     61Like above, but uses tabs (     ) instead of comma. 
    4362 
    4463=== RSS - XML Content Syndication === 
     
    6180The ''ticket'' table has the following columns: 
    6281 * id 
     82 * type 
    6383 * time 
    6484 * changetime 
    6585 * component 
    66  * severity 
    67  * priority 
     86 * severity   
     87 * priority  
    6888 * owner 
    6989 * reporter 
     
    7595 * summary 
    7696 * description 
     97 * keywords 
    7798 
    7899See TracTickets for a detailed description of the column fields. 
     
    82103'''Example:''' ''All active tickets, sorted by priority and time'' 
    83104{{{ 
    84 SELECT id AS ticket, status, severity, priority, owner, 
    85        time as created, summary FROM ticket 
     105SELECT id AS ticket, status, severity, priority, owner,  
     106       time as created, summary FROM ticket  
    86107  WHERE status IN ('new', 'assigned', 'reopened') 
    87108  ORDER BY priority, time 
     
    93114 
    94115== Advanced Reports: Dynamic Variables == 
    95 For more flexible reports, Trac supports the use of ''dynamic variables'' in report SQL statements. 
     116For more flexible reports, Trac supports the use of ''dynamic variables'' in report SQL statements.  
    96117In short, dynamic variables are ''special'' strings that are replaced by custom data before query execution. 
    97118 
     
    101122Example: 
    102123{{{ 
    103 SELECT id AS ticket,summary FROM ticket WHERE priority='$PRIORITY' 
    104 }}} 
    105  
    106 To assign a value to $PRIORITY when viewing the report, you must define it as an argument in the report URL, leaving out the the leading '$'. 
     124SELECT id AS ticket,summary FROM ticket WHERE priority=$PRIORITY 
     125}}} 
     126 
     127To assign a value to $PRIORITY when viewing the report, you must define it as an argument in the report URL, leaving out the leading '$'. 
    107128 
    108129Example: 
    109130{{{ 
    110  http://projects.edgewall.com/trac/reports/14?PRIORITY=high 
     131 http://trac.edgewall.org/reports/14?PRIORITY=high 
    111132}}} 
    112133 
     
    115136Example: 
    116137{{{ 
    117  http://projects.edgewall.com/trac/reports/14?PRIORITY=high&SEVERITY=critical 
     138 http://trac.edgewall.org/reports/14?PRIORITY=high&SEVERITY=critical 
    118139}}} 
    119140 
    120141 
    121142=== Special/Constant Variables === 
    122 There is one ''magic'' dynamic variable to allow practical reports, its value automatically set without having to change the URL. 
     143There is one ''magic'' dynamic variable to allow practical reports, its value automatically set without having to change the URL.  
    123144 
    124145 * $USER -- Username of logged in user. 
     
    126147Example (''List all tickets assigned to me''): 
    127148{{{ 
    128 SELECT id AS ticket,summary FROM ticket WHERE owner='$USER' 
     149SELECT id AS ticket,summary FROM ticket WHERE owner=$USER 
    129150}}} 
    130151 
     
    140161== Special Columns == 
    141162To format reports, TracReports looks for 'magic' column names in the query 
    142 result. These 'magic' names are processed and affect the layout and style of the 
     163result. These 'magic' names are processed and affect the layout and style of the  
    143164final report. 
    144165 
    145166=== Automatically formatted columns === 
    146  * '''ticket''' -- Ticket ID number. Becomes a hyperlink to that ticket. 
     167 * '''ticket''' -- Ticket ID number. Becomes a hyperlink to that ticket.  
    147168 * '''created, modified, date, time''' -- Format cell as a date and/or time. 
    148169 
     
    151172'''Example:''' 
    152173{{{ 
    153 SELECT id as ticket, created, status, summary FROM ticket 
     174SELECT id as ticket, created, status, summary FROM ticket  
    154175}}} 
    155176 
     
    157178Columns whose names begin and end with 2 underscores (Example: '''`__color__`''') are 
    158179assumed to be ''formatting hints'', affecting the appearance of the row. 
    159  
     180  
    160181 * '''`__group__`''' -- Group results based on values in this column. Each group will have its own header and table. 
    161182 * '''`__color__`''' -- Should be a numeric value ranging from 1 to 5 to select a pre-defined row color. Typically used to color rows by issue priority. 
    162  * '''`__style__`''' -- A custom CSS style expression to use for the current row. 
     183{{{ 
     184#!html 
     185<div style="margin-left:7.5em">Defaults:  
     186<span style="border: none; color: #333; background: transparent;  font-size: 85%; background: #fdc; border-color: #e88; color: #a22">Color 1</span> 
     187<span style="border: none; color: #333; background: transparent;  font-size: 85%; background: #ffb; border-color: #eea; color: #880">Color 2</span> 
     188<span style="border: none; color: #333; background: transparent;  font-size: 85%; background: #fbfbfb; border-color: #ddd; color: #444">Color 3</span> 
     189<span style="border: none; color: #333; background: transparent; font-size: 85%; background: #e7ffff; border-color: #cee; color: #099">Color 4</span> 
     190<span style="border: none; color: #333; background: transparent;  font-size: 85%; background: #e7eeff; border-color: #cde; color: #469">Color 5</span> 
     191</div> 
     192}}} 
     193 * '''`__style__`''' -- A custom CSS style expression to use for the current row.  
    163194 
    164195'''Example:''' ''List active tickets, grouped by milestone, colored by priority'' 
     
    169200       t.id AS ticket, summary 
    170201  FROM ticket t,enum p 
    171   WHERE t.status IN ('new', 'assigned', 'reopened') 
     202  WHERE t.status IN ('new', 'assigned', 'reopened')  
    172203    AND p.name=t.priority AND p.type='priority' 
    173204  ORDER BY t.milestone, p.value, t.severity, t.time 
     
    193224SELECT p.value AS __color__, 
    194225       t.milestone AS __group__, 
    195        (CASE owner 
    196           WHEN 'daniel' THEN 'font-weight: bold; background: red;' 
     226       (CASE owner  
     227          WHEN 'daniel' THEN 'font-weight: bold; background: red;'  
    197228          ELSE '' END) AS __style__, 
    198229       t.id AS ticket, summary AS summary_,             -- ## Break line here 
     
    202233       changetime AS _changetime, reporter AS _reporter -- ## Hidden from HTML output 
    203234  FROM ticket t,enum p 
    204   WHERE t.status IN ('new', 'assigned', 'reopened') 
     235  WHERE t.status IN ('new', 'assigned', 'reopened')  
    205236    AND p.name=t.priority AND p.type='priority' 
    206237  ORDER BY t.milestone, p.value, t.severity, t.time 
     
    209240=== Reporting on custom fields === 
    210241 
    211 If you have added custom fields to your tickets (experimental feature in v0.8, see TracTicketsCustomFields), you can write a SQL query to cover them. You'll need to make a join on the ticket_custom table, but this isn't especially easy. 
    212  
    213 If you have tickets in the database ''before'' you declare the extra fields in trac.ini, there will be no associated data in the ticket_custom table. To get around this, use SQL's "LEFT OUTER JOIN" clauses. See TracIniReportCustomFieldSample for some examples. 
    214  
    215 ---- 
    216 See also: TracTickets, TracQuery, TracGuide 
     242If you have added custom fields to your tickets (a feature since v0.8, see TracTicketsCustomFields), you can write a SQL query to cover them. You'll need to make a join on the ticket_custom table, but this isn't especially easy. 
     243 
     244If you have tickets in the database ''before'' you declare the extra fields in trac.ini, there will be no associated data in the ticket_custom table. To get around this, use SQL's "LEFT OUTER JOIN" clauses. See [trac:TracIniReportCustomFieldSample TracIniReportCustomFieldSample] for some examples. 
     245 
     246'''Note that you need to set up permissions in order to see the buttons for adding or editing reports.''' 
     247 
     248---- 
     249See also: TracTickets, TracQuery, TracGuide, [http://www.sqlite.org/lang_expr.html Query Language Understood by SQLite] 

Ihr Browser versucht gerade eine Seite aus dem sogenannten Internet auszudrucken. Das Internet ist ein weltweites Netzwerk von Computern, das den Menschen ganz neue Möglichkeiten der Kommunikation bietet.

Da Politiker im Regelfall von neuen Dingen nichts verstehen, halten wir es für notwendig, sie davor zu schützen. Dies ist im beidseitigen Interesse, da unnötige Angstzustände bei Ihnen verhindert werden, ebenso wie es uns vor profilierungs- und machtsüchtigen Politikern schützt.

Sollten Sie der Meinung sein, dass Sie diese Internetseite dennoch sehen sollten, so können Sie jederzeit durch normalen Gebrauch eines Internetbrowsers darauf zugreifen. Dazu sind aber minimale Computerkenntnisse erforderlich. Sollten Sie diese nicht haben, vergessen Sie einfach dieses Internet und lassen uns in Ruhe.

Die Umgehung dieser Ausdrucksperre ist nach §95a UrhG verboten.

Mehr Informationen unter www.politiker-stopp.de.