今天终于打开报表了,原来是传参数传的不对。应该传给jasperserver的参数是will_id而不是will。这种情况下可以去ireport中看看sql查询,看看究竟需要传数据表中的哪个字段。
def example_report
output_format = "PDF"
report_unit = "/reports/samples/EmployeeAccounts"
# report_unit = "/adhoc/topics/CustomersReport"
# report_unit = "/supermart/details/CustomerDetailReport"
# report_params = Hash.new(params[:report_params]) # this should be a Hash!
# report_params ="["+"["+"EmployeeID,matt"+"]"+"]"
# report_params ={"key" => "Employee", "value" => "matt"}
report_params = {'EmployeeID'=>params[:report_params]}
# report_params = {'DateFrom'=>'19931111','DateTo'=>Time.now}
puts report_params.to_s
client = JasperServer::Client.new("http://localhost:8080/jasperserver-pro/services/repository",
"jasperadmin", "jasperadmin")
request = JasperServer::ReportRequest.new(report_unit, output_format,report_params)
pdf_data = client.request_report(request)
filename = params[:action]+" on "+Time.now.iso8601
send_data(pdf_data, :type => Mime::Type.lookup_by_extension(output_format.downcase),
:disposition => 'inline', :filename => filename)
end