Index: webform_report.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform_report/Attic/webform_report.inc,v
retrieving revision 1.1.2.22
diff -u -r1.1.2.22 webform_report.inc
--- webform_report.inc	22 Mar 2010 16:35:47 -0000	1.1.2.22
+++ webform_report.inc	22 Mar 2010 16:59:46 -0000
@@ -342,6 +342,18 @@
           $filtered_values[] = $value;
         }
         break;
+      // is empty
+      case 7: 
+        if (strlen(trim($value[$node->kcid]['data'])) == 0) {
+          $filtered_values[] = $value;
+        }
+        break;
+      // is not empty        
+      case 8: 
+        if (strlen(trim($value[$node->kcid]['data'])) != 0) {
+          $filtered_values[] = $value;
+        }
+        break;
     }
   }
 
Index: webform_report.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform_report/webform_report.module,v
retrieving revision 1.2.2.55.2.39
diff -u -r1.2.2.55.2.39 webform_report.module
--- webform_report.module	16 Feb 2010 15:07:17 -0000	1.2.2.55.2.39
+++ webform_report.module	22 Mar 2010 17:07:55 -0000
@@ -291,7 +291,7 @@
   else if ($_POST['kcid'] == 0) {
     form_set_error('kcid', t('You must select a field'));
   }
-  else if ($_POST['filter_type'] != 0 && empty($_POST['filter_value'])) {
+  else if ($_POST['filter_type'] != 0 && $_POST['filter_type'] != 7 && $_POST['filter_type'] != 8 && empty($_POST['filter_value'])) {
     form_set_error('filter_value', t('You must specify a filter value'));
   }
   else if (empty($_POST['components'])) {
@@ -331,7 +331,7 @@
     $webforms = _webform_report_get_webforms();
     $webform_components = _webform_report_get_components($node->wnid);
     $meta_components = array(-1 => t('User'), -2 => t('Date'), -3 => t('Time'), -4 => t('IP Address'));
-    $filter_options = array(0 => t('none'), 1 => t('begins with'), 2 => t('does not begin with'), 3 => t('contains'), 4 => t('does not contain'), 5 => t('equals'), 6 => t('does not equal'));
+    $filter_options = array(0 => t('none'), 1 => t('begins with'), 2 => t('does not begin with'), 3 => t('contains'), 4 => t('does not contain'), 5 => t('equals'), 6 => t('does not equal'), 7 => t('is empty'), 8 => t('is not empty'));
     $sort_options = array(SORT_ASC => t('Ascending'), SORT_DESC => t('Descending'));
     $results_per_page_options = array(20 => '20', 40 => '40', 60 => '60', 80 => '80', 100 => '100');
 
@@ -390,7 +390,7 @@
         '#description' => t('Filter the key field using the specified value'),
         '#default_value' => $node->filter_value,
         '#attributes' => array('onchange' => 'this.form.submit()'),
-        '#required' => TRUE,
+        '#required' => FALSE,
         '#weight' => 4
       );
     }

