--- plugin_reports.autoreport.class.php	2009-06-02 15:38:49.000000000 -0400
+++ plugin_reports.autoreport.class.php.diff	2009-06-02 15:34:21.000000000 -0400
@@ -173,6 +173,7 @@
 		plugin_reports_checkRight($this->name, "r");
 
 		if ($res) {
+			// if $columns is empty count columns from SQL query else count $columns
 			$nbcols = $DB->num_fields($res);
 			$nbrows = $DB->numrows($res);
 
@@ -181,12 +182,29 @@
 			echo displaySearchNewLine($output_type);
 			$num = 1;
 			
-		
+			// fill $sqlcols with default sql query fields so we can validate $columns
+			$sqlcols = array();
 			for ($i = 0; $i < $nbcols; $i++) {
 				$colname = $DB->field_name($res, $i);
-				$coltitle = (isset ($this->columns[$colname]) ? $this->columns[$colname] : $colname);
-				echo displaySearchHeaderItem($output_type, $coltitle, $num);
-				$colsname[] = $colname;
+				$sqlcols[] = $colname;
+			}
+			// if $columns is not empty, display $columns
+			if (!empty($this->columns)){	
+				foreach ($this->columns as $colname => $coltitle) {
+					// display only $columns that are valid
+					if (in_array($colname, $sqlcols)) {
+	 					echo displaySearchHeaderItem($output_type, $coltitle, $num);
+						$colsname[] = $colname;
+					} 
+				}
+			}
+			// else display default columns from SQL query
+			else {	
+				foreach ($sqlcols as $colname => $coltitle) {
+					echo displaySearchHeaderItem($output_type, $coltitle, $num);
+				}
+				$colsname = $sqlcols;
+				unset($sqlcols);
 			}
 
 			echo displaySearchEndLine($output_type);
