Index: remit/finance_core/reporting.py
===================================================================
--- remit/finance_core/reporting.py	(revision dd2c3d90572fd5a82034dfa25be1b59143155a30)
+++ remit/finance_core/reporting.py	(revision 8a0d18c6daffb3d698e978cbccdd4bf093e56d26)
@@ -46,17 +46,16 @@
 
 def get_primary_axis(slug, base_area, term, ):
-    if slug in axes and axes[slug][1]:
-        return axes[slug][0](base_area, term, )
+    if slug in axes and axes[slug][2]:
+        return (axes[slug][0], ) + axes[slug][1](base_area, term, )
     else:
         raise NotImplementedError
 
 def get_secondary_axis(slug, base_area, term, ):
-    if slug in axes and axes[slug][2]:
-        return axes[slug][0](base_area, term, )
+    if slug in axes and axes[slug][3]:
+        return (axes[slug][0], ) + axes[slug][1](base_area, term, )
     else:
         raise NotImplementedError
 
 def get_budget_areas(base_area, term, ):
-    name = 'Budget Areas'
     base_area_depth = base_area.depth
     areas = base_area.get_descendants()
@@ -73,8 +72,7 @@
     ]
     axis_objs = areas
-    return name, axis, axis_objs,
+    return axis, axis_objs,
 
 def get_budget_terms(base_area, term, ):
-    name = 'Budget Terms'
     if term:
         terms = finance_core.models.BudgetTerm.objects.filter(pk=term.pk)
@@ -90,8 +88,7 @@
         for term in terms
     ]
-    return name, axis, terms
+    return axis, terms
 
 def get_layers(base_area, term, ):
-    name = 'Layers'
     axis = [
         (
@@ -103,10 +100,10 @@
         for layer in finance_core.models.layers
     ]
-    return name, axis, None,
+    return axis, None,
 
 axes = {
-    'budget-areas': (get_budget_areas, True,  True,  ),
-    'budget-terms': (get_budget_terms, True,  True,  ),
-    'layers':       (get_layers,       False, True,  ),
+    'budget-areas': ('Budget Areas',  get_budget_areas, True,  True,  ),
+    'budget-terms': ('Budget Terms',  get_budget_terms, True,  True,  ),
+    'layers':       ('Layers',        get_layers,       False, True,  ),
 }
 
Index: remit/finance_core/views.py
===================================================================
--- remit/finance_core/views.py	(revision dd2c3d90572fd5a82034dfa25be1b59143155a30)
+++ remit/finance_core/views.py	(revision 8a0d18c6daffb3d698e978cbccdd4bf093e56d26)
@@ -21,5 +21,5 @@
     if 'compute_method' in request.REQUEST:
         compute_method = request.REQUEST['compute_method']
-    if 'term' in request.REQUEST:
+    if 'term' in request.REQUEST and not request.REQUEST['term'] == 'all':
         term_obj = get_object_or_404(finance_core.models.BudgetTerm, slug=request.REQUEST['term'])
         term_name = term_obj.name
@@ -81,8 +81,11 @@
         print "Table size:\t%dx%d" % (len(primary_labels), len(secondary_labels), )
 
+    term_options = finance_core.models.BudgetTerm.objects.all()
     context = {
         'pagename':'reporting',
         'term_name': term_name,
+        'term_options': term_options,
         'area': base_area_obj,
+        'axes': finance_core.reporting.axes,
         'primary_name': primary_name,
         'secondary_name': secondary_name,
Index: remit/remit_templates/finance_core/reporting.html
===================================================================
--- remit/remit_templates/finance_core/reporting.html	(revision ed4ccc7840c928311d1f921509bbfb9c2e58e1f1)
+++ remit/remit_templates/finance_core/reporting.html	(revision 8a0d18c6daffb3d698e978cbccdd4bf093e56d26)
@@ -9,12 +9,31 @@
 <h3>Parameters</h3>
 
+<form>
 <table class='pretty-table'>
 <tr>
     <th>Term</th>
-    <td>{{term_name}}</td>
+    <td><select name='term'>
+    <option {% ifequal term_name "All" %}selected {% endifequal %}value='all'>All</option>
+    {% for term_opt in term_options %}<option {% ifequal term_name term_opt.name %}selected {% endifequal %}value={{term_opt.slug}}>{{term_opt.name}}</option>{% endfor %}
+    </select></td>
 </tr>
 <tr>
     <th>Budget Area</th>
     <td>{{area}}</td>
+</tr>
+<tr>
+    <th>Primary Axis</th>
+    <td><select name='primary'>
+    {% for slug, content in axes.items %}{% if content.2 %}<option {% ifequal primary_name content.0 %}selected {% endifequal %}value='{{slug}}'>{{content.0}}</option>{% endif %}{% endfor %}
+    </select></td>
+</tr>
+<tr>
+    <th>Secondary Axis</th>
+    <td><select name='secondary'>
+    {% for slug, content in axes.items %}{% if content.3 %}<option {% ifequal secondary_name content.0 %}selected {% endifequal %}value='{{slug}}'>{{content.0}}</option>{% endif %}{% endfor %}
+    </select></td>
+</tr>
+<tr>
+    <th colspan='2'><input type='submit' name='submit' value='Submit'></th>
 </tr>
 </table>
