示例#1
0
 /**
  * Render the requested Report
  * 
  * @param sfWebRequest $request The request. It's expected to have the following
  * parameters:
  * <ul>
  * <li>array<b> export</b> With the report selection and desired output rendering 
  * format.
  * <li>array<b> options</b> With custom options that wlil be pased to the callback
  * function provided by the report designer for generating the LogicalScreen.
  * <li>string<b> logicalScreen</b> With a string representation of a XML DOM. 
  * if provided, step1 gets bypassed, thus <b>options</b> param is ignored.
  * </li>
  * </ul>
  * 
  * @return sfView::NONE renderText() with the report contents.
  */
 public function executeRender(sfWebRequest $request)
 {
     $this->_confSrc = ConfigManager::includeConfig();
     $exportForm = new SelectReportForm(array(), $this->_confSrc);
     $exportForm->bind($request->getParameter('export'));
     $this->redirectUnless($exportForm->isValid(), 'export/index');
     $config = ConfigManager::configureExport($exportForm->getValues(), (array) $request->getParameter('options', array()));
     $dom = new DOMDocument();
     $dom = $dom->loadXML($request->getParameter('logicalScreen', null)) ? $dom : null;
     $report = LayoutManager::getInstance()->render($config, $this->getResponse(), $dom);
     $this->getResponse()->setContent('');
     return $this->renderText($report);
 }