[ Index ]

PHP Cross Reference of phpwcms V1.4.3 _r380 (23.11.09)

title

Body

[close]

/include/inc_ext/PEAR/Spreadsheet/Excel/Writer/ -> Validator.php (source)

   1  <?php
   2  /*
   3  *  Module written by Herman Kuiper <herman@ozuzo.net>
   4  *
   5  *  License Information:
   6  *
   7  *    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets
   8  *    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
   9  *
  10  *    This library is free software; you can redistribute it and/or
  11  *    modify it under the terms of the GNU Lesser General Public
  12  *    License as published by the Free Software Foundation; either
  13  *    version 2.1 of the License, or (at your option) any later version.
  14  *
  15  *    This library is distributed in the hope that it will be useful,
  16  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  17  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  18  *    Lesser General Public License for more details.
  19  *
  20  *    You should have received a copy of the GNU Lesser General Public
  21  *    License along with this library; if not, write to the Free Software
  22  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  23  */
  24  
  25  //require_once('PEAR.php');
  26  
  27  // Possible operator types
  28  
  29  /*
  30  FIXME: change prefixes
  31  */
  32  define("OP_BETWEEN",    0x00);
  33  define("OP_NOTBETWEEN", 0x01);
  34  define("OP_EQUAL",      0x02);
  35  define("OP_NOTEQUAL",   0x03);
  36  define("OP_GT",         0x04);
  37  define("OP_LT",         0x05);
  38  define("OP_GTE",        0x06);
  39  define("OP_LTE",        0x07);
  40  
  41  /**
  42  * Baseclass for generating Excel DV records (validations)
  43  *
  44  * @author   Herman Kuiper
  45  * @category FileFormats
  46  * @package  Spreadsheet_Excel_Writer
  47  */
  48  class Spreadsheet_Excel_Writer_Validator
  49  {
  50     var $_type;
  51     var $_style;
  52     var $_fixedList;
  53     var $_blank;
  54     var $_incell;
  55     var $_showprompt;
  56     var $_showerror;
  57     var $_title_prompt;
  58     var $_descr_prompt;
  59     var $_title_error;
  60     var $_descr_error;
  61     var $_operator;
  62     var $_formula1;
  63     var $_formula2;
  64      /**
  65      * The parser from the workbook. Used to parse validation formulas also
  66      * @var Spreadsheet_Excel_Writer_Parser
  67      */
  68      var $_parser;
  69  
  70      function Spreadsheet_Excel_Writer_Validator(&$parser)
  71      {
  72          $this->_parser       = $parser;
  73          $this->_type         = 0x01; // FIXME: add method for setting datatype
  74          $this->_style        = 0x00;
  75          $this->_fixedList    = false;
  76          $this->_blank        = false;
  77          $this->_incell       = false;
  78          $this->_showprompt   = false;
  79          $this->_showerror    = true;
  80          $this->_title_prompt = "\x00";
  81          $this->_descr_prompt = "\x00";
  82          $this->_title_error  = "\x00";
  83          $this->_descr_error  = "\x00";
  84          $this->_operator     = 0x00; // default is equal
  85          $this->_formula1    = '';
  86          $this->_formula2    = '';
  87      }
  88  
  89     function setPrompt($promptTitle = "\x00", $promptDescription = "\x00", $showPrompt = true)
  90     {
  91        $this->_showprompt = $showPrompt;
  92        $this->_title_prompt = $promptTitle;
  93        $this->_descr_prompt = $promptDescription;
  94     }
  95  
  96     function setError($errorTitle = "\x00", $errorDescription = "\x00", $showError = true)
  97     {
  98        $this->_showerror = $showError;
  99        $this->_title_error = $errorTitle;
 100        $this->_descr_error = $errorDescription;
 101     }
 102  
 103     function allowBlank()
 104     {
 105        $this->_blank = true;
 106     }
 107  
 108     function onInvalidStop()
 109     {
 110        $this->_style = 0x00;
 111     }
 112  
 113      function onInvalidWarn()
 114      {
 115          $this->_style = 0x01;
 116      }
 117  
 118      function onInvalidInfo()
 119      {
 120          $this->_style = 0x02;
 121      }
 122  
 123      function setFormula1($formula)
 124      {
 125          // Parse the formula using the parser in Parser.php
 126          $error = $this->_parser->parse($formula);
 127          if (PEAR::isError($error)) {
 128              return $this->_formula1;
 129          }
 130  
 131          $this->_formula1 = $this->_parser->toReversePolish();
 132          if (PEAR::isError($this->_formula1)) {
 133              return $this->_formula1;
 134          }
 135          return true;
 136      }
 137  
 138      function setFormula2($formula)
 139      {
 140          // Parse the formula using the parser in Parser.php
 141          $error = $this->_parser->parse($formula);
 142          if (PEAR::isError($error)) {
 143              return $this->_formula2;
 144          }
 145  
 146          $this->_formula2 = $this->_parser->toReversePolish();
 147          if (PEAR::isError($this->_formula2)) {
 148              return $this->_formula2;
 149          }
 150          return true;
 151      }
 152  
 153      function _getOptions()
 154      {
 155          $options = $this->_type;
 156          $options |= $this->_style << 3;
 157          if ($this->_fixedList) {
 158              $options |= 0x80;
 159          }
 160          if ($this->_blank) {
 161              $options |= 0x100;
 162          }
 163          if (!$this->_incell) {
 164              $options |= 0x200;
 165          }
 166          if ($this->_showprompt) {
 167              $options |= 0x40000;
 168          }
 169          if ($this->_showerror) {
 170              $options |= 0x80000;
 171          }
 172        $options |= $this->_operator << 20;
 173  
 174        return $options;
 175     }
 176  
 177     function _getData()
 178     {
 179        $title_prompt_len = strlen($this->_title_prompt);
 180        $descr_prompt_len = strlen($this->_descr_prompt);
 181        $title_error_len = strlen($this->_title_error);
 182        $descr_error_len = strlen($this->_descr_error);
 183  
 184        $formula1_size = strlen($this->_formula1);
 185        $formula2_size = strlen($this->_formula2);
 186  
 187        $data  = pack("V", $this->_getOptions());
 188        $data .= pack("vC", $title_prompt_len, 0x00) . $this->_title_prompt;
 189        $data .= pack("vC", $title_error_len, 0x00) . $this->_title_error;
 190        $data .= pack("vC", $descr_prompt_len, 0x00) . $this->_descr_prompt;
 191        $data .= pack("vC", $descr_error_len, 0x00) . $this->_descr_error;
 192  
 193        $data .= pack("vv", $formula1_size, 0x0000) . $this->_formula1;
 194        $data .= pack("vv", $formula2_size, 0x0000) . $this->_formula2;
 195  
 196        return $data;
 197     }
 198  }
 199  
 200  /*class Spreadsheet_Excel_Writer_Validation_List extends Spreadsheet_Excel_Writer_Validation
 201  {
 202     function Spreadsheet_Excel_Writer_Validation_list()
 203     {
 204        parent::Spreadsheet_Excel_Writer_Validation();
 205        $this->_type = 0x03;
 206     }
 207  
 208     function setList($source, $incell = true)
 209     {
 210        $this->_incell = $incell;
 211        $this->_fixedList = true;
 212  
 213        $source = implode("\x00", $source);
 214        $this->_formula1 = pack("CCC", 0x17, strlen($source), 0x0c) . $source;
 215     }
 216  
 217     function setRow($row, $col1, $col2, $incell = true)
 218     {
 219        $this->_incell = $incell;
 220        //$this->_formula1 = ...;
 221     }
 222  
 223     function setCol($col, $row1, $row2, $incell = true)
 224     {
 225        $this->_incell = $incell;
 226        //$this->_formula1 = ...;
 227     }
 228  }*/
 229  
 230  ?>


Generated: Wed Dec 30 05:55:15 2009 Cross-referenced by PHPXref 0.7