public function execute($request) { $reportId = $request->getParameter("reportId"); $reportGeneratorService = new ReportGeneratorService(); $runtimeFilterFieldWidgetNamesAndLabelsList = $reportGeneratorService->getRuntimeFilterFieldWidgetNamesAndLabels($reportId); $this->reportName = $reportGeneratorService->getReportName($reportId); $this->runtimeFilterFieldWidgetNamesAndLabelsList = $runtimeFilterFieldWidgetNamesAndLabelsList; $selectedRuntimeFilterFieldList = $reportGeneratorService->getSelectedRuntimeFilterFields($reportId); $ohrmFormGenerator = new ohrmFormGenerator(); $this->reportForm = $ohrmFormGenerator->generateForm($runtimeFilterFieldWidgetNamesAndLabelsList); if ($request->isMethod('post')) { $this->reportForm->bind($request->getParameter($this->reportForm->getName())); if ($this->reportForm->isValid()) { $formValues = $this->reportForm->getValues(); $reportableService = new ReportableService(); $selectedFilterFieldList = $reportableService->getSelectedFilterFields($reportId, true); $runtimeWhereClause = $reportGeneratorService->generateWhereClauseConditionArray($selectedFilterFieldList, $formValues); $staticColumns = null; if ($this->hasStaticColumns()) { $staticColumns = $this->setStaticColumns($formValues); } $sql = $reportGeneratorService->generateSql($reportId, $runtimeWhereClause, $staticColumns); $this->setReportCriteriaInfoInRequest($formValues); $this->getRequest()->setParameter('sql', $sql); $this->getRequest()->setParameter('reportId', $reportId); $this->setForward(); } } }