Hi there, I had to add a patch to your placeEmbeddedComponent method to avoid an NPE. This was also happening in version 10.0 and we switched to 12.0 and same patch needed. See this line added below:
if(_19!=null){
if (window.isc && (isc.version.startsWith("v12.0") )){
isc.GridRenderer.getPrototype().addProperties({
placeEmbeddedComponent: function isc_GridRenderer_placeEmbeddedComponent(_1) {
var _2 = _1.$289;
if (_2 == null || (this.$252 == null || this.$253 == null) || (_2 < this.$252 || _2 > this.$253)) {
if (_1.isDrawn()) _1.clear();
return
}
if (!_1.removeOnHideField && _1.$81k && !this.grid.getField(_1.$81k)) {
if (_1.isDrawn()) _1.clear();
return
}
var _3 = _1.embeddedRecord,
_4 = _1.embeddedPosition,
_5 = _1.$57n,
_6 = this.getRowTop(_2),
_7 = (_5 != null && _5 >= 0) ? this.getColumnLeft(_5) : null,
_8 = (_5 != null && _5 >= 0) ? this.getColumnWidth(_5) : Math.min(this.getInnerWidth(), this.$26a.sum());
if (_7 == null) {
if (!this.isRTL()) {
_7 = this.getScrollLeft()
} else {
_7 = this.$95h(this.getScrollLeft(), true)
}
}
if (_4 == this.$57l) {
var _9 = this.getEmbeddedComponentSnapTo(_1, _3, _2, _5),
_10 = _1.snapEdge || _9;
var _11;
if (this.allowRowSpanning && this.getRowSpan) {
var _12 = this.getRowSpan(_3, _2, _5 == null ? 0 : _5);
if (_12 == null) _12 = 1;
_11 = 0;
for (var i = 0; i < _12; i++) {
_11 += this.getRowSize(_2 + i)
}
} else {
_11 = this.getRowSize(_2)
}
var _14 = _1._percent_width,
_15 = _1._percent_height,
_16, _17;
if (!_1.sizeWithExpansion) {
var _18 = 0,
_19 = this.grid.$917(_3);
//7/29/19 NPE check
if(_19!=null){
for (var i = 0; i < _19.length; i++) {
var _20 = _19[i];
if (_20 == null) continue;
var _21 = (_20.embeddedPosition == this.$57l);
if (_21) continue;
var _22 = _20.getVisibleHeight();
if (_22 > _18) {
_18 = _22
}
}
}
_11 -= _18
}
if (_1.snapOffsetLeft) _8 -= _1.snapOffsetLeft;
if (isc.isA.String(_14) && _14.endsWith("%")) {
_16 = Math.round((parseInt(_14) * _8) / 100)
}
if (isc.isA.String(_15) && _15.endsWith("%")) {
_17 = Math.round((parseInt(_15) * _11) / 100)
}
if (_17 || _16) {
_1.resizeTo(_16, _17, null, null, this.$1872, true)
}
isc.Canvas.snapToEdge([_7, _6, _8, _11], _9, _1, _10)
} else {
_1.moveTo(_7, _6);
var _16, _17, _15 = _1._percent_height;
if (isc.isA.String(_15) && _15.endsWith("%")) {
_17 = Math.round((parseInt(_15) * this.cellHeight) / 100)
}
_16 = _8;
_1.resizeTo(_16, _17, null, null, this.$1872, true)
}
var _23 = this.isDrawn();
if (_23 && !_1.isDrawn()) _1.draw();
var _24 = this.$207d,
_25 = this.getRowHeight(_3, _2, this.$100b()),
_26 = !this.isDirty() || _24;
if (_26 && (_25 > this.getRowSize(_2))) {
this.setRowHeight(_2, _25, _3);
this.refreshRow(_2)
}
if (_23) {
if (_4 != this.$57l) {
var _27 = this.getDrawnRowHeight(_2) - _1.getVisibleHeight() - 1;
_1.moveTo(null, this.getRowTop(_2) + _27)
}
if (!_1.isVisible()) {
if (this.shouldAnimateEmbeddedComponent(_1)) {
_1.animateShow()
} else {
_1.show()
}
}
}
this.updateEmbeddedComponentZIndex(_1)
}
})
}
if(_19!=null){
if (window.isc && (isc.version.startsWith("v12.0") )){
isc.GridRenderer.getPrototype().addProperties({
placeEmbeddedComponent: function isc_GridRenderer_placeEmbeddedComponent(_1) {
var _2 = _1.$289;
if (_2 == null || (this.$252 == null || this.$253 == null) || (_2 < this.$252 || _2 > this.$253)) {
if (_1.isDrawn()) _1.clear();
return
}
if (!_1.removeOnHideField && _1.$81k && !this.grid.getField(_1.$81k)) {
if (_1.isDrawn()) _1.clear();
return
}
var _3 = _1.embeddedRecord,
_4 = _1.embeddedPosition,
_5 = _1.$57n,
_6 = this.getRowTop(_2),
_7 = (_5 != null && _5 >= 0) ? this.getColumnLeft(_5) : null,
_8 = (_5 != null && _5 >= 0) ? this.getColumnWidth(_5) : Math.min(this.getInnerWidth(), this.$26a.sum());
if (_7 == null) {
if (!this.isRTL()) {
_7 = this.getScrollLeft()
} else {
_7 = this.$95h(this.getScrollLeft(), true)
}
}
if (_4 == this.$57l) {
var _9 = this.getEmbeddedComponentSnapTo(_1, _3, _2, _5),
_10 = _1.snapEdge || _9;
var _11;
if (this.allowRowSpanning && this.getRowSpan) {
var _12 = this.getRowSpan(_3, _2, _5 == null ? 0 : _5);
if (_12 == null) _12 = 1;
_11 = 0;
for (var i = 0; i < _12; i++) {
_11 += this.getRowSize(_2 + i)
}
} else {
_11 = this.getRowSize(_2)
}
var _14 = _1._percent_width,
_15 = _1._percent_height,
_16, _17;
if (!_1.sizeWithExpansion) {
var _18 = 0,
_19 = this.grid.$917(_3);
//7/29/19 NPE check
if(_19!=null){
for (var i = 0; i < _19.length; i++) {
var _20 = _19[i];
if (_20 == null) continue;
var _21 = (_20.embeddedPosition == this.$57l);
if (_21) continue;
var _22 = _20.getVisibleHeight();
if (_22 > _18) {
_18 = _22
}
}
}
_11 -= _18
}
if (_1.snapOffsetLeft) _8 -= _1.snapOffsetLeft;
if (isc.isA.String(_14) && _14.endsWith("%")) {
_16 = Math.round((parseInt(_14) * _8) / 100)
}
if (isc.isA.String(_15) && _15.endsWith("%")) {
_17 = Math.round((parseInt(_15) * _11) / 100)
}
if (_17 || _16) {
_1.resizeTo(_16, _17, null, null, this.$1872, true)
}
isc.Canvas.snapToEdge([_7, _6, _8, _11], _9, _1, _10)
} else {
_1.moveTo(_7, _6);
var _16, _17, _15 = _1._percent_height;
if (isc.isA.String(_15) && _15.endsWith("%")) {
_17 = Math.round((parseInt(_15) * this.cellHeight) / 100)
}
_16 = _8;
_1.resizeTo(_16, _17, null, null, this.$1872, true)
}
var _23 = this.isDrawn();
if (_23 && !_1.isDrawn()) _1.draw();
var _24 = this.$207d,
_25 = this.getRowHeight(_3, _2, this.$100b()),
_26 = !this.isDirty() || _24;
if (_26 && (_25 > this.getRowSize(_2))) {
this.setRowHeight(_2, _25, _3);
this.refreshRow(_2)
}
if (_23) {
if (_4 != this.$57l) {
var _27 = this.getDrawnRowHeight(_2) - _1.getVisibleHeight() - 1;
_1.moveTo(null, this.getRowTop(_2) + _27)
}
if (!_1.isVisible()) {
if (this.shouldAnimateEmbeddedComponent(_1)) {
_1.animateShow()
} else {
_1.show()
}
}
}
this.updateEmbeddedComponentZIndex(_1)
}
})
}
Comment