function save_from_report($report_id, $parent_id, $module_name, $relationship_attr_name) { global $beanFiles; global $beanList; $GLOBALS['log']->debug("Save2: Linking with report output"); $GLOBALS['log']->debug("Save2:Report ID=" . $report_id); $GLOBALS['log']->debug("Save2:Parent ID=" . $parent_id); $GLOBALS['log']->debug("Save2:Module Name=" . $module_name); $GLOBALS['log']->debug("Save2:Relationship Attribute Name=" . $relationship_attr_name); $bean_name = $beanList[$module_name]; $GLOBALS['log']->debug("Save2:Bean Name=" . $bean_name); require_once $beanFiles[$bean_name]; $focus = new $bean_name(); $focus->retrieve($parent_id); $focus->load_relationship($relationship_attr_name); //fetch report definition. global $current_language, $report_modules, $modules_report; $mod_strings = return_module_language($current_language, "Reports"); $saved = new SavedReport(); $saved->disable_row_level_security = true; $saved->retrieve($report_id, false); //initiailize reports engine with the report definition. require_once 'modules/Reports/SubpanelFromReports.php'; $report = new SubpanelFromReports($saved); $report->run_query(); $sql = $report->query_list[0]; $GLOBALS['log']->debug("Save2:Report Query=" . $sql); $result = $report->db->query($sql); while ($row = $report->db->fetchByAssoc($result)) { $focus->{$relationship_attr_name}->add($row['primaryid']); } }
/** * Runs the query from the saved report and returns the records * * @return array Array of records from result of report query */ public function runReportQuery() { require_once 'modules/Reports/SubpanelFromReports.php'; $records = array(); $report = new SubpanelFromReports($this); if (!empty($report)) { $report->run_query(); $sql = $report->query_list[0]; $results = $report->db->query($sql); while ($row = $report->db->fetchByAssoc($results)) { $records[] = $row; } } return $records; }