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();
         }
     }
 }