odoo_dev 开发培训作业:图书管理系统
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

105 lines
4.9KB

  1. <?xml version="1.0"?>
  2. <odoo>
  3. <record id="paperformat_euro_landscape"
  4. model="report.paperformat">
  5. <field name="name">European A4 Landscape</field>
  6. <field name="default" eval="True" />
  7. <field name="format">A4</field>
  8. <field name="page_height">0</field>
  9. <field name="page_width">0</field>
  10. <field name="orientation">Landscape</field>
  11. <field name="margin_top">40</field>
  12. <field name="margin_bottom">23</field>
  13. <field name="margin_left">7</field>
  14. <field name="margin_right">7</field>
  15. <field name="header_line" eval="False" />
  16. <field name="header_spacing">35</field>
  17. <field name="dpi">90</field>
  18. </record>
  19. <report id="action_library_book_report"
  20. string="Library Books"
  21. model="library.book"
  22. report_type="qweb-pdf"
  23. name="library_app.report_library_book_translated"
  24. paperformat="paperformat_euro_landscape"/>
  25. <template id="report_library_book_translated">
  26. <t t-call="library_app.report_library_book_template"
  27. t-lang="user.lang" />
  28. </template>
  29. <template id="report_library_book_template">
  30. <t t-call="web.html_container">
  31. <t t-call="web.external_layout">
  32. <div class="page">
  33. <!-- Report header content -->
  34. <div class="container">
  35. <div class="row bg-primary">
  36. <div class="col-3">Title</div>
  37. <div class="col-2">Publisher</div>
  38. <div class="col-2">Date</div>
  39. <div class="col-3">Publisher Address</div>
  40. <div class="col-2">Authors</div>
  41. </div>
  42. <!-- Running total: initialize variable -->
  43. <t t-set="author_count" t-value="0" />
  44. <t t-foreach="docs" t-as="o">
  45. <div class="row">
  46. <!-- Report row content -->
  47. <div class="col-3">
  48. <h4><span t-field="o.name" /></h4>
  49. </div>
  50. <div class="col-2">
  51. <span t-field="o.publisher_id" />
  52. </div>
  53. <div class="col-2">
  54. <span t-field="o.date_published"
  55. t-options="{'widget': 'date'}"/>
  56. </div>
  57. <div class="col-3">
  58. <span t-field="o.publisher_id"
  59. t-options='{
  60. "widget": "contact",
  61. "fields": ["address", "email", "phone", "website"],
  62. "no_marker": true}'/>
  63. </div>
  64. <div class="col-2">
  65. <!-- Render authors -->
  66. <ul class="list-unstyled">
  67. <t t-foreach="o.author_ids" t-as="author">
  68. <li class="media">
  69. <span t-field="author.image_256"
  70. t-options="{'widget': 'image'}" />
  71. <div class="media-body">
  72. <p class="mt-0">
  73. <span t-field="author.name" />
  74. </p>
  75. </div>
  76. </li>
  77. </t>
  78. </ul>
  79. </div>
  80. </div>
  81. <!-- Running total: increment and present -->
  82. <t t-set="author_count" t-value="author_count + len(o.author_ids)" />
  83. </t>
  84. <!-- Report footer content -->
  85. <div class="row">
  86. <div class="col-3">
  87. Count: <t t-esc="len(docs)" />
  88. </div>
  89. <div class="col-2" />
  90. <div class="col-2" />
  91. <div class="col-3" />
  92. <div class="col-2" >
  93. Accum. authors: <t t-esc="author_count" />
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. </t>
  99. </t>
  100. </template>
  101. </odoo>
上海开阖软件有限公司 沪ICP备12045867号-1