RELATORIO EM BRANCO GERALDO REPORTS

33 views
Skip to first unread message

Gustavo Andrė Ronconi

unread,
Apr 24, 2017, 2:24:25 PM4/24/17
to web2py-users-brazil
Boa tarde Pessoal,

Configurei o Geraldo Reports para utilização no Web2py, estou efetuando alguns testes para verificar o funcionamento.

O código a seguir esta gerando o relatório em BRANCO. Nem as informações do cabeçalho estão aparecendo.

    ## configuracao do relatorio

    from geraldo import Report, landscape, ReportBand, ObjectValue
    from reportlab.lib.pagesizes import A4
    from reportlab.lib.units import cm

    class ReportPurchase(Report):
    title = 'Lista de Lancamentos'
    autor = 'BCL Empreendimentos LTDA'
    page_size = landscape(A4)
    margin_left = 2*cm
    margin_top = 0.5*cm
    margin_right = 0.5*cm
    margin_bottom = 0.5*cm

    class band_detail(ReportBand):
        height = 0.5*cm
        elements=(
            ObjectValue(attribute_name='id', left=0.5*cm),
            ObjectValue(attribute_name='date_creation', left=3*cm,
            get_value=lambda instance: instance.date_creation.strftime('%m/%d/%Y')),)

    ## configuracao do relatorio

    from geraldo.generators import PDFGenerator
    import gluon.contenttype
    import StringIO

    resp = StringIO.StringIO()

    lancamentos = db(db.tb_lancamentos.id > 0).select(orderby=db.tb_lancamentos.id)
    report = ReportPurchase(queryset=lancamentos)
    report.generate_by(PDFGenerator, filename=resp)

    resp.seek(0)
    response.headers['Content-Type'] = gluon.contenttype.contenttype('.pdf')
    filename = "%s_lancamentos.pdf" % (request.env.server_name)
    response.headers['Content-disposition'] = "attachment; filename=\"%s\"" % filename
    return resp.read()

Atenciosamente,
Gustavo A. Ronconi

Ari Sobel

unread,
Apr 24, 2017, 3:01:13 PM4/24/17
to web2py googlegroups
lancamentos = db(db.tb_lancamentos.id > 0).select(orderby=db.tb_lancamentos.id)

retorna objeto Rows...
É isso que vc quer?



--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Gustavo Andrė Ronconi

unread,
Apr 24, 2017, 8:26:12 PM4/24/17
to web2py-users-brazil
De acordo com o tutorial no Geraldo, sim! Devo passar uma query.

Carlos Costa

unread,
Apr 25, 2017, 8:06:14 AM4/25/17
to web2py-us...@googlegroups.com
O que o Ari quis dizer é que o método .select() retorna Rows e não Query.
Isso retorna Rows: db(db.tb_lancamentos.id > 0).select()
Isso retorna Row: db(db.tb_lancamentos.id > 0).select()[0]
Isso retorna query: db(db.tb_lancamentos.id > 0)
Isso retorna query set: db.tb_lancamentos.id > 0

Esse queryset do Geraldo porém é apenas o nome do argumento, ele espera que você passe uma lista com os dados.

Porém a solução do seu problema é muito mais simples.
É só identar a classe class band_detail(ReportBand)
Ela deve ser um atributo da classe class ReportPurchase(Report)

Como ela está na mesma identação o Geraldo está achando que seu relatório não tem um banda de detalhe.
Por isso não sai nada.
Coisas de Python.

    class ReportPurchase(Report):
    title = 'Teste de Relatório'
    autor = auth.user.first_name
    page_size = landscape(A4)
    margin_left = 2*cm
    margin_top = 0.5*cm
    margin_right = 0.5*cm
    margin_bottom = 0.5*cm

        class band_detail(ReportBand):
            height = 0.5*cm
            elements=(
                ObjectValue(attribute_name='id', left=0.5*cm),
                )






Em 24 de abril de 2017 21:26, Gustavo Andrė Ronconi <gustavor...@gmail.com> escreveu:
De acordo com o tutorial no  Geraldo, sim! Devo passar uma query.
--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você está recebendo esta mensagem porque se inscreveu no grupo "web2py-users-brazil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><
Message has been deleted

Gustavo Andrė Ronconi

unread,
Apr 26, 2017, 6:43:59 AM4/26/17
to web2py-users-brazil
Bom dia Carlos,

Muito obrigador por corrigir a minha falta de atenção! É a primeira vez que tenho contato com esse tipo de recurso, mas aos poucos estou aprendendo; =) 
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com

Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você está recebendo esta mensagem porque se inscreveu no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.

Ari Sobel

unread,
Apr 26, 2017, 8:16:30 AM4/26/17
to web2py googlegroups
deu certo?



Para se desinscrever, envie email a: web2py-users-brazil+unsubscribe...@googlegroups.com

Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você está recebendo esta mensagem porque se inscreveu no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsubscribe...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com

Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Gustavo Andrė Ronconi

unread,
Apr 27, 2017, 12:44:03 PM4/27/17
to web2py-users-brazil
Sim Ari, obrigado!
deu certo?



Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você está recebendo esta mensagem porque se inscreveu no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages