forked from science-ation/science-ation
666 lines
21 KiB
PHP
666 lines
21 KiB
PHP
<?
|
|
|
|
/*
|
|
* This file is part of the 'Science Fair In A Box' project
|
|
* SFIAB Website: http://www.sfiab.ca
|
|
*
|
|
* Copyright (C) 2005 Sci-Tech Ontario Inc <info@scitechontario.org>
|
|
* Copyright (C) 2005 James Grant <james@lightbox.org>
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public
|
|
* License as published by the Free Software Foundation, version 2.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; see the file COPYING. If not, write to
|
|
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
?>
|
|
<?
|
|
|
|
require ('../common.inc.php');
|
|
require_once ('../user.inc.php');
|
|
user_auth_required('committee', 'admin');
|
|
|
|
require_once ('reports_students.inc.php');
|
|
require_once ('reports_judges.inc.php');
|
|
require_once ('reports_awards.inc.php');
|
|
require_once ('reports_committees.inc.php');
|
|
require_once ('reports_schools.inc.php');
|
|
require_once ('reports_volunteers.inc.php');
|
|
require_once ('reports_tours.inc.php');
|
|
require_once ('reports_fairs.inc.php');
|
|
require_once ('reports_fundraising.inc.php');
|
|
require_once ('reports.inc.php');
|
|
// require_once ('../tcpdf.inc.php');
|
|
|
|
$fields = array();
|
|
$locs = array('X' => 'x', 'Y' => 'y', 'W' => 'w', 'H' => 'h', 'Lines' => 'lines');
|
|
|
|
function field_selector($name, $id, $selected)
|
|
{
|
|
global $fields;
|
|
$in_optgroup = false;
|
|
echo "<select name=\"$name\" id=\"$id\">";
|
|
echo '<option value="" />-- None --</option>';
|
|
foreach ($fields as $k => $f) {
|
|
if ($f['editor_disabled'] == true)
|
|
continue;
|
|
if (array_key_exists('start_option_group', $f)) {
|
|
if ($in_optgroup)
|
|
echo '</optgroup>';
|
|
echo '<optgroup label="' . i18n($f['start_option_group']) . '">';
|
|
}
|
|
if ($f['name'] == 'Project -- Type') { // filter out if the configuration setting does not allow for the project type
|
|
global $config;
|
|
if ($config['project_type'] == 'no')
|
|
continue;
|
|
}
|
|
$sel = ($selected == $k) ? 'selected=\"selected\"' : '';
|
|
echo "<option value=\"$k\" $sel >{$f['name']}</option>";
|
|
}
|
|
if ($in_optgroup)
|
|
echo '</optgroup>';
|
|
echo '</select>';
|
|
}
|
|
|
|
function selector($name, $a, $selected, $onchange = '')
|
|
{
|
|
echo "<select name=\"$name\" $onchange >";
|
|
foreach ($a as $v => $val) {
|
|
$sel = ($selected == $v) ? 'selected=selected' : '';
|
|
echo "<option value=\"$v\" $sel>$val</option>";
|
|
}
|
|
echo '</select>';
|
|
}
|
|
|
|
function parse_fields($f)
|
|
{
|
|
global $locs;
|
|
$ret = array();
|
|
if (!is_array(get_value_from_array($_POST, $f)))
|
|
return array();
|
|
$x = 0;
|
|
foreach ($_POST[$f] as $o => $d) {
|
|
if (is_array($d)) {
|
|
$a = array();
|
|
foreach ($d as $l => $v) {
|
|
/* Scrub the array data */
|
|
$floatloc = array_values($locs);
|
|
if ($l == 'field' || $l == 'value') {
|
|
$v = stripslashes($v);
|
|
} else if (in_array($l, $floatloc)) {
|
|
$v = floatval($v);
|
|
if ($l == 'lines' && $v == 0)
|
|
$v = 1;
|
|
} else if ($l == 'face') {
|
|
$v = ($v == 'bold') ? 'bold' : '';
|
|
} else if ($l == 'align') {
|
|
$aligns = array('left', 'right', 'center');
|
|
if (!in_array($v, $aligns)) {
|
|
echo "Invalid alignment $v";
|
|
exit;
|
|
}
|
|
} else if ($l == 'valign') {
|
|
$aligns = array('vtop', 'vbottom', 'vcenter', 'top', 'middle', 'bottom');
|
|
if (!in_array($v, $aligns)) {
|
|
echo "Invalid valignment $v";
|
|
exit;
|
|
}
|
|
}
|
|
$a[$l] = $v;
|
|
}
|
|
if (trim($a['field']) == '')
|
|
continue;
|
|
$ret[$x] = $a;
|
|
} else {
|
|
if (trim($d) == '')
|
|
continue;
|
|
$ret[$x]['field'] = stripslashes($d);
|
|
}
|
|
$x++;
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
function parse_options($f)
|
|
{
|
|
$ret = array();
|
|
if (!is_array(get_value_from_array($_POST, $f)))
|
|
return array();
|
|
foreach ($_POST[$f] as $c => $v) {
|
|
if (trim($c) == '')
|
|
continue;
|
|
$ret[$c] = stripslashes($v);
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
/* Decode the report */
|
|
$report = array();
|
|
$report['id'] = intval(get_value_from_array($_POST, 'id', ''));
|
|
$report['name'] = stripslashes(get_value_from_array($_POST, 'name', ''));
|
|
$report['creator'] = stripslashes(get_value_from_array($_POST, 'creator', ''));
|
|
$report['desc'] = stripslashes(get_value_from_array($_POST, 'desc', ''));
|
|
$report['type'] = stripslashes(get_value_from_array($_POST, 'type', ''));
|
|
$report['col'] = parse_fields('col');
|
|
$report['group'] = parse_fields('group');
|
|
$report['sort'] = parse_fields('sort');
|
|
$report['distinct'] = parse_fields('distinct');
|
|
$report['option'] = parse_options('option');
|
|
$report['filter'] = parse_fields('filter');
|
|
|
|
// print("<pre>");print_r($_POST);print("</pre>");
|
|
// print("<pre>");print_r($report);print("</pre>");
|
|
|
|
$reloadaction = get_value_from_array($_POST, 'reloadaction', '');
|
|
$loadaction = get_value_from_array($_POST, 'loadaction', '');
|
|
$colaction = get_value_from_array($_POST, 'colaction', '');
|
|
$repaction = get_value_from_array($_POST, 'repaction', '');
|
|
|
|
$repaction_save = $repaction;
|
|
|
|
/* Sort out priorities */
|
|
if ($reloadaction != '') {
|
|
$loadaction = '';
|
|
$colaction = '';
|
|
$repaction = '';
|
|
}
|
|
|
|
if ($loadaction != '') {
|
|
$id = intval($_POST['id']);
|
|
$report = report_load($id);
|
|
if ($id == 0)
|
|
$report['type'] = 'student';
|
|
$colaction = '';
|
|
$repaction = '';
|
|
}
|
|
|
|
if ($colaction != '') {
|
|
$repaction = '';
|
|
}
|
|
|
|
if ($repaction == 'try') {
|
|
/* Generate the report from what was passed through POST */
|
|
report_gen($report);
|
|
exit;
|
|
}
|
|
|
|
send_header('Reports Editor',
|
|
array('Committee Main' => 'committee_main.php',
|
|
'Administration' => 'admin/index.php'),
|
|
'report_management');
|
|
|
|
?>
|
|
<script type="text/javascript">
|
|
function reportReload()
|
|
{
|
|
document.forms.report.reloadaction.value = 'reload';
|
|
document.forms.report.submit();
|
|
}
|
|
|
|
var canvasWidth=0;
|
|
var canvasHeight=0;
|
|
var canvasObjectIndex=0;
|
|
var labelWidth=0;
|
|
var labelHeight=0;
|
|
|
|
function initCanvas(w,h,lw,lh) {
|
|
canvasWidth=w;
|
|
canvasHeight=h;
|
|
labelWidth=lw;
|
|
labelHeight=lh;
|
|
}
|
|
|
|
function createData(x,y,w,h,l,face,align,valign,value) {
|
|
var canvas=document.getElementById('layoutcanvas');
|
|
var newdiv=document.createElement('div');
|
|
if(valign=="vcenter") verticalAlign="middle";
|
|
else if(valign=="vtop") verticalAlign="top";
|
|
else if(valign=="vbottom") verticalAlign="bottom";
|
|
else verticalAlign="top";
|
|
// alert(verticalAlign);
|
|
|
|
//convert x,y,w,h from % to absolute
|
|
|
|
var dx=Math.round(x*canvasWidth/100);
|
|
var dy=Math.round(y*canvasHeight/100);
|
|
var dw=Math.round(w*canvasWidth/100);
|
|
var dh=Math.round(h*canvasHeight/100);
|
|
// alert(dx+','+dy+','+dw+','+dh);
|
|
|
|
var fontheight=Math.round(dh/l);
|
|
|
|
newdiv.setAttribute('id','o_'+canvasObjectIndex);
|
|
newdiv.style.display="table-cell";
|
|
newdiv.style.position="absolute";
|
|
newdiv.style.width=dw+"px";
|
|
newdiv.style.height=dh+"px";
|
|
newdiv.style.left=dx+"px";
|
|
newdiv.style.top=dy+"px";
|
|
newdiv.style.textAlign=align;
|
|
newdiv.style.verticalAlign=verticalAlign;
|
|
newdiv.style.padding="0 0 0 0";
|
|
newdiv.style.margin="0 0 0 0";
|
|
// newdiv.style.vertical-align=valign;
|
|
newdiv.style.border="1px solid blue";
|
|
newdiv.style.fontSize=fontheight+"px";
|
|
newdiv.style.lineHeight=fontheight+"px";
|
|
newdiv.style.fontFamily="Verdana";
|
|
newdiv.style.fontSizeAdjust=0.65;
|
|
|
|
var maxlength=Math.floor(dw/(fontheight*0.7))*l;
|
|
if(value.length>maxlength) value=value.substring(0,maxlength);
|
|
newdiv.innerHTML=value; //"Maple Test xxxx"; //value;
|
|
|
|
canvas.appendChild(newdiv);
|
|
|
|
canvasObjectIndex++;
|
|
}
|
|
|
|
function createDataTCPDF(x,y,w,h,align,valign,fontname,fontstyle,fontsize,value) {
|
|
|
|
var canvas=document.getElementById('layoutcanvas');
|
|
var newdiv=document.createElement('div');
|
|
|
|
var dx = Math.round(x * canvasWidth / labelWidth);
|
|
var dy = Math.round(y * canvasHeight / labelHeight);
|
|
var dw = Math.round(w * canvasWidth / labelWidth);
|
|
var dh = Math.round(h * canvasHeight / labelHeight);
|
|
|
|
|
|
var fontheight=(fontsize * 25.4 / 72) * canvasHeight / labelHeight;
|
|
var l = Math.floor(h/fontheight);
|
|
if(fontheight == 0) fontheight=10;
|
|
if(l==0) l=1;
|
|
|
|
// alert(dh + ", fh="+fontheight);
|
|
|
|
newdiv.setAttribute('id','o_'+canvasObjectIndex);
|
|
newdiv.style.display="table-cell";
|
|
newdiv.style.position="absolute";
|
|
newdiv.style.width=dw+"px";
|
|
newdiv.style.height=dh+"px";
|
|
newdiv.style.left=dx+"px";
|
|
newdiv.style.top=dy+"px";
|
|
newdiv.style.textAlign=align;
|
|
newdiv.style.verticalAlign=valign;
|
|
newdiv.style.padding="0 0 0 0";
|
|
newdiv.style.margin="0 0 0 0";
|
|
// newdiv.style.vertical-align=valign;
|
|
newdiv.style.border="1px solid blue";
|
|
newdiv.style.fontSize=fontheight+"px";
|
|
newdiv.style.lineHeight=fontheight+"px";
|
|
newdiv.style.fontFamily=fontname;
|
|
newdiv.style.fontSizeAdjust=0.65;
|
|
|
|
var maxlength=Math.floor(dw/(fontheight*0.7))*l;
|
|
if(value.length>maxlength) value=value.substring(0,maxlength);
|
|
|
|
newdiv.innerHTML=value;
|
|
|
|
canvas.appendChild(newdiv);
|
|
|
|
canvasObjectIndex++;
|
|
}
|
|
|
|
</script>
|
|
<?
|
|
|
|
if ($repaction == 'save') {
|
|
/* Save the report */
|
|
$report['id'] = report_save($report);
|
|
echo happy(i18n('Report Saved'));
|
|
}
|
|
|
|
if ($repaction == 'del') {
|
|
report_delete($report['id']);
|
|
echo happy(i18n('Report Deleted'));
|
|
}
|
|
|
|
if ($repaction == 'dupe') {
|
|
$report['id'] = 0;
|
|
$report['id'] = report_save($report);
|
|
echo happy(i18n('Report Duplicated'));
|
|
}
|
|
|
|
if ($repaction == 'export') {
|
|
echo '<pre>';
|
|
$q = $pdo->prepare('SELECT system_report_id FROM reports WHERE 1 ORDER BY system_report_id DESC');
|
|
$q->execute();
|
|
$r = $q->fetch(PDO::FETCH_ASSOC);
|
|
$sid = $r['system_report_id'] + 1;
|
|
$n = $report['name'];
|
|
$c = $report['creator'];
|
|
$d = $report['desc'];
|
|
$t = $report['type'];
|
|
|
|
echo "INSERT INTO `reports` (`id`, `system_report_id`, `name`, `desc`, `creator`, `type`) VALUES\n";
|
|
echo " ('', '$sid', '$n', '$d', '$c', '$t');\n";
|
|
|
|
echo 'INSERT INTO `reports_items` (`id`, `reports_id`, `type`, `ord`, `field`, `value`, `x`, `y`, `w`, `h`, `lines`, `face`, `align`) VALUES ';
|
|
|
|
/* Do the options */
|
|
$x = 0;
|
|
foreach ($report['option'] as $k => $v) {
|
|
echo "\n\t('', LAST_INSERT_ID(), 'option', $x, '$k', '" . $v . "', 0, 0, 0, 0, 0, '', ''),";
|
|
$x++;
|
|
}
|
|
/* Do the fields */
|
|
$fs = array('col', 'group', 'sort', 'distinct', 'filter');
|
|
$first = true;
|
|
foreach ($fs as $f) {
|
|
foreach ($report[$f] as $x => $v) {
|
|
$k = $v['field'];
|
|
$vx = intval($v['x']);
|
|
$vy = intval($v['y']);
|
|
$vw = intval($v['w']);
|
|
$vh = intval($v['h']);
|
|
$vlines = intval($v['lines']);
|
|
if ($vlines == 0)
|
|
$vlines = 1;
|
|
$face = $v['face'];
|
|
$align = $v['align'] . ' ' . $v['valign'];
|
|
$value = stripslashes($v['value']);
|
|
if (!$first)
|
|
echo ',';
|
|
$first = false;
|
|
echo "\n\t('', LAST_INSERT_ID(), '$f', $x, '$k', '$value', $vx, $vy, $vw, $vh, $vlines, '$face', '$align')";
|
|
}
|
|
}
|
|
echo ";\n";
|
|
echo '</pre>';
|
|
}
|
|
|
|
/* ---- Setup ------ */
|
|
|
|
$n_columns = intval(get_value_from_array($_POST, 'ncolumns'));
|
|
$n = count($report['col']) + 1;
|
|
if ($n > $n_columns)
|
|
$n_columns = $n;
|
|
if ($colaction == 'add')
|
|
$n_columns += 3;
|
|
|
|
$fieldvar = "report_{$report['type']}s_fields";
|
|
if (isset($$fieldvar))
|
|
$fields = $$fieldvar;
|
|
|
|
echo '<br />';
|
|
|
|
echo '<form method="post" name="reportload" action="reports_editor.php" onChange="document.reportload.submit()">';
|
|
echo '<input type="hidden" name="loadaction" value="load" />';
|
|
echo '<select name="id" id="report">';
|
|
echo '<option value="0">' . i18n('Create New Report') . "</option>\n";
|
|
|
|
$reports = report_load_all();
|
|
$x = 0;
|
|
foreach ($reports as $r) {
|
|
$sel = ($report['id'] == $r['id']) ? 'selected=\"selected\"' : '';
|
|
echo "<option value=\"{$r['id']}\" $sel>{$r['name']}</option>\n";
|
|
}
|
|
echo '</select>';
|
|
echo '<input type="submit" value="Load"></form>';
|
|
echo '<hr />';
|
|
|
|
echo '<form method="post" name="report" action="reports_editor.php">';
|
|
echo "<input type=\"hidden\" name=\"id\" value=\"{$report['id']}\" />";
|
|
echo "<input type=\"hidden\" name=\"ncolumns\" value=\"$n_columns\" />";
|
|
|
|
echo '<h4>Report Information</h4>';
|
|
echo '<table>';
|
|
echo '<tr><td>Name: </td>';
|
|
echo "<td><input type=\"text\" name=\"name\" size=\"80\" value=\"{$report['name']}\" /></td>";
|
|
echo '</tr>';
|
|
echo '<tr><td>Created By: </td>';
|
|
echo "<td><input type=\"text\" name=\"creator\" size=\"80\" value=\"{$report['creator']}\" /></td>";
|
|
echo '</tr>';
|
|
echo '<tr><td>Description: </td>';
|
|
echo "<td><textarea name=\"desc\" rows=\"3\" cols=\"60\">{$report['desc']}</textarea></td>";
|
|
echo '</tr>';
|
|
echo '<tr><td>Type: </td>';
|
|
echo '<td>';
|
|
selector('type', array('student' => 'Student Report', 'judge' => 'Judge Report',
|
|
'award' => 'Award Report', 'committee' => 'Committee Member Report',
|
|
'school' => 'School Report', 'volunteer' => 'Volunteer Report',
|
|
'tour' => 'Tour Report', 'fair' => 'Feeder Fair Report',
|
|
'fundraising' => 'Fundraising Report'),
|
|
$report['type'],
|
|
'onChange="reportReload();"');
|
|
echo '<input type="hidden" name="reloadaction" value="">';
|
|
echo '</td>';
|
|
echo '</tr></table>';
|
|
|
|
echo '<h4>Report Data</h4>';
|
|
echo '<table>';
|
|
$x = 0;
|
|
// only go through the columns if there are columns to go through
|
|
if (count($report['col'])) {
|
|
foreach ($report['col'] as $o => $d) {
|
|
echo '<tr><td>Column ' . ($x + 1) . ': </td>';
|
|
echo '<td>';
|
|
if (intval($x) != intval($o)) {
|
|
echo ('WARNING, out of order!');
|
|
}
|
|
field_selector("col[$o][field]", "col$o", $d['field']);
|
|
echo '</td></tr>';
|
|
$x++;
|
|
$canvasLabels[] = $fields[$report['col'][$o]['field']]['name']; // ['field'];
|
|
}
|
|
}
|
|
for (; $x < $n_columns; $x++) {
|
|
echo '<tr><td>Column ' . ($x + 1) . ': </td>';
|
|
echo '<td>';
|
|
field_selector("col[$x][field]", "col$x", '');
|
|
echo '</td></tr>';
|
|
}
|
|
echo '<tr><td></td>';
|
|
echo '<td align="right">';
|
|
echo '<select name="colaction"><option value=""></option><option value="add">Add more columns</option></select>';
|
|
echo '<input type="submit" value="Go">';
|
|
echo '</td></tr>';
|
|
echo "</table>\n";
|
|
|
|
$doCanvasSample = false;
|
|
$doCanvasSampletcpdf = false;
|
|
$l_w = get_value_from_2d_array($report_stock, get_value_from_2d_array($report, 'option', 'stock', ''), 'label_width');
|
|
$l_h = get_value_from_2d_array($report_stock, get_value_from_2d_array($report, 'option', 'stock', ''), 'label_height');
|
|
|
|
if ($l_w && $l_h && $report['option']['type'] == 'label') {
|
|
echo '<h4>Label Data Locations</h4>';
|
|
pdf_begin_page;
|
|
$doCanvasSample = true;
|
|
$ratio = $l_h / $l_w;
|
|
$canvaswidth = 600;
|
|
$canvasheight = round($canvaswidth * $ratio);
|
|
echo "<div id=\"layoutcanvas\" style=\"border: 1px solid red; position: relative; width: {$canvaswidth}px; height: {$canvasheight}px;\">";
|
|
echo "</div>\n";
|
|
echo "<script type=\"text/javascript\">initCanvas($canvaswidth,$canvasheight,$l_w,$l_h)</script>\n";
|
|
}
|
|
|
|
if ($l_w && $l_h && $report['option']['type'] == 'tcpdf_label') {
|
|
echo '<h4>Label Data Locations - TCPDF</h4>';
|
|
|
|
$l_w *= 25.4;
|
|
$l_h *= 25.4;
|
|
$doCanvasSampletcpdf = true;
|
|
$ratio = $l_h / $l_w;
|
|
$canvaswidth = 600;
|
|
$canvasheight = round($canvaswidth * $ratio);
|
|
echo "<div id=\"layoutcanvas\" style=\"border: 1px solid red; position: relative; width: {$canvaswidth}px; height: {$canvasheight}px;\">";
|
|
echo "</div>\n";
|
|
echo "<script type=\"text/javascript\">initCanvas($canvaswidth,$canvasheight,$l_w,$l_h)</script>\n";
|
|
}
|
|
|
|
echo '<table>';
|
|
$x = 0;
|
|
|
|
if (get_value_from_2d_array($report, 'option', 'type') == 'label' || get_value_from_2d_array($report, 'option', 'type') == 'tcpdf_label') {
|
|
$fontlist = array('' => 'Default');
|
|
$fl = PDF::getFontList();
|
|
foreach ($fl as $f)
|
|
$fontlist[$f] = $f;
|
|
// print_r($fl);
|
|
|
|
foreach ($report['col'] as $o => $d) {
|
|
$f = $d['field'];
|
|
echo '<tr><td align="right">Loc ' . ($o + 1) . ': </td>';
|
|
echo '<td>';
|
|
$script = '';
|
|
foreach ($locs as $k => $v) {
|
|
if ($k == 'Lines' && $report['option']['type'] != 'label')
|
|
continue;
|
|
echo "$k=<input type=\"text\" size=\"3\" name=\"col[$x][$v]\" value=\"{$d[$v]}\">";
|
|
$script .= "{$d[$v]},";
|
|
}
|
|
|
|
if ($report['option']['type'] == 'label') {
|
|
echo 'Face=';
|
|
selector("col[$x][face]", array('' => '', 'bold' => 'Bold'), $d['face']);
|
|
}
|
|
echo 'Align';
|
|
selector("col[$x][align]", array('center' => 'Center', 'left' => 'Left', 'right' => 'Right'),
|
|
$d['align']);
|
|
echo 'vAlign';
|
|
if ($report['option']['type'] == 'label') {
|
|
selector("col[$x][valign]", array('vcenter' => 'Center', 'vtop' => 'Top', 'vbottom' => 'Bottom'),
|
|
$d['valign']);
|
|
} else {
|
|
selector("col[$x][valign]", array('middle' => 'Middle', 'top' => 'Top', 'bottom' => 'Bottom'),
|
|
$d['valign']);
|
|
|
|
echo 'Font=';
|
|
selector("col[$x][fontname]", $fontlist, $d['fontname']);
|
|
selector("col[$x][fontstyle]", array('' => '', 'bold' => 'Bold'), $d['fontstyle']);
|
|
echo "<input type=\"text\" size=\"3\" name=\"col[$x][fontsize]\" value=\"{$d['fontsize']}\">";
|
|
echo 'pt ';
|
|
echo 'OnOverflow=';
|
|
selector("col[$x][on_overflow]", array('tuncate' => 'Truncate', '...' => 'Add ...', 'scale' => 'Scale'), $d['on_overflow']);
|
|
}
|
|
|
|
if ($f == 'static_text') {
|
|
echo "<br />Text=<input type=\"text\" size=\"40\" name=\"col[$x][value]\" value=\"{$d['value']}\">";
|
|
} else {
|
|
echo "<input type=\"hidden\" name=\"col[$x][value]\" value=\"\">";
|
|
}
|
|
if ($doCanvasSample)
|
|
echo "<script type=\"text/javascript\">createData({$script}'{$d['face']}','{$d['align']}','{$d['valign']}','{$canvasLabels[$x]}')</script>\n";
|
|
if ($doCanvasSampletcpdf)
|
|
echo "<script type=\"text/javascript\">createDataTCPDF({$script}'{$d['align']}','{$d['valign']}','{$d['fontname']}','{$d['fontstyle']}','{$d['fontsize']}','{$canvasLabels[$x]}')</script>\n";
|
|
|
|
$x++;
|
|
}
|
|
for (; $x < $n_columns; $x++) {
|
|
echo '<tr><td align="right">Loc ' . ($x + 1) . ': </td>';
|
|
echo '<td>';
|
|
foreach ($locs as $k => $v) {
|
|
if ($k == 'Lines' && $report['option']['type'] != 'label')
|
|
continue;
|
|
echo "$k=<input type=\"text\" size=\"3\" name=\"col[$x][$v]\" value=\"0\">";
|
|
}
|
|
if ($report['option']['type'] == 'label') {
|
|
echo 'Face=';
|
|
selector("col[$x][face]", array('' => '', 'bold' => 'Bold'), '');
|
|
}
|
|
|
|
echo 'Align';
|
|
selector("col[$x][align]", array('center' => 'Center', 'left' => 'Left', 'right' => 'Right'),
|
|
'center');
|
|
echo 'vAlign';
|
|
if ($report['option']['type'] == 'label') {
|
|
selector("col[$x][valign]", array('vcenter' => 'Center', 'vtop' => 'Top', 'vbottom' => 'Bottom'),
|
|
'top');
|
|
} else {
|
|
selector("col[$x][valign]", array('middle' => 'Middle', 'top' => 'Top', 'bottom' => 'Bottom'), 'middle');
|
|
|
|
echo 'Font=';
|
|
selector("col[$x][fontname]", $fontlist, '');
|
|
selector("col[$x][fontstyle]", array('' => '', 'bold' => 'Bold'), '');
|
|
echo "<input type=\"text\" size=\"3\" name=\"col[$x][fontsize]\" value=\"\">";
|
|
echo 'pt ';
|
|
echo 'OnOverflow=';
|
|
selector("col[$x][on_overflow]", array('Truncate' => 'truncate', 'Add ...' => '...', 'Scale' => 'scale'), '');
|
|
}
|
|
echo "<input type=\"hidden\" name=\"col[$x][value]\" value=\"\">";
|
|
echo '</td></tr>';
|
|
}
|
|
}
|
|
echo "</table>\n";
|
|
echo '<h4>Grouping</h4>';
|
|
for ($x = 0; $x < 3; $x++) {
|
|
echo 'Group By' . ($x + 1) . ': ';
|
|
$f = get_value_from_3d_array($report, 'group', $x, 'field');
|
|
field_selector("group[$x]", "group$x", $f);
|
|
echo '<br />';
|
|
}
|
|
echo '<h4>Sorting</h4>';
|
|
for ($x = 0; $x < 5; $x++) {
|
|
echo 'Sort By' . ($x + 1) . ': ';
|
|
$f = get_value_from_3d_array($report, 'sort', $x, 'field');
|
|
field_selector("sort[$x]", "sort$x", $f);
|
|
echo '<br />';
|
|
}
|
|
echo '<h4>Distinct</h4>';
|
|
echo 'Distinct Column: ';
|
|
$x = 0;
|
|
$f = get_value_from_3d_array($report, 'distinct', $x, 'field');
|
|
field_selector("distinct[$x]", 'distinct0', $f);
|
|
|
|
echo '<h4>Filtering</h4>';
|
|
echo '<table>';
|
|
for ($x = 0; $x < 3; $x++) {
|
|
echo '<tr><td>Filter' . ($x + 1) . ':</td><td>';
|
|
field_selector("filter[$x][field]", "filter$x", get_value_from_3d_array($report, 'filter', $x, 'field'));
|
|
echo '<br />';
|
|
selector("filter[$x][x]", $filter_ops, get_value_from_3d_array($report, 'filter', $x, 'x'));
|
|
$v = get_value_from_3d_array($report, 'filter', $x, 'value');
|
|
echo "Text=<input type=\"text\" size=\"20\" name=\"filter[$x][value]\" value=\"$v\">";
|
|
echo '</td></tr>';
|
|
}
|
|
echo '</table>';
|
|
|
|
echo '<h4>Options</h4>';
|
|
foreach ($report_options as $ok => $o) {
|
|
echo "{$o['desc']}: <select name=\"option[$ok]\" id=\"$ok\">";
|
|
foreach ($o['values'] as $k => $v) {
|
|
$sel = ($report['option'][$ok] == $k) ? 'selected=\"selected\"' : '';
|
|
echo "<option value=\"$k\" $sel>$v</option>";
|
|
}
|
|
echo "</select><br />\n";
|
|
}
|
|
|
|
echo '<br />';
|
|
if (get_value_from_array($report, 'system_report_id') != 0) {
|
|
echo notice(i18n("This is a system report, it cannot be changed or deleted. To save changes you have made to it, please select the 'Save as a new report' option."));
|
|
}
|
|
echo '<select name="repaction">';
|
|
if ($report['system_report_id'] == 0) {
|
|
$sel = ($repaction_save == 'save') ? 'selected="selected"' : '';
|
|
echo " <option value=\"save\" $sel>Save this report</option>";
|
|
$sel = ($repaction_save == 'try') ? 'selected="selected"' : '';
|
|
echo " <option value=\"try\" $sel>Try this report</option>";
|
|
echo ' <option value="export">Export this report</option>';
|
|
echo ' <option value="" ></option>';
|
|
echo ' <option value="dupe" >Save as a new report(duplicate)</option>';
|
|
echo ' <option value="" ></option>';
|
|
echo ' <option value="del" >Delete this report</option>';
|
|
} else {
|
|
echo ' <option value="dupe" >Save as a new report(duplicate)</option>';
|
|
$sel = ($repaction_save == 'try') ? 'selected="selected"' : '';
|
|
echo " <option value=\"try\" $sel>Try this report</option>";
|
|
echo ' <option value="export">Export this report</option>';
|
|
}
|
|
|
|
echo '</select>';
|
|
echo '<input type="submit" value="Go">';
|
|
|
|
echo '</form>';
|
|
|
|
send_footer();
|
|
?>
|