diff options
author | arron.woods <arron.woods@deae1e92-32f9-c189-e222-5b9b5081a27a> | 2011-03-10 23:14:50 +0000 |
---|---|---|
committer | arron.woods <arron.woods@deae1e92-32f9-c189-e222-5b9b5081a27a> | 2011-03-10 23:14:50 +0000 |
commit | 634884044dd95345962db9e54764f37f6ba84853 (patch) | |
tree | e16f69cd22e0ac4a1759987e2f66566b4f9a08eb /library/SSRS/Object | |
download | php-ssrs-634884044dd95345962db9e54764f37f6ba84853.zip php-ssrs-634884044dd95345962db9e54764f37f6ba84853.tar.gz php-ssrs-634884044dd95345962db9e54764f37f6ba84853.tar.bz2 |
v0.1 committed
Diffstat (limited to 'library/SSRS/Object')
-rwxr-xr-x | library/SSRS/Object/Abstract.php | 48 | ||||
-rwxr-xr-x | library/SSRS/Object/ArrayIterator.php | 41 | ||||
-rwxr-xr-x | library/SSRS/Object/CatalogItem.php | 10 | ||||
-rwxr-xr-x | library/SSRS/Object/CatalogItems.php | 26 | ||||
-rwxr-xr-x | library/SSRS/Object/ExecutionInfo.php | 19 | ||||
-rwxr-xr-x | library/SSRS/Object/ExecutionParameter.php | 10 | ||||
-rwxr-xr-x | library/SSRS/Object/ExecutionParameters.php | 38 | ||||
-rwxr-xr-x | library/SSRS/Object/Extension.php | 10 | ||||
-rwxr-xr-x | library/SSRS/Object/Extensions.php | 26 | ||||
-rwxr-xr-x | library/SSRS/Object/ItemDefinition.php | 22 | ||||
-rwxr-xr-x | library/SSRS/Object/Report.php | 14 | ||||
-rwxr-xr-x | library/SSRS/Object/ReportOutput.php | 25 | ||||
-rwxr-xr-x | library/SSRS/Object/ReportParameter.php | 10 | ||||
-rwxr-xr-x | library/SSRS/Object/ReportParameters.php | 26 |
14 files changed, 325 insertions, 0 deletions
diff --git a/library/SSRS/Object/Abstract.php b/library/SSRS/Object/Abstract.php new file mode 100755 index 0000000..40482a0 --- /dev/null +++ b/library/SSRS/Object/Abstract.php @@ -0,0 +1,48 @@ +<?php + +/** + * SSRS_Object_Abstract + * + * @author arron + */ +class SSRS_Object_Abstract { + + public $data = array(); + + public function __construct($data = null) { + $this->init(); + $this->setData($data); + } + + public function init() { + + } + + public function setData($data) { + if ($data instanceof stdClass) { + $data = get_object_vars($data); + } + + if (is_array($data)) { + foreach ($data AS $key => $value) { + $this->$key = $value; + } + } + + return $this; + } + + public function __set($key, $value) { + $methodName = 'set' . ucfirst($key); + if (method_exists($this, $methodName)) { + $this->$methodName($value); + } else { + $this->data[$key] = $value; + } + } + + public function __get($key) { + return isset($this->data[$key]) ? $this->data[$key] : null; + } + +}
\ No newline at end of file diff --git a/library/SSRS/Object/ArrayIterator.php b/library/SSRS/Object/ArrayIterator.php new file mode 100755 index 0000000..ad53ad5 --- /dev/null +++ b/library/SSRS/Object/ArrayIterator.php @@ -0,0 +1,41 @@ +<?php + +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +/** + * Description of Iterator + * + * @author andrew + */ +class SSRS_Object_ArrayIterator extends SSRS_Object_Abstract implements Iterator { + + public $iteratorKey = 'Array'; + + public function next() { + return next($this->data[$this->iteratorKey]); + } + + public function prev() { + return prev($this->data[$this->iteratorKey]); + } + + public function key() { + return key($this->data[$this->iteratorKey]); + } + + public function current() { + return current($this->data[$this->iteratorKey]); + } + + public function valid() { + return isset($this->data[$this->iteratorKey][$this->key()]); + } + + public function rewind() { + return reset($this->data[$this->iteratorKey]); + } + +}
\ No newline at end of file diff --git a/library/SSRS/Object/CatalogItem.php b/library/SSRS/Object/CatalogItem.php new file mode 100755 index 0000000..cf0e25d --- /dev/null +++ b/library/SSRS/Object/CatalogItem.php @@ -0,0 +1,10 @@ +<?php + +/** + * SSRS_Object_Abstract + * + * @author arron + */ +class SSRS_Object_CatalogItem extends SSRS_Object_Abstract { + +} diff --git a/library/SSRS/Object/CatalogItems.php b/library/SSRS/Object/CatalogItems.php new file mode 100755 index 0000000..c68a964 --- /dev/null +++ b/library/SSRS/Object/CatalogItems.php @@ -0,0 +1,26 @@ +<?php + +/** + * SSRS_Object_Abstract + * + * @author arron + */ +class SSRS_Object_CatalogItems extends SSRS_Object_ArrayIterator { + + public $iteratorKey = 'CatalogItems'; + + public function init() { + $this->data['CatalogItems'] = array(); + } + + public function setCatalogItems(stdClass $items) { + foreach ($items->CatalogItem AS $item) { + $this->addCatalogItem(new SSRS_Object_CatalogItem($item)); + } + } + + public function addCatalogItem(SSRS_Object_CatalogItem $item) { + $this->data['CatalogItems'][] = $item; + } + +} diff --git a/library/SSRS/Object/ExecutionInfo.php b/library/SSRS/Object/ExecutionInfo.php new file mode 100755 index 0000000..42b8c31 --- /dev/null +++ b/library/SSRS/Object/ExecutionInfo.php @@ -0,0 +1,19 @@ +<?php + +/** + * SSRS_Object_Abstract + * + * @author arron + */ +class SSRS_Object_ExecutionInfo extends SSRS_Object_Abstract { + + public function setExecutionInfo(stdClass $info) { + $this->setData($info); + } + + public function setParameters(stdClass $params){ + $this->data['Parameters'] = new SSRS_Object_ReportParameters(); + $this->data['Parameters']->setParameters($params->ReportParameter); + } + +} diff --git a/library/SSRS/Object/ExecutionParameter.php b/library/SSRS/Object/ExecutionParameter.php new file mode 100755 index 0000000..36680e9 --- /dev/null +++ b/library/SSRS/Object/ExecutionParameter.php @@ -0,0 +1,10 @@ +<?php + +/** + * Description of ExecutionParameters + * + * @author andrew + */ +class SSRS_Object_ExecutionParameter extends SSRS_Object_Abstract { + +} diff --git a/library/SSRS/Object/ExecutionParameters.php b/library/SSRS/Object/ExecutionParameters.php new file mode 100755 index 0000000..b107438 --- /dev/null +++ b/library/SSRS/Object/ExecutionParameters.php @@ -0,0 +1,38 @@ +<?php + +/** + * Description of ExecutionParameters + * + * @author andrew + */ +class SSRS_Object_ExecutionParameters extends SSRS_Object_ArrayIterator{ + + public $iteratorKey = 'Parameters'; + + public function init() { + $this->data['Parameters'] = array(); + } + + public function setParameters(SSRS_Object_ReportParameters $parameters) { + foreach ($parameters AS $parameter) { + if (($parameters instanceof SSRS_Object_ExecutionParameter) === false) { + $parameter = new SSRS_Object_ExecutionParameter($parameter); + } + + $this->data['Parameters'][] = $parameter; + } + } + + public function getParameterArrayForSoapCall(){ + $execParams = array(); + foreach ($this AS $parameter) { + $execParams[] = array( + 'Name' => $parameter->Name, + 'Value' => $parameter->Value, + ); + } + + return $execParams; + } + +} diff --git a/library/SSRS/Object/Extension.php b/library/SSRS/Object/Extension.php new file mode 100755 index 0000000..efae2dd --- /dev/null +++ b/library/SSRS/Object/Extension.php @@ -0,0 +1,10 @@ +<?php + +/** + * SSRS_Object_Abstract + * + * @author arron + */ +class SSRS_Object_Extension extends SSRS_Object_Abstract { + +} diff --git a/library/SSRS/Object/Extensions.php b/library/SSRS/Object/Extensions.php new file mode 100755 index 0000000..786c1b6 --- /dev/null +++ b/library/SSRS/Object/Extensions.php @@ -0,0 +1,26 @@ +<?php + +/** + * SSRS_Object_Abstract + * + * @author arron + */ +class SSRS_Object_Extensions extends SSRS_Object_ArrayIterator { + + public $iteratorKey = 'Extension'; + + public function init() { + $this->data['Extension'] = array(); + } + + public function setExtensions(stdClass $items) { + foreach ($items->Extension AS $item) { + $this->addExtension(new SSRS_Object_Extension($item)); + } + } + + public function addExtension(SSRS_Object_Extension $item) { + $this->data['Extension'][] = $item; + } + +} diff --git a/library/SSRS/Object/ItemDefinition.php b/library/SSRS/Object/ItemDefinition.php new file mode 100755 index 0000000..f63d57e --- /dev/null +++ b/library/SSRS/Object/ItemDefinition.php @@ -0,0 +1,22 @@ +<?php + +/** + * Description of ExecutionParameters + * + * @author andrew + */ +class SSRS_Object_ItemDefinition extends SSRS_Object_Abstract { + + public function getXMLString() { + return $this->Definition; + } + + public function getSimpleXML() { + return new SimpleXMLElement($this->getXMLString()); + } + + public function __toString() { + return $this->getXMLString(); + } + +} diff --git a/library/SSRS/Object/Report.php b/library/SSRS/Object/Report.php new file mode 100755 index 0000000..6733e28 --- /dev/null +++ b/library/SSRS/Object/Report.php @@ -0,0 +1,14 @@ +<?php + +/** + * Description of ExecutionParameters + * + * @author andrew + */ +class SSRS_Object_Report extends SSRS_Object_Abstract{ + + public function setExecutionInfo(stdClass $info){ + $this->data['executionInfo'] = new SSRS_Object_ExecutionInfo($info); + } + +} diff --git a/library/SSRS/Object/ReportOutput.php b/library/SSRS/Object/ReportOutput.php new file mode 100755 index 0000000..81f8598 --- /dev/null +++ b/library/SSRS/Object/ReportOutput.php @@ -0,0 +1,25 @@ +<?php + +/** + * Description of ExecutionParameters + * + * @author andrew + */ +class SSRS_Object_ReportOutput extends SSRS_Object_Abstract { + + public function download($filename){ + header("Cache-Control: public"); + header("Content-Description: File Transfer"); + header("Content-Disposition: attachment; filename=$filename"); + header("Content-Type: " . $this->mimeType); + header("Content-Transfer-Encoding: binary"); + header("Content-Length: " . strlen($this->Result)); + + die($this->Result); + } + + public function __toString(){ + return $this->Result; + } + +} diff --git a/library/SSRS/Object/ReportParameter.php b/library/SSRS/Object/ReportParameter.php new file mode 100755 index 0000000..346b082 --- /dev/null +++ b/library/SSRS/Object/ReportParameter.php @@ -0,0 +1,10 @@ +<?php + +/** + * Description of ExecutionParameters + * + * @author andrew + */ +class SSRS_Object_ReportParameter extends SSRS_Object_Abstract { + +} diff --git a/library/SSRS/Object/ReportParameters.php b/library/SSRS/Object/ReportParameters.php new file mode 100755 index 0000000..dc9b7b3 --- /dev/null +++ b/library/SSRS/Object/ReportParameters.php @@ -0,0 +1,26 @@ +<?php + +/** + * Description of ExecutionParameters + * + * @author andrew + */ +class SSRS_Object_ReportParameters extends SSRS_Object_ArrayIterator{ + + public $iteratorKey = 'Parameters'; + + public function init() { + $this->data['Parameters'] = array(); + } + + public function setParameters($parameters) { + foreach ($parameters AS $parameter) { + if (($parameters instanceof SSRS_Object_ReportParameter) === false) { + $parameter = new SSRS_Object_ReportParameter($parameter); + } + + $this->data['Parameters'][] = $parameter; + } + } + +} |