<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>Hi Ville,</p>
<p>Good that you got it working.</p>
<p>Yes, this is the correct way to do it. You need to nest these functions. After a lot of nesting, the expressions get harder to read. But you can also write the expression in multiple lines with indentations. That often makes it easier to read.</p>
<p>Note that for providing the layer, you can either provide the internal layer id (often quite long and hard to read) or the human readable layer name - as long as the latter is unique in the project.</p>
<p>Greetings,</p>
<p>Andreas</p>
<p id="reply-intro">On 2019-06-26 11:16, Ville Koivisto wrote:</p>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0"><!-- html ignored --> <!-- head ignored --> <!-- meta ignored --> <!-- meta ignored --></blockquote>
</blockquote>
<style type="text/css">
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}

p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle24
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:70.85pt 56.7pt 70.85pt 56.7pt;}
div.WordSection1
        {page:WordSection1;}

@list l0
        {mso-list-id:1592857841;
        mso-list-template-ids:888550370;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}</style>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<div class="WordSection1">
<p class="MsoNormal"><strong>Hi again,<!-- o ignored --></strong></p>
<p class="MsoNormal"><!-- o ignored --> </p>
<p class="MsoNormal"><span>Yes, there's a relation, both spatial and via attributes. I got it working with the syntax below: <!-- o ignored --></span></p>
<p class="MsoNormal"><span><!-- o ignored --> </span></p>
<p class="MsoNormal"><span>concat('The value is: ',(attribute(get_feature('layer name','Field that matches atlas page', @atlas_pagename),'Field for value')))<!-- o ignored --></span></p>
<p class="MsoNormal"><span><!-- o ignored --> </span></p>
<p class="MsoNormal"><span>Thank you again, this was very helpful. I'll try to see if there's already a question related to this in stackexchange and if not, create one. <!-- o ignored --></span></p>
<p class="MsoNormal"><span><!-- o ignored --> </span></p>
<p class="MsoNormal"><strong><span>Best regards,<!-- o ignored --></span></strong></p>
<p class="MsoNormal"><span>Ville Koivisto<!-- o ignored --></span></p>
<p class="MsoNormal"><span><!-- o ignored --> </span></p>
<div>
<div style="border: none; border-top: solid #E1E1E1 1.0pt; padding: 3.0pt 0in 0in 0in;">
<p class="MsoNormal"><strong><span style="mso-fareast-language: FI;">From:</span></strong><span style="mso-fareast-language: FI;"> Andreas Neumann <a.neumann@carto.net> <br /><strong>Sent:</strong> Wednesday, June 26, 2019 10:45 AM<br /><strong>To:</strong> Ville Koivisto <ville.koivisto@kuntotekniikka.fi><br /><strong>Cc:</strong> qgis-user@lists.osgeo.org<br /><strong>Subject:</strong> Re: [Qgis-user] How to change what fields QGIS layout text tool reads?<!-- o ignored --></span></p>
</div>
</div>
<p class="MsoNormal"><!-- o ignored --> </p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Hi,<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">I assume there is some kind of relation with common IDs or spatial relations between the coverage layer and the two other layers?<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">If yes, any of the three methods I proposed should work fine.<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">The text tool can only work with the coverage layer in Atlas context. All other layers will need to be retrieved through other methods, like the ones I described.<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Have a look at the examples (help) of the the get_feature() and get_feature_by_id() functions. They should help you get going.<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">If not, then share with us the expression you tried.<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Andreas<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"><!-- o ignored --> </span></p>
<p id="reply-intro"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">On 2019-06-26 09:33, Ville Koivisto wrote:<!-- o ignored --></span></p>
<blockquote style="border: none; border-left: solid #1010FF 1.5pt; padding: 0in 0in 0in 5.0pt; margin-left: 0in; margin-right: 0in;">
<p class="MsoNormal">Hi, <!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal">Thank you very much for your prompt answer. I have an atlas in the making that has at least three different layers in it, one naturally being the coverage layer. I have several text boxes in the atlas which are supposed to retrieve useful info from one of the layers. Syntaxes differ, simpler ones being for example:<!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal">concat('The value is', "Field")<!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal">...and I've been unable to fetch that "field" successfully. I assume that get_feature() / get_feature_by_id() and attribute() will get me further in this. By what logic the text tool chooses a layer from which to initially read fields (i.e. values user can check and use from drop down-menu <em><span style="font-family: 'Calibri',sans-serif;">fields and values</span></em>)? <!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal">Best regards,<!-- o ignored --></p>
<p class="MsoNormal">Ville Koivisto<!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<div>
<div style="border: none; border-top: solid #E1E1E1 1.0pt; padding: 3.0pt 0in 0in 0in;">
<p class="MsoNormal"><strong><span style="font-family: 'Calibri',sans-serif; mso-fareast-language: FI;">From:</span></strong><span style="mso-fareast-language: FI;"> Andreas Neumann <<a href="mailto:a.neumann@carto.net" rel="noreferrer">a.neumann@carto.net</a>> <br /><strong><span style="font-family: 'Calibri',sans-serif;">Sent:</span></strong> Wednesday, June 26, 2019 10:21 AM<br /><strong><span style="font-family: 'Calibri',sans-serif;">To:</span></strong> Ville Koivisto <<a href="mailto:ville.koivisto@kuntotekniikka.fi" rel="noreferrer">ville.koivisto@kuntotekniikka.fi</a>><br /><strong><span style="font-family: 'Calibri',sans-serif;">Cc:</span></strong> <a href="mailto:qgis-user@lists.osgeo.org" rel="noreferrer"> qgis-user@lists.osgeo.org</a><br /><strong><span style="font-family: 'Calibri',sans-serif;">Subject:</span></strong> Re: [Qgis-user] How to change what fields QGIS layout text tool reads?</span><!-- o ignored --></p>
</div>
</div>
<p class="MsoNormal"> <!-- o ignored --></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Hi,<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">What expression did you use?<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Here are some ideas what you could do:<!-- o ignored --></span></p>
<ul type="disc">
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1;"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">get_feature() / get_feature_by_id() and attribute() - here you need some logic how to retrieve the related feature from the other layer</span><!-- o ignored --></li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1;"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">relation_aggregate() - allows you to have more than one match in the other layer and create aggregates</span><!-- o ignored --></li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1;"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">joins on layer properties - for 1:1 joins - needs to be done on layer properties</span><!-- o ignored --></li>
</ul>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">If you clarify more specifically what you want to do, we can more easily help.<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Also, if you have your expressions to share that you tried, it would help.<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Greetings,<!-- o ignored --></span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Andreas<!-- o ignored --></span></p>
<p id="reply-intro"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">On 2019-06-26 09:06, Ville Koivisto wrote:<!-- o ignored --></span></p>
<blockquote style="border: none; border-left: solid #1010FF 1.5pt; padding: 0in 0in 0in 5.0pt; margin: 5.0pt 0in 5.0pt 0in;">
<p class="MsoNormal"><strong><span style="font-family: 'Calibri',sans-serif;">Hi list, </span></strong><!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal">I'm trying to add several texts to my layout and configure their contents by an expression. The problem is that the fields that expression dialog offers me under <em><span style="font-family: 'Calibri',sans-serif;">fields and values </span></em>are from one certain layer and I need them from another one. I'm struggling to find a way to fetch fields from two other layers participating in the layout. <!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal">If I try to use their fields in an expression I get: <!-- o ignored --></p>
<p class="MsoNormal"><em><span style="font-family: 'Calibri',sans-serif;">Eval error: Column "Field" not found</span></em><!-- o ignored --></p>
<p class="MsoNormal"><em><span style="font-family: 'Calibri',sans-serif;"> </span></em><!-- o ignored --></p>
<p class="MsoNormal">How to solve this? Thank you for your attention. <!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal"><strong><span style="font-family: 'Calibri',sans-serif;">Best regards,</span></strong><!-- o ignored --></p>
<p class="MsoNormal">Ville Koivisto<!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal"> <!-- o ignored --></p>
<p class="MsoNormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif; mso-fareast-language: FI;"> </span><!-- o ignored --></p>
<div>
<p class="MsoNormal"><span style="font-size: 10.0pt; font-family: 'Courier New'; mso-fareast-language: FI;">_______________________________________________<br />Qgis-user mailing list<br /><a href="mailto:Qgis-user@lists.osgeo.org" rel="noreferrer">Qgis-user@lists.osgeo.org</a><br />List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-user" target="_blank" rel="noopener noreferrer"> https://lists.osgeo.org/mailman/listinfo/qgis-user</a><br />Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-user" target="_blank" rel="noopener noreferrer"> https://lists.osgeo.org/mailman/listinfo/qgis-user</a></span><!-- o ignored --></p>
</div>
</blockquote>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"> <!-- o ignored --></span></p>
</blockquote>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"><!-- o ignored --> </span></p>
</div>
</blockquote>
<p><br /></p>

</body></html>