Commit 9933b24c authored by Dmitry.Shahtanov's avatar Dmitry.Shahtanov Committed by Alexander.Trofimov

fix: Bug 21837 - Не пересчитывается формула после перетаскивания зависимых данных

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@51354 954022d7-b5bf-4e40-9824-e11837661b57
parent 7bdc415c
...@@ -1234,7 +1234,7 @@ function helpRecalc(dep1, nR, calculatedCells, wb){ ...@@ -1234,7 +1234,7 @@ function helpRecalc(dep1, nR, calculatedCells, wb){
} }
function sortDependency(ws, ar){ function sortDependency(ws, ar){
var wb = ws.workbook, dep, sr1, sr2, sr; var wb = ws.workbook, dep, sr1, sr2, sr, calculatedCells = {};
/* /*
Если необходим пересчет, то по списку пересчитываемых ячеек сортируем граф зависимостей и пересчиываем в получившемся порядке. Плохим ячейкам с цикличискими ссылками выставляем ошибку "#REF!". Если необходим пересчет, то по списку пересчитываемых ячеек сортируем граф зависимостей и пересчиываем в получившемся порядке. Плохим ячейкам с цикличискими ссылками выставляем ошибку "#REF!".
*/ */
...@@ -1250,9 +1250,10 @@ function sortDependency(ws, ar){ ...@@ -1250,9 +1250,10 @@ function sortDependency(ws, ar){
} }
} }
} }
sr1 = wb.recalcDependency(dep.badF,true); // sr1 = wb.recalcDependency(dep.badF,true);
sr2 = wb.recalcDependency(dep.depF,false); sr1 = helpRecalc(dep, wb.needRecalc, calculatedCells, wb);
sr = searchCleenCacheArea( sr, searchCleenCacheArea( sr1, sr2 ) ); // sr2 = wb.recalcDependency(dep.depF,false);
sr = searchCleenCacheArea( sr, sr1 );
} }
for(var _item in sr){ for(var _item in sr){
...@@ -3660,6 +3661,16 @@ Woorksheet.prototype._moveRange=function(oBBoxFrom, oBBoxTo){ ...@@ -3660,6 +3661,16 @@ Woorksheet.prototype._moveRange=function(oBBoxFrom, oBBoxTo){
} }
} }
var move = this.workbook.dependencyFormulas.helper(oBBoxTo,this.Id);
for(var id in move.recalc){
var n = move.recalc[id];
var _sn = n.getSlaveEdges2();
for( var _id in _sn ){
rec[_sn[_id].nodeId] = [ _sn[_id].sheetId, _sn[_id].cellId ];
rec.length++;
}
}
this.workbook.buildDependency(); this.workbook.buildDependency();
this.workbook.needRecalc = rec; this.workbook.needRecalc = rec;
recalc(this.workbook); recalc(this.workbook);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment