Commit 9c979e7b authored by Ilya Kirillov's avatar Ilya Kirillov

Добавлено объединение ячеек в билдер.

parent a478385d
......@@ -11216,6 +11216,12 @@ CDocument.prototype =
bUpdateSelection = false;
bRetValue = keydownresult_PreventAll;
}
else if (e.KeyCode === 113)
{
// Для теста
TEST_BUILDER();
bRetValue = keydownresult_PreventAll;
}
else if ( e.KeyCode == 121 && true === e.ShiftKey ) // Shift + F10 - контекстное меню
{
var X_abs, Y_abs, oPosition, ConvertedPos;
......
......@@ -86,6 +86,9 @@ CSectionPr.prototype =
Copy : function(Other, CopyHdrFtr)
{
if (!Other)
return;
// Тип
this.Set_Type( Other.Type );
......
......@@ -9770,18 +9770,21 @@ CTable.prototype =
return { Grid_start : Grid_start, Grid_end : Grid_end, RowsInfo : RowsInfo, bCanMerge : bCanMerge };
},
// Объединяем заселекченные ячейки
Cell_Merge : function()
/**
* Объединяем выделенные ячейки таблицы.
* @param isClearMerge - используем или нет рассчетные данные (true - не используем, false - default value)
*/
Cell_Merge : function(isClearMerge)
{
var bApplyToInnerTable = false;
if ( false === this.Selection.Use || ( true === this.Selection.Use && table_Selection_Text === this.Selection.Type ) )
bApplyToInnerTable = this.CurCell.Content.Table_MergeCells();
if ( true === bApplyToInnerTable )
return;
return false;
if ( true != this.Selection.Use || table_Selection_Cell != this.Selection.Type || this.Selection.Data.length <= 1 )
return;
return false;
// В массиве this.Selection.Data идет список ячеек по строкам (без разрывов)
// Перед объединением мы должны проверить совпадают ли начальная и конечная колонки
......@@ -9793,7 +9796,7 @@ CTable.prototype =
var RowsInfo = Temp.RowsInfo;
if ( false === bCanMerge )
return;
return false;
// Объединяем содержимое всех ячеек в левую верхнюю ячейку. (Все выделенные
// ячейки идут у нас последовательно, начиная с левой верхней), и объединяем
......@@ -9816,6 +9819,8 @@ CTable.prototype =
}
}
if (true !== isClearMerge)
{
// Выставим ширину результируещей ячейки
var SumW = 0;
for (var CurGridCol = Grid_start; CurGridCol <= Grid_end; CurGridCol++)
......@@ -9823,6 +9828,7 @@ CTable.prototype =
SumW += this.TableGridCalc[CurGridCol];
}
Cell_tl.Set_W(new CTableMeasurement(tblwidth_Mm, SumW));
}
// Теперь нам надо удалить лишние ячейки и добавить ячейки с
// вертикальным объединением.
......@@ -9856,16 +9862,9 @@ CTable.prototype =
}
}
// У ряда, который содержит полученную ячейку мы выставляем минимальную высоту
// сумму высот объединенных строк.
//var Summary_VMerge = this.Internal_GetVertMergeCount( Pos_tl.Row, Grid_start, Grid_end - Grid_start + 1 );
//var Summary_Height = this.RowsInfo[Pos_tl.Row + Summary_VMerge - 1].H + this.RowsInfo[Pos_tl.Row + Summary_VMerge - 1].Y - this.RowsInfo[Pos_tl.Row].Y;
// Удаляем лишние строки
this.Internal_Check_TableRows(true);
var PageNum = 0;
for ( PageNum = 0; PageNum < this.Pages.length - 1; PageNum++ )
this.Internal_Check_TableRows(true !== isClearMerge ? true : false);
for (var PageNum = 0; PageNum < this.Pages.length - 1; PageNum++ )
{
if ( Pos_tl.Row <= this.Pages[PageNum + 1].FirstRow )
break;
......@@ -9880,8 +9879,13 @@ CTable.prototype =
this.CurCell = Cell_tl;
if (true !== isClearMerge)
{
// Запускаем пересчет
this.Internal_Recalculate_1();
}
return true;
},
// Разделяем текущую ячейку
......@@ -13316,6 +13320,24 @@ CTable.prototype.Is_TableFirstRowOnNewPage = function(CurRow)
return false;
};
CTable.prototype.private_UpdateCellsGrid = function()
{
for (var nCurRow = 0, nRowsCount = this.Content.length; nCurRow < nRowsCount; ++nCurRow)
{
var Row = this.Content[nCurRow];
var BeforeInfo = Row.Get_Before();
var CurGridCol = BeforeInfo.GridBefore;
for (var nCurCell = 0, nCellsCount = Row.Get_CellsCount(); nCurCell < nCellsCount; ++nCurCell)
{
var Cell = Row.Get_Cell(nCurCell);
var GridSpan = Cell.Get_GridSpan();
Cell.Set_Metrics(CurGridCol, 0, 0, 0, 0, 0, 0);
Row.Update_CellInfo(nCurCell);
CurGridCol += GridSpan;
}
}
};
//----------------------------------------------------------------------------------------------------------------------
// Класс CTableLook
//----------------------------------------------------------------------------------------------------------------------
......
This diff is collapsed.
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