Hello Rahul! If you just want to generate reports based on html code, you can use the *we2py-appreport plugin*, please watch this screencast [1] and read this instructions [2], this will show how to write html forms to render and filter your reports.
But, if you want to generate sophisticated reports, you can use the *AppReport API* [3], that is a web service released last month, it allows you to generate PDF reports using Jasper Reports lib / i-report tool, in whatever app, including apps hosted on GAE. To use the AppReport API, you just need to install the python client [4], please watch this screencast [5] and read this instructions [6] for web2py apps. *we2py-appreport plugin* [1] vimeo.com/18601633 [2] github.com/lucasdavila/web2py-appreport/wiki/Docs-and-examples *AppReport API* [3] reports.simpleservic.es/landing [4] github.com/simpleservices/app_report-python [5] vimeo.com/62917453 [6] github.com/simpleservices/app_report-python/wiki/Using-the-AppReport-client-on-Web2py-Apps - Many thanks Ovideo, for replying this post :D On Friday, 12 April 2013 05:29:12 UTC-3, Rahul wrote: > > Hi Ovidio, > Thanks for this great resource. I have a few questions - Can we > pass queries to this plugin? Can we select fields that we want for > reporting? The wrapping thing works well with this plugin. > > Rahul. > > On Thursday, April 11, 2013 4:47:44 PM UTC+5:30, Ovidio Marinho wrote: >> >> PDF paths are hard, so we tried some practical solutions. See this >> appreport. https://github.com/lucasdavila/web2py-appreport After long >> searching found something that can permanently solve these problems that >> fpdf, pisa, geraldo bring us in doing pdf. >> >> I think you, as I found the solution. >> >> {{}}'s >> >> >> >> >> Ovidio Marinho Falcao Neto >> Web Developer >> ovid...@gmail.com >> 83 8826 9088 - Oi >> 83 9336 3782 - Claro >> Brasil >> >> >> >> 2013/4/11 Rahul <rahul....@gmail.com> >> >>> >>> Hi All, >>> I am having a few problems with my code to generate proper PDF >>> reports. Basically I have the same problems with reportlab so i am giving >>> pyfpdf a try - >>> *Problems:* >>> >>> 1. Long text (example *description *in below code) does not fit in >>> the boundaries. It does not wrap to next line it just exceeds the page >>> width - please see sample report attached. >>> 2. I cant make zebra strips (alternate line/row color) to work >>> properly here >>> 3. The HTML output does not work (I have the view >>> rep_open_issues.html - no data) [Live Demo for HTML pyfpdf does not >>> work >>> Ex - this url - http://www.web2py.com.ar/fpdf/default/listing ] >>> Throws error - *invalid view (default/listing.html)* >>> >>> Here is my code - >>> >>> def rep_open_issues(): >>> response.title = "Open Issues" >>> head = THEAD(TR(TH("Ticket",_width="15%"), >>> TH("Sub Cateogry",_width="20%"), >>> TH("Severity",_width="15%"), >>> TH("Description",_width="50%"), >>> _bgcolor="#A0A0A0")) >>> >>> foot = TFOOT(TR(TH("Fair Price - Good Day",_width="100%"), >>> _bgcolor="#E0E0E0")) >>> >>> querysql = (""" Select ticket_no, sub_category, severity, >>> description from issues where status='Open' and >>> created_by='""" + logged_in_user ) >>> >>> try: >>> allissues = db.executesql(querysql) >>> except: pass >>> rows = [] >>> >>> for issue in allissues: >>> mycounter = [] >>> mycounter.append(issue) >>> >>> i = len(mycounter) >>> col = i % 2 and "#F0F0F0" or "#FFFFFF" >>> rows.append(issue) >>> >>> >>> >>> # make the table object >>> body = TBODY(*rows) >>> table = TABLE(*[head,foot, body], >>> _border="1", _align="center", _width="100%") >>> >>> if request.extension=="pdf": >>> from gluon.contrib.pyfpdf import FPDF, HTMLMixin >>> >>> # define our FPDF class (move to modules if it is reused >>> frequently) >>> class MyFPDF(FPDF, HTMLMixin): >>> def header(self): >>> self.set_font('Arial','B',15) >>> self.cell(0,10, response.title ,1,0,'C') >>> self.ln(20) >>> >>> def footer(self): >>> self.set_y(-15) >>> self.set_font('Arial','I',8) >>> txt = 'Page %s of %s' % (self.page_no(), >>> self.alias_nb_pages()) >>> self.cell(0,10,txt,0,0,'C') >>> >>> pdf=MyFPDF() >>> # first page: >>> pdf.add_page() >>> pdf.write_html(str(XML(table, sanitize=False))) >>> response.headers['Content-Type']='application/pdf' >>> return pdf.output(dest='S') >>> else: >>> # normal html view: >>> return dict(table=table) >>> >>> Not much is changed here- I know, i may be missing a few tricks. Please >>> help me fill the same >>> >>> As a Ref - I checked this thread ["Re: How to Generate the effective >>> report by using web2py"] in google groups but without much resolution. >>> Please suggest. >>> >>> Thanks Rahul >>> >>> >>> -- >>> >>> --- >>> 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 web2py+un...@googlegroups.com. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.