Show child table last row only in print format

I have a custom print format which includes a child table with multiple rows.
I want to print only the last row.

how can I do that?

Hi @Ahmed_F_Mostafa

Did you find a solution to this? I’m also interested in achieving something similar



I saw this topic when I really wanted to do exactly what you want and it took me around 3 days to got it done.

The solution is quite simple, just get the data you want from the database with this code in print format

{% set index = frappe.db.get_value('Sales Invoice Item', {'parent'}, 'idx', order_by="idx desc") %}

{{ index }}

In the code, I want to show the last row of index number in Sales Invoice Item which order_by=“idx desc” will do the last row.

if you want multiple data to show you can put [‘idx’,‘item_code’,‘item_name’] instead of ‘idx’

You can play around with the code to achieve what you want.

The syntax refers here

@wale This might help if you still need it.

Hi, you can solve this also just with jinja2 functions:

{% set last_item = doc.items|last %}
{{ doc.items|length }} - {{ last_item.item_code }} - {{ last_item.item_name }}

So you don’t need to make a database call.

1 Like


Thank a lot. That’s easier and it works perfectly.