Hello, community,
How can I trigger changing on child table when uploading bulk data to it using bulk edit!
I want to have an action after Upload data, this is my code I tried to trigger test_code
changing
this is working in normal add row but using upload bulk not working
frappe.ui.form.on('Lab Prescription', {
test_code: function(frm, cdt, cdn) {
var row = locals[cdt][cdn];
row.test_comment = 'blah blah';
cur_frm.refresh_fields(["test_comment"]);
}
});
and try this also:
frappe.ui.form.on("Lab Prescription", "test_code", function(frm, cdt, cdn){
var row = locals[cdt][cdn];
if(row.test_code){
console.log('hello');
row.test_comment = 'blah blah';
cur_frm.refresh_fields(["test_comment"]);
}
});
have you tried event onload or refresh?
I can’t find child table as your image to test.
I’m on v10.
You can get Bulk Download and Upload for child table by allowing Bulk Edit
you can find it in child table field of the doctype
I tried onload or refresh, but not working
When upload complete, it just refresh child table fieldname and not trigger any event. Normally when a child row added, it trigger event child fieldname_add.
if(df.fieldtype==="Int" || df.fieldtype==="Check") {
value = cint(value);
}
d[fieldnames[ci]] = value;
});
}
}
});
me.frm.refresh_field(me.df.fieldname);
frappe.msgprint({message:__('Table updated'), title:__('Success'), indicator:'green'})
}, __("Edit via Upload"), __("Update"));
return false;
});
}
},
setup_download: function() {
var me = this;
let title = me.df.label || frappe.model.unscrub(me.df.fieldname);
1 Like
frappe/frappe/blob/8ea8027093a63a1bb6909719a586bf1d57e18834/frappe/public/js/frappe/form/grid.js#L628
in line 628:
me.frm.script_manager.trigger(me.df.fieldname+“_upload_complete”, me.doctype, me.name);
frappe.ui.form.on(“Salary Detail”,{
items_upload_complete: function(frm) {
console.log(“complete”);
}
});
// items is child fieldname in parent doctype
2 Likes
Thanks for reply, I think I have no choice else, I have already make my customization on frappe
1 Like
Did you ever find the answer to this one?
I need this too for adding rows in bulk… currently doing it row by row is too inefficient.
Uploading is fast but it doesn’t trigger our code to retrieve / calculate row data for each row inserted.
added this code on line 628
frappe/frappe/blob/8ea8027093a63a1bb6909719a586bf1d57e18834/frappe/public/js/frappe/form/grid.js#L628
me.frm.script_manager.rigger(me.df.fieldname+“_upload_complete”, me.doctype, me.df.name);
and use this in custom script
frappe.ui.form.on(“CHILD TABLE NAME”,{
FieldNameInParent_upload_complete: function(frm) {
console.log(“complete”);
}
});
it working thanks magic-overflow
1 Like
Any solution for this without changing frappe code ?