Thank you Massimo, it worked

Am Mittwoch, 12. September 2012 14:38:43 UTC+2 schrieb Massimo Di Pierro:
>
> represent takes always two values. You have
>
> represent=lambda row: row.strftime('%H:%M')),
>
>
> but you should have
>
> represent=lambda value,row: value.strftime('%H:%M')),
>
>
> On Wednesday, 12 September 2012 05:02:28 UTC-5, Gerd wrote:
>>
>> Hi!
>>
>> First: This is my first try to build a "real" application in web2py and 
>> python, i'm new to both but like it very much (i'm coming from bash/awk/sed)
>>
>> I receive following error when trying to export a SQLFORM.grid to TSV 
>> (Excel compatible), but CSV works
>>
>> Traceback (most recent call last):
>>   File "/home/gniemetz/webapps/web2py/web2py/gluon/restricted.py", line 209, 
>> in restricted
>>     exec ccode in environment
>>   File 
>> "/home/gniemetz/webapps/web2py/web2py/applications/tauchbuch/controllers/default.py"
>>  
>> <https://web2py.niemetz.it/admin/default/edit/tauchbuch/controllers/default.py>,
>>  line 78, in <module>
>>   File "/home/gniemetz/webapps/web2py/web2py/gluon/globals.py", line 185, in 
>> <lambda>
>>     self._caller = lambda f: f()
>>   File "/home/gniemetz/webapps/web2py/web2py/gluon/tools.py", line 2783, in f
>>     return action(*a, **b)
>>   File 
>> "/home/gniemetz/webapps/web2py/web2py/applications/tauchbuch/controllers/default.py"
>>  
>> <https://web2py.niemetz.it/admin/default/edit/tauchbuch/controllers/default.py>,
>>  line 22, in index
>>     grid = 
>> SQLFORM.grid(db.Logbuch,fields=[db.Logbuch.Datum,db.Logbuch.Kurs,db.Logbuch.Thema,db.Logbuch.Kommentar],maxtextlength=50)
>>   File "/home/gniemetz/webapps/web2py/web2py/gluon/sqlhtml.py", line 1858, 
>> in grid
>>     raise HTTP(200, oExp.export(),**response.headers)
>>   File "/home/gniemetz/webapps/web2py/web2py/gluon/sqlhtml.py", line 2627, 
>> in export
>>     records = self.represented()
>>   File "/home/gniemetz/webapps/web2py/web2py/gluon/sqlhtml.py", line 2594, 
>> in represented
>>     value = field.represent(value, record)
>> TypeError: <lambda>() takes exactly 1 argument (2 given)
>>
>>
>> This is my model (a bit complicated, maybe there's room for improvement)
>>
>> db.define_table('KFZ', 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Auto','string',length=30,label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Car')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Kennzeichen','string',length=10,label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('License plate')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('KM','integer',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Mileage')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('gueltig_bis','date',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Expired')), 
>>     format='%(Auto)s %(Kennzeichen)s'
>>     )
>>
>> db.define_table('Themen', 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Thema','string',length=30,label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Topic')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('gueltig_bis','date',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Expired')), 
>>     format='%(Thema)s'
>>     )
>>
>> db.define_table('KM_Gelder', 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Tarif','decimal(3,2)',requires=IS_DECIMAL_IN_RANGE
>>  
>> <https://web2py.niemetz.it/examples/global/vars/IS_DECIMAL_IN_RANGE>(dot=','),label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Mileage Cost')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('gueltig_bis','date',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Expired')), 
>>     format=lambda row: str('%(Tarif)s' % row if row else 
>> '').replace('.',',').replace(',00',',-')
>>     )
>>     
>> from datetime import datetime, date
>> query = ((db.KM_Gelder.gueltig_bis == None))
>> db.define_table('Logbuch', 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Datum','date',requires=IS_DATE
>>  
>> <https://web2py.niemetz.it/examples/global/vars/IS_DATE>(format='%Y-%m-%d'),label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Date')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Kurs','string',length=50,label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Course')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Beginn','time',requires=IS_TIME
>>  <https://web2py.niemetz.it/examples/global/vars/IS_TIME>(),label=T 
>> <https://web2py.niemetz.it/examples/global/vars/T>('Start'),represent=lambda 
>> row: row.strftime('%H:%M')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Ende','time',requires=IS_TIME
>>  <https://web2py.niemetz.it/examples/global/vars/IS_TIME>(),label=T 
>> <https://web2py.niemetz.it/examples/global/vars/T>('End'),represent=lambda 
>> row: row.strftime('%H:%M')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Thema',db.Themen,label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Topic')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Teilnehmer','integer',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Number of 
>> participants')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Kosten','decimal(7,2)',requires=IS_DECIMAL_IN_RANGE
>>  
>> <https://web2py.niemetz.it/examples/global/vars/IS_DECIMAL_IN_RANGE>(dot=','),label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Cost of 
>> participants'),represent=lambda row: str('€ %s' % row if row else 
>> '').replace('.',',').replace(',00',',-')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Erloese','decimal(7,2)',requires=IS_DECIMAL_IN_RANGE
>>  
>> <https://web2py.niemetz.it/examples/global/vars/IS_DECIMAL_IN_RANGE>(dot=','),label=T
>>  
>> <https://web2py.niemetz.it/examples/global/vars/T>('Revenues'),compute=lambda
>>  row: row['Teilnehmer']*row['Kosten'],represent=lambda row: SPAN 
>> <https://web2py.niemetz.it/examples/global/vars/SPAN>(str('€ %s' % row if 
>> row else '').replace('.',',').replace(',00',',-'),_style='color: green')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('KM_Beginn','integer',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Mileage 
>> Start'),represent=lambda row: str('{:,} 
>> km'.format(row)).replace(',','*').replace('.',',').replace('*','.')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('KM_Ende','integer',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Mileage 
>> End'),represent=lambda row: str('{:,} 
>> km'.format(row)).replace(',','*').replace('.',',').replace('*','.')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Sum_Zeit','time',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Hours 
>> Summary'),compute=lambda row: 
>> datetime.combine(date.today(),row['Ende'])-datetime.combine(date.today(),row['Beginn']),requires=IS_TIME
>>  <https://web2py.niemetz.it/examples/global/vars/IS_TIME>(),represent=lambda 
>> row: row.strftime('%H:%M')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Sum_KM','integer',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Mileage 
>> Summary'),compute=lambda row: 
>> row['KM_Ende']-row['KM_Beginn'],represent=lambda row: str('{:,} 
>> km'.format(row)).replace(',','*').replace('.',',').replace('*','.')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('KM_Geld',db.KM_Gelder,label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Mileage 
>> Cost'),requires=IS_IN_DB 
>> <https://web2py.niemetz.it/examples/global/vars/IS_IN_DB>(db(query),'KM_Gelder.id',db.KM_Gelder._format),represent=lambda
>>  id: str('€ %(Tarif)s' % db.KM_Gelder(id) if db.KM_Gelder(id) else 
>> '').replace('.',',').replace(',00',',-')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Autokosten','decimal(7,2)',label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Mileage Summary 
>> Cost'),compute=lambda row: 
>> (row['KM_Ende']-row['KM_Beginn'])*db.KM_Gelder(row['KM_Geld']).Tarif,represent=lambda
>>  row: SPAN <https://web2py.niemetz.it/examples/global/vars/SPAN>(str('€ %s' 
>> % row if row else '').replace('.',',').replace(',00',',-'),_style='color: 
>> red')), 
>>     Field 
>> <https://web2py.niemetz.it/examples/global/vars/Field>('Kommentar','string',length=200,label=T
>>  <https://web2py.niemetz.it/examples/global/vars/T>('Comment'))
>>     )
>>
>> db.Logbuch.id.readable=db.Logbuch.id.writeable=False
>>
>>
>> and this is the controller
>>
>> @auth.requires_login()
>> def index():
>>     #response.flash = T('Welcome to your divebook!')
>>     grid = SQLFORM 
>> <https://web2py.niemetz.it/examples/global/vars/SQLFORM>.grid(db.Logbuch,fields=[db.Logbuch.Datum,db.Logbuch.Kurs,db.Logbuch.Thema,db.Logbuch.Kommentar],maxtextlength=50)
>>     return locals()
>>
>>
>> What's going wrong here?
>>
>> Thanks for your efforts
>> regards
>> Gerd
>>
>>
>>
>>
>>

-- 



Reply via email to