Commit 825a9e2f authored by Igor.Zotov's avatar Igor.Zotov

http://bugzserver/show_bug.cgi?id=29953 - Неверная нумерация вставленных...

http://bugzserver/show_bug.cgi?id=29953 - Неверная нумерация вставленных столбцов форматированной таблицы

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@65147 954022d7-b5bf-4e40-9824-e11837661b57
parent 6cb3fd7e
...@@ -4443,11 +4443,7 @@ TablePart.prototype.addTableColumns = function(activeRange, aF) ...@@ -4443,11 +4443,7 @@ TablePart.prototype.addTableColumns = function(activeRange, aF)
var curCol = num + this.Ref.c1; var curCol = num + this.Ref.c1;
if(activeRange.c1 <= curCol && activeRange.c2 >= curCol) if(activeRange.c1 <= curCol && activeRange.c2 >= curCol)
{ {
var newNameColumn = aF._generateColumnName(newTableColumns.concat(this.TableColumns), curCol - 1); newTableColumns[newTableColumns.length] = new TableColumn();
var newTableColumn = new TableColumn();
newTableColumn.Name = newNameColumn;
newTableColumns[newTableColumns.length] = newTableColumn;
} }
else else
{ {
...@@ -4458,6 +4454,12 @@ TablePart.prototype.addTableColumns = function(activeRange, aF) ...@@ -4458,6 +4454,12 @@ TablePart.prototype.addTableColumns = function(activeRange, aF)
num++; num++;
} }
for(var j = 0; j < newTableColumns.length; j++)
{
if(newTableColumns[j].Name === null)
newTableColumns[j].Name = aF._generateColumnName2(newTableColumns, newTableColumns[j - 1].Name);
}
this.TableColumns = newTableColumns; this.TableColumns = newTableColumns;
}; };
......
...@@ -4553,6 +4553,7 @@ var maxIndividualValues = 10000; ...@@ -4553,6 +4553,7 @@ var maxIndividualValues = 10000;
{ {
var aWs = this._getCurrentWS(); var aWs = this._getCurrentWS();
var findFilters = this._searchFiltersInRange(arnFrom); var findFilters = this._searchFiltersInRange(arnFrom);
var bUndoRedoChanges = aWs.workbook.bUndoChanges || aWs.workbook.bRedoChanges;
if(findFilters && findFilters.length) if(findFilters && findFilters.length)
{ {
...@@ -4571,7 +4572,7 @@ var maxIndividualValues = 10000; ...@@ -4571,7 +4572,7 @@ var maxIndividualValues = 10000;
if(!ref.intersection(newRange) && !this._intersectionRangeWithTableParts(newRange, aWs, arnFrom)) if(!ref.intersection(newRange) && !this._intersectionRangeWithTableParts(newRange, aWs, arnFrom))
{ {
//TODO позже не копировать стиль при перемещении всей таблицы //TODO позже не копировать стиль при перемещении всей таблицы
if(!(aWs.workbook.bUndoChanges || aWs.workbook.bRedoChanges)) if(!bUndoRedoChanges)
{ {
var cleanRange = new Range(aWs, newRange.r1, newRange.c1, newRange.r2, newRange.c2); var cleanRange = new Range(aWs, newRange.r1, newRange.c1, newRange.r2, newRange.c2);
cleanRange.cleanFormat(); cleanRange.cleanFormat();
...@@ -4956,8 +4957,77 @@ var maxIndividualValues = 10000; ...@@ -4956,8 +4957,77 @@ var maxIndividualValues = 10000;
result = false; result = false;
return result; return result;
} },
_generateColumnName2: function(tableColumns, prevColumnName)
{
var columnName = "Column";
var name = prevColumnName.split(columnName);
var indexColumn = name[1];
var nextIndex;
//ищем среди tableColumns, возможно такое имя уже имеется
var checkNextName = function()
{
var nextName = columnName + nextIndex;
for(var i = 0; i < tableColumns.length; i++)
{
if(tableColumns[i].Name === nextName)
return false;
}
return true;
};
//если сменилась первая цифра
var checkChangeIndex = function()
{
if((nextIndex + 1).toString().substr(0, 1) !== (indexColumn).toString().substr(0, 1))
return true;
else
return false;
};
if(indexColumn && !isNaN(indexColumn))//если нашли числовой индекс
{
indexColumn = parseFloat(indexColumn);
nextIndex = indexColumn + 1;
var string = "";
var firstInput = true;
while(checkNextName() === false)
{
if(firstInput === true)
{
string += "1";
nextIndex = parseFloat(indexColumn + "2");
}
else
{
if(checkChangeIndex())
{
string += "0";
nextIndex = parseFloat(indexColumn + string);
}
else
nextIndex++;
}
firstInput = false;
}
}
else//если не нашли, то индекс начинаем с 1
{
var nextIndex = 1;
while(checkNextName() === false)
{
nextIndex++;
}
}
var res = columnName + nextIndex;
return res;
}
}; };
/* /*
......
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