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

fix: Bug 19653 - Ссылки на ячейки не меняются после переноса части данных с формулой в другое место

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@48828 954022d7-b5bf-4e40-9824-e11837661b57
parent 7eff7e32
......@@ -536,8 +536,8 @@ function DependencyGraph(wb) {
r2:nodes[id].lastCellAddress.getRow0(), c2:nodes[id].lastCellAddress.getCol0() }
if( nodes[id].isArea ){
/*
Есть 2 области. Первая это диапазон? что участвует в формуле, второй - то который удаляют/вставляют. Нужно определить положение двух этих областей относительно друг друга.
Если вторая область находится ( ( выше и левее ) или правее или ниже ) первой такая область нас не интересуею. Она не повлияет на сдвиг диапазона.
Есть 2 области. Первая - это диапазон, что участвует в формуле, второй - это который удаляют/вставляют. Нужно определить положение двух этих областей относительно друг друга.
Если вторая область находится ( ( выше и левее ) или правее или ниже ) первой, такая область нас не интересуею. Она не повлияет на сдвиг диапазона.
Если же она находится выше или левее, перекрывает частично или полностью диапазон, необходимо отследить какой сдвиг будет следовать - по вертикали или по горизонтали. После чего следует выполнить соответсвтующие действия - расширить диапазон, сдвинуть диапазон, просто пересчитать.
Для проверки на способ перекрытия переношу начало координат в левый верхний угол диапазона, меняю координаты у второй области и сравниваю возможные варианты расположения используя координаты углов обоих областей.
PS вариант не нравится, слишком много if. Хотелось бы поэллегантнее решение.
......@@ -685,6 +685,12 @@ function DependencyGraph(wb) {
move[n.nodeId] = nodes[n.nodeId];
}
else{
for( var id2 in areaNodes ){
if( n.containCell(areaNodes[id2]) ){
move[areaNodes[id2].nodeId] = nodes[areaNodes[id2].nodeId];
}
}
range = range.getCells();
for( var id in range ){
n = new Vertex(wsId,range[id].getName());
......
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