Freezing Columns in Report

I want to freeze the first two columns of a report when scrolling horizontally and vertically.

I implemented this. But it is getting possible only for those no of rows which are visible initially for the first time (without scrolling).
But when we scroll down columns are not visible.


I want the first two columns of a report freeze when scrolling horizontally.
And also when scrolling vertically, one should get respective data of particular column.

Thank You.


What’s ur erpnext version ?

Version 10.1.20

I have made it worked.
Here’s my approach.

first backup slickgrid:

then use my slickgrid repos instead:
GitHub - magic-overflow/slickgrid

I made changes on frappe-bench/apps/frappe/frappe/public/js/frappe/views/reports/query_reports.js to have option to freeze column. Please find change below.


Please make a pull request or package this as an app. Great work!

I think frappe team will replace slickgrid with datagrid in v10 once v11 stable.

Will the Datagrid have frozen columns?

Sorry, not datagrid, it’s datatable. It will have in future as this feature in development plan.

is this the datatable erpnext is using?

interesting. I never understood why this functionality was not given priority, which should not be very difficult to implement, there are several posts about it.

Many reports are practically unreadable without being able to do this.


Erpnext using this one Frappe DataTable - A simple, modern datatable library for the web . It’s built from scratch by frappe team.

1 Like

@magic-overflow I implemented as per your guide but there is no effect in the columns. I want to freeze particular column while scrolling horizontally in the report.