Unticked “Add Total” and added total by coding. after hosting the reports showing the total in reports. How we can remove the add total from report… ?
Approach: Modify Report Script
-
Access Custom Script:
- If you have already customized the report using a custom script, you need to modify the script to exclude the “Add Total” row.
-
Identify the Total Row:
- Typically, the total row can be identified by a specific label or value in one of the columns. You need to write a condition to exclude this row.
-
Modify Report Data:
- Modify the data returned by the report to filter out the total row before rendering it on the frontend.
Example: Custom Script for Report
Here’s an example of how you can achieve this in a custom report script:
Step 1: Open the Report Script
Go to your custom report’s script file. This is typically found in your custom app under:
your_app/your_app/report/your_custom_report/your_custom_report.js
Step 2: Modify the Data Handling
Add logic to filter out the total row from the data. Here’s a sample script demonstrating how to achieve this:
frappe.query_reports["Your Custom Report"] = {
"filters": [
// your existing filters here
],
"onload": function(report) {
// Code to run on report load
},
"formatter": function(value, row, column, data, default_formatter) {
// Formatter function if needed
return default_formatter(value, row, column, data);
},
"get_data": function() {
// Fetch the original data
const original_data = frappe.query_report.get_data();
// Filter out the total row
const filtered_data = original_data.filter(row => {
return row.some(column_value => column_value !== 'Total');
});
return filtered_data;
}
};
In this example, frappe.query_report.get_data()
is a placeholder for the method you use to get your report data. You will need to replace it with the actual method or variable that contains your report data.
Step 3: Update Report Settings
Ensure your report settings are updated to use this custom script.
- Go to the Report Doctype in Frappe/ERPNext.
- Locate your custom report.
- Ensure that the script path or the custom script is correctly linked to your report.
Approach: Server-Side Scripting
If you prefer to handle this on the server side before the data is sent to the client:
-
Modify the Report Python Script:
-
Open the Python script for your report, typically located at:
your_app/your_app/report/your_custom_report/your_custom_report.py
-
-
Filter Out Total Row:
- Add logic to filter out the total row in the script that prepares the report data.
def execute(filters=None): columns, data = [], [] # your existing code to fetch data data = get_report_data(filters) # Filter out the total row data = [row for row in data if not is_total_row(row)] return columns, data def is_total_row(row): # Replace with your condition to identify the total row return 'Total' in row
-
Update Report Configuration:
- Ensure your report is configured to use this updated script.
Final Steps
- Test the Changes: Ensure that the report works as expected without the total row.
- Clear Cache: Sometimes, clearing the cache helps in reflecting the latest changes.
bench clear-cache bench clear-website-cache bench restart