Hi!
You can create a table in memory and use grid
working example:
def pro_report1():
tbl = 'proverka'
#f_short_proverka = [ 'f' + str(e) for e in short_proverka ]
l = [e for e in db[tbl].fields if e in f_short_proverka ]
memf = [ Field('oid', 'integer', label='П id', default= 0) ] + \
[ Field(db[tbl][e].name, db[tbl][e].type, label = db[tbl][e].label,
length= db[tbl][e].length, represent= db[tbl][e].represent )
for e in l ]
dbmem = DAL('sqlite:memory')
dbmem.define_table('mem_table',*memf)
records = db(db[tbl].id>0).select().as_list()
for r in records:
r['oid'] = r['id']
dbmem.mem_table.insert(**dbmem.mem_table._filter_fields(r))
#dbmem.commit()
flds= [ db[tbl][e] for e in f_short_proverka ]
rows=db(db[tbl].id>0 ).select( *flds )
exportclasses=dict(
csv_with_hidden_cols=False,
csv=False,
xml=False,
json=False,
tsv_with_hidden_cols=False,
tsv= False,
)
dbmem.mem_table.id.readable = False
grid = SQLFORM.grid(dbmem.mem_table, create=False, editable=False, exportclasses= exportclasses,
deletable=False, buttons_placement = 'left', showbuttontext=False)
return dict(rows=rows, l=l, records=records, grid=grid)