diff --git a/addons/account/views/account_report.xml b/addons/account/views/account_report.xml
index 605c6f7c64bb9f46fd302afaa261888ac1bf6fea..5b301a2fa80c9f51ff57068859ebb7b5e0545921 100644
--- a/addons/account/views/account_report.xml
+++ b/addons/account/views/account_report.xml
@@ -12,6 +12,16 @@
             attachment_use="True"
             attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')"
         />
+        <record id="account_invoices" model="ir.actions.report.xml">
+            <field name="print_report_name">(object.type == 'out_invoice' and object.state == 'draft' and 'Draft Invoice' or
+            object.type == 'out_invoice' and object.state in ('open','paid') and 'Invoice'+'-'+(object.number) or
+            object.type == 'out_refund' and object.state == 'draft' and 'Refund' or
+            object.type == 'out_refund' and 'Refund'+'-'+(object.number) or
+            object.type == 'in_invoice' and object.state == 'draft' and 'Vendor Bill' or
+            object.type == 'in_invoice' and object.state in ('open','paid') and 'Vendor Bill'+'-'+(object.number) or
+            object.type == 'in_refund' and object.state == 'draft' and 'Vendor Refund' or
+            object.type == 'in_refund' and 'Vendor Refund'+'-'+(object.number))</field>
+        </record>
 
         <report 
             id="account_invoice_action_report_duplicate"
@@ -22,6 +32,16 @@
             file="account.report_invoice_duplicate"
             attachment_use="False"
         />
+        <record id="account_invoice_action_report_duplicate" model="ir.actions.report.xml">
+            <field name="print_report_name">(object.type == 'out_invoice' and object.state == 'draft' and 'Duplicate Invoice' or
+            object.type == 'out_invoice' and object.state in ('open','paid') and 'Duplicate Invoice'+'-'+(object.number) or
+            object.type == 'out_refund' and object.state == 'draft' and 'Duplicate Refund' or
+            object.type == 'out_refund' and 'Duplicate Refund'+'-'+(object.number) or
+            object.type == 'in_invoice' and object.state == 'draft' and 'Duplicate Vendor Bill' or
+            object.type == 'in_invoice' and object.state in ('open','paid') and 'Duplicate Vendor Bill'+'-'+(object.number) or
+            object.type == 'in_refund' and object.state == 'draft' and 'Duplicate Vendor Refund' or
+            object.type == 'in_refund' and 'Duplicate Vendor Refund'+'-'+(object.number))</field>
+        </record>
 
         <report 
             id="action_report_print_overdue"
@@ -31,6 +51,9 @@
             name="account.report_overdue"
             file="account.report_overdue"
             />
+        <record id="action_report_print_overdue" model="ir.actions.report.xml">
+            <field name="print_report_name">'Due Payments'+'-'+(object.name)</field>
+        </record>
 
         <report 
             id="action_report_general_ledger"
diff --git a/addons/event/report/event_event_reports.xml b/addons/event/report/event_event_reports.xml
index d15e72e4faa9284ff30adc31146eba53ed3c318c..2f81b7b0e3b220961e6a6f75c2e977e9b395f45a 100644
--- a/addons/event/report/event_event_reports.xml
+++ b/addons/event/report/event_event_reports.xml
@@ -25,6 +25,9 @@
         name="event.event_registration_report_template_badge"
         file="event.event_registration_report_template_badge"
         paperformat="event.paperformat_euro_lowmargin"/>
+    <record id="report_event_registration_badge" model="ir.actions.report.xml">
+        <field name="print_report_name">'Registration Event'+'-'+(object.name)</field>
+    </record>
 
      <report
         id="report_event_event_badge"
diff --git a/addons/hr_attendance/report/hr_employee_badge.xml b/addons/hr_attendance/report/hr_employee_badge.xml
index 387d846471606bfae9f5202639169b6d67504b44..902131334b0c49485b1d46b6c0298a739b0525b7 100644
--- a/addons/hr_attendance/report/hr_employee_badge.xml
+++ b/addons/hr_attendance/report/hr_employee_badge.xml
@@ -7,6 +7,9 @@
         report_type="qweb-html"
         name="hr_attendance.print_employee_badge"
         file="hr_attendance.print_employee_badge"/>
+    <record id="hr_employee_print_badge" model="ir.actions.report.xml">
+        <field name="print_report_name">'Print Badge'+'-'+(object.name)</field>
+    </record>
 
     <template id="print_employee_badge">
         <t t-call="report.html_container">
diff --git a/addons/hr_expense/report/report_expense_sheet.xml b/addons/hr_expense/report/report_expense_sheet.xml
index dcf612fec0927611c49f3154632b14211c665a55..e033d7920c1a5079b8072dd4878530e50b737ca3 100644
--- a/addons/hr_expense/report/report_expense_sheet.xml
+++ b/addons/hr_expense/report/report_expense_sheet.xml
@@ -106,5 +106,8 @@
         name="hr_expense.report_expense_sheet"
         file="hr_expense.report_expense_sheet"
     />
+    <record id="action_report_hr_expense_sheet" model="ir.actions.report.xml">
+        <field name="print_report_name">'Expenses'+'-'+(object.employee_id.name)+'-'+(object.name)</field>
+    </record>
 
 </odoo>
\ No newline at end of file
diff --git a/addons/hr_payroll/views/hr_payroll_report.xml b/addons/hr_payroll/views/hr_payroll_report.xml
index 725375803e2df511a319f59c3fb7f84ede2d07a1..c6e02324f0a64ddda58e2a5348af3a72c3495e89 100644
--- a/addons/hr_payroll/views/hr_payroll_report.xml
+++ b/addons/hr_payroll/views/hr_payroll_report.xml
@@ -17,6 +17,9 @@
             name="hr_payroll.report_payslip" 
             file="hr_payroll.report_payslip"
         />
+        <record id="action_report_payslip" model="ir.actions.report.xml">
+            <field name="print_report_name">(object.employee_id.name)+'-'+'Payslip'</field>
+        </record>
         <report
             id="payslip_details_report"
             model="hr.payslip"
@@ -25,4 +28,7 @@
             name="hr_payroll.report_payslipdetails" 
             file="hr_payroll.report_payslipdetails"
         />
+        <record id="payslip_details_report" model="ir.actions.report.xml">
+            <field name="print_report_name">(object.name)</field>
+        </record>
 </odoo>
diff --git a/addons/mrp/report/mrp_report_views_main.xml b/addons/mrp/report/mrp_report_views_main.xml
index 06fece65865f1f72c1a7dd13cf485d187284d7c6..cdc7d40e79e4b230064156f9d8fd8550030af243 100644
--- a/addons/mrp/report/mrp_report_views_main.xml
+++ b/addons/mrp/report/mrp_report_views_main.xml
@@ -9,6 +9,9 @@
             file="mrp.report.mrp_bom_templates" 
             report_type="qweb-pdf"
         />
+        <record id="action_report_bom_structure" model="ir.actions.report.xml">
+            <field name="print_report_name">'BOM'+'-'+(object.product_id.name or object.product_tmpl_id.name)</field>
+        </record>
 
         <report 
             string="Production Order" 
@@ -18,6 +21,9 @@
             file="mrp.report.mrp_production_templates" 
             report_type="qweb-pdf"
         />
+        <record id="action_report_production_order" model="ir.actions.report.xml">
+            <field name="print_report_name">'Production Order'+'-'+(object.name)</field>
+        </record>
 
         <report
             string="BOM Cost"
@@ -27,5 +33,8 @@
             file="mrp_bom_cost"
             report_type="qweb-html"
         />
+        <record id="action_report_bom_price" model="ir.actions.report.xml">
+            <field name="print_report_name">'BOM Cost'+'-'+(object.product_id.name or object.product_tmpl_id.name)</field>
+        </record>
     </data>
 </odoo>
diff --git a/addons/mrp_repair/report/mrp_repair_reports.xml b/addons/mrp_repair/report/mrp_repair_reports.xml
index 9a4ab10e86c001bb1eaf8e664dcfc03ec51511b8..db73449155d8f96e0b979604f78bcccbfd3df6aa 100644
--- a/addons/mrp_repair/report/mrp_repair_reports.xml
+++ b/addons/mrp_repair/report/mrp_repair_reports.xml
@@ -9,5 +9,8 @@
             file="mrp_repair.report_mrprepairorder" 
             report_type="qweb-pdf"
         />
+        <record id="action_report_mrp_repair_order" model="ir.actions.report.xml">
+            <field name="print_report_name">(object.state == 'draft' and 'Repair Quotation'+'-'+(object.name) or 'Repair Order'+'-'+(object.name))</field>
+        </record>
     </data>
 </odoo>
diff --git a/addons/point_of_sale/views/point_of_sale_report.xml b/addons/point_of_sale/views/point_of_sale_report.xml
index 94ad5b1e81103d7676338741cd4f3198dcede8dd..b751dea87befab8bf78baef12be8b2078a0d772a 100644
--- a/addons/point_of_sale/views/point_of_sale_report.xml
+++ b/addons/point_of_sale/views/point_of_sale_report.xml
@@ -15,6 +15,7 @@
         <field name="model">pos.order</field>
         <field name="report_type">qweb-pdf</field>
         <field name="report_name">point_of_sale.report_invoice</field>
+        <field name="print_report_name">'Invoice'+'-'+(object.name)</field>
     </record>
 
     <record id="sale_details_report" model="ir.actions.report.xml">
diff --git a/addons/product/report/product_reports.xml b/addons/product/report/product_reports.xml
index 11c802515e822b1364b93a9a543036677388cd2a..2c7a58336d0460e2dd3f526c8c8df348f10e1ef9 100644
--- a/addons/product/report/product_reports.xml
+++ b/addons/product/report/product_reports.xml
@@ -8,6 +8,9 @@
             report_type="qweb-pdf"
             name="product.report_productlabel"
             file="product.report_productlabel"/>
+        <record id="report_product_label" model="ir.actions.report.xml">
+            <field name="print_report_name">'Products Labels'+'-'+(object.name)</field>
+        </record>
 
         <report
             id="report_product_template_label"
@@ -16,6 +19,9 @@
             report_type="qweb-pdf"
             name="product.report_producttemplatelabel"
             file="product.report_producttemplatelabel"/>
+        <record id="report_product_template_label" model="ir.actions.report.xml">
+            <field name="print_report_name">'Products Labels'+'-'+(object.name)</field>
+        </record>
 
         <report 
             id="action_report_pricelist" 
diff --git a/addons/purchase/report/purchase_reports.xml b/addons/purchase/report/purchase_reports.xml
index 75bba974ed1ef48eac72c2bd9e056993c70924e9..a266c4d014704f642a4be371885d67f4e898b606 100644
--- a/addons/purchase/report/purchase_reports.xml
+++ b/addons/purchase/report/purchase_reports.xml
@@ -8,6 +8,9 @@
             name="purchase.report_purchaseorder" 
             file="purchase.report_purchaseorder" 
         />
+        <record id="action_report_purchase_order" model="ir.actions.report.xml">
+            <field name="print_report_name">(object.state in ('draft', 'sent') and 'Request for Quotation'+'-'+(object.name) or 'Purchase Order'+'-'+(object.name))</field>
+        </record>
 
         <report 
             string="Request for Quotation" 
@@ -17,4 +20,7 @@
             name="purchase.report_purchasequotation" 
             file="purchase.report_purchasequotation"
         />
+        <record id="report_purchase_quotation" model="ir.actions.report.xml">
+            <field name="print_report_name">'Request for Quotation'+'-'+(object.name)</field>
+        </record>
 </odoo>
diff --git a/addons/purchase_requisition/report/purchase_requisition_report.xml b/addons/purchase_requisition/report/purchase_requisition_report.xml
index 844be7bd8e1c816ce4e9782a180bd937ea3ccb19..98b73254c115f312be8b43303d0840b4e4e88f1f 100644
--- a/addons/purchase_requisition/report/purchase_requisition_report.xml
+++ b/addons/purchase_requisition/report/purchase_requisition_report.xml
@@ -9,5 +9,8 @@
             name="purchase_requisition.report_purchaserequisitions" 
             file="purchase_requisition.report.report_purchaserequisitions"
          />
+        <record id="action_report_purchase_requisitions" model="ir.actions.report.xml">
+            <field name="print_report_name">'Tender'+'-'+(object.name)</field>
+        </record>
     </data>
 </odoo>
diff --git a/addons/report/controllers/main.py b/addons/report/controllers/main.py
index aad5d3a23ea7c184542ac6e9b55a892bf4f6e107..3219d14754b6ea7ef9c168db509bc41f586f846b 100644
--- a/addons/report/controllers/main.py
+++ b/addons/report/controllers/main.py
@@ -105,7 +105,8 @@ class ReportController(Controller):
                     ids = [int(x) for x in docids.split(",")]
                     obj = request.env[report.model].browse(ids)
                     if report.print_report_name and not len(obj) > 1:
-                        filename = safe_eval(report.print_report_name, {'object': obj, 'time': time})
+                        report_name = safe_eval(report.print_report_name, {'object': obj, 'time': time})
+                        filename = "%s.%s" % (report_name, "pdf")
                 response.headers.add('Content-Disposition', content_disposition(filename))
                 response.set_cookie('fileToken', token)
                 return response
diff --git a/addons/report_intrastat/report/report_intrastat_report.xml b/addons/report_intrastat/report/report_intrastat_report.xml
index 9c666f1b6f75d9b9fdd0258fdf13863863327bfd..ff96ea6e3153cf29e5c895fe53504de05d3f4e4e 100644
--- a/addons/report_intrastat/report/report_intrastat_report.xml
+++ b/addons/report_intrastat/report/report_intrastat_report.xml
@@ -8,4 +8,14 @@
         name="report_intrastat.report_intrastatinvoice"
         file="report_intrastat.report_intrastatinvoice"
     />
+    <record id="account_intrastatinvoices" model="ir.actions.report.xml">
+        <field name="print_report_name">(object.type == 'out_invoice' and object.state == 'draft' and 'Intrastat Invoice' or
+        object.type == 'out_invoice' and object.state in ('open','paid') and 'Intrastat Invoice'+'-'+(object.number) or
+        object.type == 'out_refund' and object.state == 'draft' and 'Intrastat Refund' or
+        object.type == 'out_refund' and 'Intrastat Refund'+'-'+(object.number) or
+        object.type == 'in_invoice' and object.state == 'draft' and 'Intrastat Vendor Bill' or
+        object.type == 'in_invoice' and object.state in ('open','paid') and 'Intrastat Vendor Bill'+'-'+(object.number) or
+        object.type == 'in_refund' and object.state == 'draft' and 'Intrastat Vendor Refund' or
+        object.type == 'in_refund' and 'Intrastat Vendor Refund'+'-'+(object.number))</field>
+    </record>
 </odoo>
diff --git a/addons/sale/report/sale_report.xml b/addons/sale/report/sale_report.xml
index 04d9080928ba72772f32ea0b88986d5b22e75bb8..e0bad531aeac82e56c604d285cbd715e92a417cf 100644
--- a/addons/sale/report/sale_report.xml
+++ b/addons/sale/report/sale_report.xml
@@ -9,5 +9,8 @@
             file="sale.report_saleorder" 
             name="sale.report_saleorder" 
         />
+        <record id="report_sale_order" model="ir.actions.report.xml">
+            <field name="print_report_name">(object.state in ('draft', 'sent') and 'Quotation'+'-'+(object.name) or 'Order'+'-'+(object.name))</field>
+        </record>
     </data>
 </odoo>
diff --git a/addons/stock/report/stock_report_views.xml b/addons/stock/report/stock_report_views.xml
index 750918c22d295760cb48b1ced3f03c5603b102f6..c794b59e9bedd215e720333bf8a345a858723126 100644
--- a/addons/stock/report/stock_report_views.xml
+++ b/addons/stock/report/stock_report_views.xml
@@ -9,6 +9,9 @@
             name="stock.report_picking"
             file="stock.report_picking_operations"
         />
+        <record id="action_report_picking" model="ir.actions.report.xml">
+            <field name="print_report_name">'Picking Operations'+'-'+(object.partner_id.name)+'-'+(object.name)</field>
+        </record>
         <report
             string="Delivery Slip"
             id="action_report_delivery"
@@ -17,6 +20,9 @@
             name="stock.report_deliveryslip"
             file="stock.report_deliveryslip"
         />
+        <record id="action_report_delivery" model="ir.actions.report.xml">
+            <field name="print_report_name">'Delivery Slip'+'-'+(object.partner_id.name)+'-'+(object.name)</field>
+        </record>
         <report
             string="Inventory" 
             id="action_report_inventory" 
@@ -25,9 +31,18 @@
             name="stock.report_inventory" 
             file="stock.report_inventory" 
         />
+        <record id="action_report_inventory" model="ir.actions.report.xml">
+            <field name="print_report_name">'Inventory'+'-'+(object.name)</field>
+        </record>
         <report id="action_report_quant_package_barcode" model="stock.quant.package" report_type="qweb-pdf" name="stock.report_package_barcode" string="Package BarCode with Contents" file="stock.report_package_barcode"/>
         <report id="action_report_quant_package_barcode_small" model="stock.quant.package" report_type="qweb-pdf" name="stock.report_package_barcode_small" string="Package BarCode" file="stock.report_package_barcode"/>
         <report id="action_report_location_barcode" model="stock.location" report_type="qweb-pdf" name="stock.report_location_barcode" string="Location BarCode" file="stock.report_location_barcode"/>
+        <record id="action_report_location_barcode" model="ir.actions.report.xml">
+            <field name="print_report_name">(object.name)+'-'+'Location'</field>
+        </record>
         <report id="action_report_lot_barcode" model="stock.production.lot" report_type="qweb-pdf" name="stock.report_lot_barcode" string="Lot BarCode" file="stock.report_lot_barcode"/>
+        <record id="action_report_lot_barcode" model="ir.actions.report.xml">
+            <field name="print_report_name">'Lot/Serial'+'-'+(object.name)</field>
+        </record>
     </data>
 </odoo>
diff --git a/addons/website_quote/report/sale_order_reports.xml b/addons/website_quote/report/sale_order_reports.xml
index 9b4f6e1008234456c62e4e5f7555676040dbded8..1aeaf7c6e0e66fc015220df45744b57fd112bac6 100644
--- a/addons/website_quote/report/sale_order_reports.xml
+++ b/addons/website_quote/report/sale_order_reports.xml
@@ -9,4 +9,7 @@
             name="website_quote.report_quote" 
             menu="False"
         />
+        <record id="report_web_quote" model="ir.actions.report.xml">
+            <field name="print_report_name">(object.state in ('draft', 'sent') and 'Quotation'+'-'+(object.name) or 'Order'+'-'+(object.name))</field>
+        </record>
 </odoo>