ruby-on-rails – 将Jasper集成到Rails 3中
发布时间:2020-12-17 04:38:10 所属栏目:百科 来源:网络整理
导读:我试图在这个wiki之后将rails 3应用程序与jasper集成: http://wiki.rubyonrails.org/rails/pages/HowtoIntegrateJasperReports 但似乎很多信息都没有更新,所以很难让它自己工作.我还在ruby-forum上阅读了一个主题:http://www.ruby-forum.com/topic/139453
我试图在这个wiki之后将rails 3应用程序与jasper集成:
http://wiki.rubyonrails.org/rails/pages/HowtoIntegrateJasperReports 但似乎很多信息都没有更新,所以很难让它自己工作.我还在ruby-forum上阅读了一个主题:http://www.ruby-forum.com/topic/139453 我的第一个问题与render_to_string方法有关: 这是方法: def report @customers = Customer.all send_doc(render_to_string(:template => report_customers_path,:layout => false),'/pdfs','report.jasper',"customers",'pdf') end 虽然这看起来很简单,但我不明白为什么会这样.不使用layout => render_to_string; false假装让我得到那个动作的字符串结果? 如果任何具有这种集成专业知识的人可以帮助…… 解决方法
我们实际上使用jasperreports来创建报告,最近升级到Rails 3.0.要创建xml,我们使用xml.erb模板. Jasper报告在一个单独的glassfish服务器中运行以下是一般概念:
url = URI.parse(my_url_string) dataxml = render_to_string(:template => my_template_name).gsub(/n/,'') params = {'type' => 'pdf','compiledTemplateURI' => my_jasper_file,'data' => dataxml } request = Net::HTTP::POST.new(url.request_uri) request.set_form_data(params) obj = Net::HTTP.new(url.host,url.port) obj.read_timeout = my_timeout_setting response = obj.start { |http| http.request(request) } case response when Net::HTTPOK send_data(response.body,:filename => my_chosen_filename,:type => "application/pdf",:disposition => "inline") else raise "failed to generate report" end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |