.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ChartType 3pm" .TH ChartType 3pm "2006-07-29" "Lire 2.1.1" "LogReport's Lire Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Lire::ChartType \- Base interface for all ChartType. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use base qw/ Lire::ChartType /; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This package defines the interface which is implemented by all the different charts that Lire is able to produce using the ploticus \fIpl\fR\|(1) command. .PP A chart type will generate a chart using data from a subreport. .SH "META INFORMATION METHODS" .IX Header "META INFORMATION METHODS" The Lire::ChartType interface extends the Lire::Plugin interface, so they must implement all standard meta-information methods (\fIname()\fR, \&\fItitle()\fR, \fIdescription()\fR). .SH "GENERATING A CHART" .IX Header "GENERATING A CHART" .ie n .SS "write_chart( $chart_config, $subreport, [ %params ] )" .el .SS "write_chart( \f(CW$chart_config\fP, \f(CW$subreport\fP, [ \f(CW%params\fP ] )" .IX Subsection "write_chart( $chart_config, $subreport, [ %params ] )" This will write a chart from the data contained in the Lire::Report::Subreport \f(CW$subreport\fR using the configuration \&\f(CW$chart_config\fR. Additional parameters are passed in 'key' => \f(CW$value\fR form. The \f(CW$chart_config\fR parameters should be a Lire::Config::Dictionary object instantiated from a Lire::Config::ChartSpec. .IP "outputdir" 4 .IX Item "outputdir" Directory where the file will be created. Use the working directory by default. .IP "format" 4 .IX Item "format" One of eps, png, jpeg or gif. Default to the configuration variable lr_image_format. .PP The function returns the path to the created file. The filename is generated base on the 'name' configuration value or the subreport's id if the other isn't defined. The extension is added based on the output format. .PP It returns the file where the chart was written. .SS "\fIprefab()\fP" .IX Subsection "prefab()" This method must be implemented by the subclass and should return a string representing the first parameters to pass to ploticus (that is either \-prefab name or the path to a script file). .ie n .SS "write_parameters( $chart_config, $fh )" .el .SS "write_parameters( \f(CW$chart_config\fP, \f(CW$fh\fP )" .IX Subsection "write_parameters( $chart_config, $fh )" This method is used to write parameters to the ploticus file handle. This is the place to use the #set command to set all of the prefabs parameters. Subclass must chain to this implementation for the standard chart parameters. It also write '#set name' directives for each numerical variables defined by \fIget_vars()\fR. .ie n .SS "write_data( $chart_config, $subreport, $fh )" .el .SS "write_data( \f(CW$chart_config\fP, \f(CW$subreport\fP, \f(CW$fh\fP )" .IX Subsection "write_data( $chart_config, $subreport, $fh )" This method is used by the \fIwrite_chart()\fR implementation to write the chart data from \f(CW$subreport\fR to the Ploticus commond opened on \f(CW$fh\fR. It uses the \fIget_vars()\fR method to obtain the numerical variables that should be written to the stream and the \fIencode_value()\fR method to marshall values before writing them. Before any data is written to \f(CW$fh\fR the maximum value on the Y axis is determined and output as a ploticus setting. (ploticus fails if this is not set, a single bar is drawn and the value is greater than 1.1e9.) .ie n .SS "get_vars( $chart_config )" .el .SS "get_vars( \f(CW$chart_config\fP )" .IX Subsection "get_vars( $chart_config )" This method should be overriden by subclasses to return an array reference containing the Lire::Report::ColumnInfo specifying the numerical column's of data that should be written. This is usually specified using a ReferenceSpec with the 'numerical_variables' index. .PP These variables will start at the ploticus index 2 (@2). .ie n .SS "encode_value( $value )" .el .SS "encode_value( \f(CW$value\fP )" .IX Subsection "encode_value( $value )" By default, this method just returns the 'content' component of the item when the \f(CW$value\fR is a name and the 'value' component otherwise. It can used for data type that needs special encoding (like datetime). .SH "SEE ALSO" .IX Header "SEE ALSO" .Vb 1 \& Lire::PluginManager(3pm) Lire::Config::ChartSpec(3pm) .Ve .SH "AUTHOR" .IX Header "AUTHOR" Francis J. Lacoste .SH "VERSION" .IX Header "VERSION" \&\f(CW$Id:\fR ChartType.pm,v 1.17 2006/07/29 18:01:14 vanbaal Exp $ .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 2004 Stichting LogReport Foundation LogReport@LogReport.org .PP This file is part of Lire. .PP Lire is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .PP This program is distributed in the hope that it will be useful, but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. See the \&\s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License along with this program (see \s-1COPYING\s0); if not, check with http://www.gnu.org/copyleft/gpl.html.