From 5db4cbd1f6449dc44037988f7be0b6d6726f1c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CAudrey?= <“auva@odoo.com”> Date: Thu, 25 Jan 2024 17:00:17 +0100 Subject: [PATCH] [IMP] Studio: add a data table using the report editor task-3698568 closes odoo/documentation#7621 X-original-commit: 281137ccfb254d576d8eb2de09e496d98dc4a8c6 Signed-off-by: Audrey Vandromme (auva) --- .../productivity/studio/pdf_reports.rst | 29 ++++++++++++++++++ .../studio/pdf_reports/dynamic-table.png | Bin 0 -> 5933 bytes .../studio/pdf_reports/table-add-column.png | Bin 0 -> 4216 bytes 3 files changed, 29 insertions(+) create mode 100644 content/applications/productivity/studio/pdf_reports/dynamic-table.png create mode 100644 content/applications/productivity/studio/pdf_reports/table-add-column.png diff --git a/content/applications/productivity/studio/pdf_reports.rst b/content/applications/productivity/studio/pdf_reports.rst index 4401391cc..a998b6146 100644 --- a/content/applications/productivity/studio/pdf_reports.rst +++ b/content/applications/productivity/studio/pdf_reports.rst @@ -232,6 +232,35 @@ fields if needed. Then, specify the default value and press `Enter`. .. image:: pdf_reports/powerbox-field.png :alt: Select a related field. +Add a data table +**************** + +Data tables are used to display :ref:`relational fields `. To add +a data table, type `/`, select the :guilabel:`Dynamic Table` command, and select the relation to be +displayed in the table. + +.. note:: + Only relations of type `one2many` or `many2many` can be displayed as data tables. + +Once the table has been added, you can add columns using the table tools. Position the cursor on top +of the column, then click the purple rectangle and select an option. + +.. image:: pdf_reports/table-add-column.png + :alt: Add a column in a dynamic table. + +You can then insert the :ref:`field of your choice +` in the columns. The dialog box that opens shows the source object +for the field (e.g., the *Tag* model) and the list of available fields. + +.. image:: pdf_reports/dynamic-table.png + :alt: List of available fields for the Tag model. + +.. note:: + - The default row automatically iterates over the field's content, generating a row on the report + for each field value (e.g., one row per tag). You can add static content rows above or below + the generated rows using the table tools. + - You can also add data tables by :ref:`modifying the report's XML `. + Formatting ********** diff --git a/content/applications/productivity/studio/pdf_reports/dynamic-table.png b/content/applications/productivity/studio/pdf_reports/dynamic-table.png new file mode 100644 index 0000000000000000000000000000000000000000..8d6167354a95986e56f7f0350c9da581b0a70537 GIT binary patch literal 5933 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 literal 0 HcmV?d00001 diff --git a/content/applications/productivity/studio/pdf_reports/table-add-column.png b/content/applications/productivity/studio/pdf_reports/table-add-column.png new file mode 100644 index 0000000000000000000000000000000000000000..9851baa2a549f1ffa5937bca7f2c1093a0a02b26 GIT binary patch literal 4216 zcmZ9Qc{tSH_rSHtC_AN3d@yE=H4>Q;#tcFkW2>yAM6wfMEGfy73S-~1Zy_lPLyKhw znNQjG@J80jJ4+be-|72%e&6T&`~7jxz2|w(JC;XH13wq z6=yWo6oMF;50l_hvJ=yDFMUj7zd)2-XgpROYPiL3TY2d4k^Oexo*-F>9#!GxD1(yy z2|);1b(|jV6qiB7Hwb+>u#*Y>V7dHJAi&E9F?%3rJ82k#)@rJLLr(`FXn&9;l!Mx{ z<{^qV9NGoym=MZ?a!i*jA$N`9@mJdu`~GzZCgBb--_d_Umow(X2WJZ zD8ppAOkrw|NR9K#((W*;%8QTb&`eUt11)Dc85u&%2~i}({Lso^?yu0ZrlD~Nl8}_R zDSw8OPqf@ojukFOL>HSpn{r#XXaWNEpv}&wT<~*fBr1Xi!L?(s&M7CP{mfP2HpPoZ z-Y@XUV^XH+E4vU%-3Y3(ffy9%ohKvr%44;oFyUL8@-Fh1eW0zean>Pjbe63_LZ&a~ z-$gXdK`!->j3yBi)Rbo}56yfql95qGYt@9^@HRf*QBeSwz3o;9x?-g#UWI5O1Go4MD1SLnF^kwa+=k zQi>}FahUTv|D?z{RNg$nA5lM3TH;ydaxS)eA>fQ)wmZ=-GVi6GMC2v8q-iKWyX)TP z{kKjc)0sxWnlkr$_Drm7+P?vU$Iaw<&Ssd2TvNa&Tvbk~@01li?xmnG)RX}I8t_)Z z5cKiSn&;c5b{itEq3lvLob#bC!EKvRnGX(Q`2ZVOv(aAyF^a9K_uy6qSY`ar`Eg%c zgQ7@}f}XXqMaVp^iJM=`M2cTgQ6Yi`ysB)h9A!RkTidL2E~9>P$mx9$@_f3?XKZi` zZe97*$MW~yYH(_OQeBxkmx`IZdt2sRN-%bb@w4VT)Y;RM<7eSt`CaF#ch<~SeO}DK zCrtyevyz;OoiL7RWoX zdb5|fOuok0p3OSWXJQd=9$}U@aNvYRnwk3PoHmh4!M>myHQlw>Dm*mHeXIKYS4Qsb zhHQ!*J{WlQ=o~jBzO#lWu5AdmXptt+KO^`e_;4`ze~Eakll#*SwvEahEagQ# zrJSTb(x4*ZIY@^=i8yUBz|jm8G$mdX-OZN;*W*`<}U~)-z*)MK0yin)6%vUd5if8r#Ib5cvTYFIFUOfRHP^G>L4(4 z*Fs1qN2^0!!-uoh#Xi^(G;%@8;(a9%0ixSp9^E%~(E6Xe&?vQx@|Rd=r{N6TrbP+{ za9P6@sCb~ipj*1ev$yg$4nYrm3OMRKuImOmFL7==rEZokaN;d9EM4zqzaa;ty@~+c z8f+Aw-J}VB1w#ErebPP<{ZF#D5H1r*yYHH$ue~040&2z-&sJpMp(|3PJclBjPpoL`{qowC)OHmwr;KbbJ z3}znJMTWP1Zb(q4e2_k?W&%5^2FP2-#ua%2d`i!83qVans@^V8iSdNe8>u?=&nk)q z+wFwd!r>JFGg^|O_t+mvw{?lOOMtZy)N5#`6VItV!^=Iz1RzwLM{Z=N=C=mznf0;f znFKa}*76k`oi-3i6~F7>@K$G^No%Y_aisM^obLL(s-x4`PvLtP!0<|%VyB^;D^SkM zx&1ko5S%nf!-f8A=iO^)Iv*V*`L(dmBlq^)k5P>|xPaim(TjFf%4j%wfdhGkmn+S4 zPyf>EwiEidO;Wk)t#aKBRY`Es?QeASE5TEHi0Zr!FRK|&@8#qZM6=k(JCJ)Bq9&G< z!OS{0)ixY~QX-|_Z&tU}h|B34s*Vww#V2&lF5Y?Glpg%jmPpKx0{DYUTkW#DdjXo} z7QmLT(wSImm29;~GfD1QSbBG3)d59CIET zsEEVhAC$C^TPH6Zt0c0M`U0r2JDkt%S2X&5@YNBUrw4v4^iawBsEJ|&5+0HVtG*TL z>@VLA+v!y_lZfL=X!1`+{S6A-o)U?nnM*2N`jPNgJ$>fwTl)N8Aepz>ESO%86h0AL zk^>J9H9s^%5UedqjMDmFtj1mt7fpZu@HSm}5*#-s7T9$zz=1VO#QpABE3g)4VEH_|e7nhqqAYE(zqm*^W?hEN?NI9K52I!eS?PHFNZkFwGFtwI+#-eC+sd$z z)F(Dx7Q_=9lLW6!g#5-p2f%0!ps{JETt}-)(PZp=YIK(H==;i7Q&hL>E)G>gZxm-+ z$<@Elmo9;|5^?KsO*chh@OXU~z)uzFd?%c&VMsH;-0Ai2-Q-@?)K_TddBhWs zW&=A-I*hk0L^uAS6dwg8yewIu2|z(XMp5-24wK^N;iO{~osA2oRlq-MepC1-%iRX( za%nBPEzP@;49BA#j2NzRsWnS8_9k85di$*mTNxGLx{Pp2lYOcBhBK=*i6!uAd0i+$ zS-+Ra07rE{JW#a!ee1H!+trHxFmOK$UInC^#1pNvaA(LHV z6&K*D>C+EaYPgI!AhbxX54{z=x&HP?Xc#L3Ei$w`sR)D*e*Y%EB$WklppoD_a67RUlP2l8jIq z8Wf<1EZBDDJcG*nqzL|}&AL4MYp=WWI8iO$kJI#Luou_qa z-!RqFA=YN5Y#eCL5CalECJZW$w-#Fl*Q${8zG$=Vk1ny%&wTz3pl^JbR9Fu**7zmf zA^B!!m+YmP0>+VjJ$-&j!&fH5M1fgrp__{;L_nE z?Jb7dVjIW7ARh@9dssL8KM$GzOQEd~%6vh7luJ3OVQvwoVuB)$+JN~c?D4MMzqdbm z`&{>pjE!^2d)aK8d%MuVxm|5mWgaFy>p9Bdam**JWjT0dsE1k9yoJDgmt+T{I|@QZ z%f-|ukKO5M($tLUx^B7!S5iJeYV`syg$1YV{}_C%k`LWqjcL9}QMlkb4I zp^fx+_>_=^c@eQDRVgZ>nOq{RMluKPzE{t%dmK0FNXvZR(K$OS#lqwh4c{Ggi+=x| zkp>!BT$rh7Y@dM5Zgy2NvpyVb(%Jo?G5;z5|Ky3!AO%won_Sc zzcmchlN?Uw*S;BR!z9Q=!Y$9}VUdrbAAZ02s+T87R=^ZX^$gEx)q#zxTTbi!M6HrS zvl+3~ekQl*%=_9ySaiIS5-($pu#_kBb7h}~SJ<6}gb<|CG-moJxLKcngm`j_r-jrp z_d73b0!GZuJonX!w?l-I8st4ah zFqCOJ>3|nT(0XS{b^H3>D2Gq(;9gYaM)5_>u3GUhuXER0HITfsiD5Fj*QYLoO}SR0 zL-+5cKH`2odjpX;nYAQ5aH-c%)$(ofjHQ>rbVn593z*sE6;q|Xh_py&y#ApJn#{?y zs1p}!)G}6A`T^B$^?}U7812BYFGgBLN@6}Xev+ipgpkF2ikO?$@E!HB3LBwMH4}~* zlQEH!9W=L?+&0fxVRvx7+D!43J<&%l)-lLFy=0(Yo!S>T;!$aHJ$_36ERniCdhqtTEaz_B`3{Tiul} zNJD%k(=&t*8i+~!|12bG804@L#P&bw@J