thanks for your help Peter! Actually, i've been playing around with it but need some into on the functions/views too!
'The report_functions should point to valid report functions/views that you have created (I can provide some info on this if needed)' On Tue, Jul 4, 2017 at 4:37 AM, Peter <[email protected]> wrote: > > Hi Matt, > > I'm no expert (only discovered the wonders of the grid in the last couple > of weeks) and maybe others > will have a better way but I have tested this and it might get you going... > > (Also you might want to give a little more information on the > requirements... > Where have you got to? > Do the reports require further interaction/parameters when selected? > Have you developed the reports themselves?) > > # So as far as I understand it, the grid requires a table (or possibly a > dummy table? I went with a real one) > > db.define_table('reports', > Field('report_name',), > Field('report_function',) > ) > > and added two records... > 1, Activities Report, csv_activities > 2, Companies Report, csv_companies > > > The report_functions should point to valid report functions/views > that you have created (I can provide some info on this if needed) > > > def output_reports(): > print "output reports: received vars %s" % request.vars > for record_id in request.vars.id: > print "run report %s" % db.reports[record_id].report_function > redirect(URL('report_factory',[])) > > > def report_factory(): > query = db.reports.id > 0 > fields = (db.reports.id, db.reports.report_name) > grid = SQLFORM.grid(query, > field_id= db.reports.id, > fields=fields, > searchable=False, > create=False, > selectable=lambda ids: redirect(URL('default', > 'output_reports', vars=dict(id=ids))), > editable=False, > deletable=False, > details=False, > buttons_placement='right', > csv=False > ) > > return dict(grid=grid) > > > > The print output below shows what is happening and simulates 'running > report/s' > after selecting each report separately and then the two together > > > output reports: received vars <Storage {'id': '1'}> > run report csv_activities > > output reports: received vars <Storage {'id': '2'}> > run report csv_companies > > output reports: received vars <Storage {'id': ['1', '2']}> > run report csv_activities > run report csv_companies > > > Hope this helps! > Peter > > -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > You received this message because you are subscribed to a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/web2py/UiCqbO9nnDw/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

