.ig >>
<STYLE TYPE="text/css">
<!--
        A:link{text-decoration:none}
        A:visited{text-decoration:none}
        A:active{text-decoration:none}
        OL,UL,P,BODY,TD,TR,TH,FORM { font-family: arial,helvetica,sans-serif;; font-size:small; color: #333333; }

        H1 { font-size: x-large; font-family: arial,helvetica,sans-serif; }
        H2 { font-size: large; font-family: arial,helvetica,sans-serif; }
        H3 { font-size: medium; font-family: arial,helvetica,sans-serif; }
        H4 { font-size: small; font-family: arial,helvetica,sans-serif; }
-->
</STYLE>
<title>ploticus: proc print</title>
<body bgcolor=D0D0EE vlink=0000FF>
<br>
<br>
<center>
<table cellpadding=2 bgcolor=FFFFFF width=550><tr>
<td>
  <table cellpadding=2 width=550><tr>
  <td><br><h2>proc print</h2></td>
  <td align=right>
  <small>
  <a href="../doc/welcome.html"><img src="../doc/ploticus.gif" border=0></a><br>
  Version 2.41 Mar2009
     </small><br><a href="../doc/scripthome.html">Scripts</a>
  <td></tr></table>
</td></tr>
<td>
<br>
<br>
.>>

.TH proc_print PL "11-MAR-2009   PL ploticus.sourceforge.net"

.LP
\fBproc print\fR is a utility proc that doesn't draw anything.  Instead, it has the following uses:
.IP \(bu
Print contents of script variables (but see also #write/#endwrite)
.IP \(bu
Print contents of data fields from data rows meeting certain \fCselect\fR criteria (for example, outliers)
.IP \(bu
Count number of data rows meeting a certain \fCselect\fR criteria (sets NSELECTED)
.IP \(bu
Find the data row where a certain item resides (sets FOUNDROW).  This row number can then be fed to the 
.ig >>
<a href="functions.html#ploticus">
.>>
\0$dataitem() function
.ig >>
</a>
.>>
to access other data from the same row.
.LP
Result can be written to a file if \fCoutfile\fR is specified; otherwise the result
appears on the diagnostic stream (controlled by the pl \fB-diagfile\fR command line option).
Because proc print turns out to have some distinct usefulness, it is no longer deprecated as of 2.41

.ig >>
<br><br><br>
.>>

.SH Attributes
.LP
\fBlabel\fR 
.ig >>
&nbsp; &nbsp;
.>>
text
.IP \0
Arbitrary text that will be printed once.  May include
@variable references using one at-sign (@).  Typically
used to examine contents of variables or to print a header
for the cases listed by the \fCselect\fR and \fCprint\fR attributes.

.ig >>
<br><br>
.>>

.LP
\fBselect\fR 
.ig >>
&nbsp; &nbsp;
.>>
.ig >>
<a href="select.html">
.>>
\0select expression
.ig >>
</a>
.>>
.IP \0
Selects data records to print, using the \fCprint\fR template.

.ig >>
<br><br>
.>>

.LP
\fBprint\fR 
.ig >>
&nbsp; &nbsp;
.>>
text
.IP \0
A template which may include variable and data field references.
This template will be printed once for every data record
that passes the selection condition.
Data fields are referenced by preceding with two at-signs (@@).
See example below.
.IP
This attribute may be left undefined if you are only using proc print to compute NSELECTED or FOUNDROW.

.ig >>
<br><br>
.>>

.LP
\fBoutfile\fR 
.ig >>
&nbsp; &nbsp;
.>>
\fIfilename\fR
.IP \0
If specified, the results of proc print will be written to this file.
If unspecified, results are written to the diagnostic stream (controllable
using -diagfile on command line). 

.ig >>
<br><br>
.>>
.LP
\fBoutmode\fR  
.ig >>
&nbsp; &nbsp;
.>>
\fCw | a\fR
.IP \0
Controls the file write mode for \fCoutfile\fR.  Default is \fCw\fR.
w = write (create new file / erase
any current contents); a = append (append to any existing contents; if none then
create new file).  See also fopen(2).

.ig >>
<br><br><br>
.>>

.SH Variables that are set by proc print
.LP
Note, these variables are available to the ploticus script \fBafter\fR the proc completes execution.  
We recommend that you use #endproc to delineate the end of proc print.  Also, you don't need to print anything
if you're just getting these values.
.LP
\fBNSELECTED\fR is set to the number of records selected.
This may be used, for example, to count number of records meeting a certain criteria (as given in the \fCselect\fR statement).
.LP
\fBFOUNDROW\fR is set to the row number (first = 1) of the first data row to successfully match the select statement.
0 when no matches are found.
This may be used (along with the \fCselect\fR statement) to find the data row where a certain item resides. (new in 2.41)
.LP

.ig >>
<br><br><br>
.>>

.SH Example
.nf
\0#proc print
\0label: Outliers:
\0select: @@3 > 300
\0print: @@1 @@2 had a score of @@3
\0#endproc
\0
\0#proc print
\0label: @NSELECTED rows met the above criteria.
.fi


.ig >>
<br>
<br>
</td></tr>
<td align=right>
<a href="../doc/welcome.html">
<img src="../doc/ploticus.gif" border=0></a><br><small>data display engine &nbsp; <br>
<a href="../doc/Copyright.html">Copyright Steve Grubb</a>
<br>
<br>
<center>
<img src="../gallery/all.gif"> 
</center>
</td></tr>
</table>
<br>
<center>
<table><tr><td>
Ploticus is hosted at http://ploticus.sourceforge.net</td><td> &nbsp; </td><td>
<a href="http://sourceforge.net/projects/ploticus"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=38453&type=12" 
width="120" height="30" border="0" 
alt="Get ploticus data display engine at SourceForge.net. Fast, secure and Free Open Source software downloads" /></a>
</td></tr></table>


</center>
.>>
