@@ -189,7 +189,11 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView {
189189 // child table field
190190 const [ cdt , _field ] = fieldname . split ( ':' ) ;
191191 const cdt_row = Object . keys ( doc )
192- . filter ( key => Array . isArray ( doc [ key ] ) && doc [ key ] [ 0 ] . doctype === cdt )
192+ . filter ( key =>
193+ Array . isArray ( doc [ key ] )
194+ && doc [ key ] . length
195+ && doc [ key ] [ 0 ] . doctype === cdt
196+ )
193197 . map ( key => doc [ key ] )
194198 . map ( a => a [ 0 ] )
195199 . filter ( cdoc => cdoc . name === d [ cdt + ':name' ] ) [ 0 ] ;
@@ -509,15 +513,24 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView {
509513 control . set_value ( value ) ;
510514 return this . set_control_value ( doctype , docname , fieldname , value )
511515 . then ( ( updated_doc ) => {
512- const _data = this . data . filter ( b => b . name === updated_doc . name )
513- . find ( a => ( doctype != updated_doc . doctype && a [ doctype + ":name" ] == docname ) || doctype == updated_doc . doctype ) ;
516+ const _data = this . data
517+ . filter ( b => b . name === updated_doc . name )
518+ . find ( a =>
519+ // child table cell
520+ ( doctype != updated_doc . doctype && a [ doctype + ":name" ] == docname )
521+ || doctype == updated_doc . doctype
522+ ) ;
514523
515524 for ( let field in _data ) {
516525 if ( field . includes ( ':' ) ) {
517526 // child table field
518527 const [ cdt , _field ] = field . split ( ':' ) ;
519528 const cdt_row = Object . keys ( updated_doc )
520- . filter ( key => Array . isArray ( updated_doc [ key ] ) && updated_doc [ key ] [ 0 ] . doctype === cdt )
529+ . filter ( key =>
530+ Array . isArray ( updated_doc [ key ] )
531+ && updated_doc [ key ] . length
532+ && updated_doc [ key ] [ 0 ] . doctype === cdt
533+ )
521534 . map ( key => updated_doc [ key ] ) [ 0 ]
522535 . filter ( cdoc => cdoc . name === _data [ cdt + ':name' ] ) [ 0 ] ;
523536 if ( cdt_row ) {
0 commit comments