// ���������� ������ � ����������� ���������� �� �������� private void MergeColumns(BookColumns columns, int row1, int row2) { // ����������� ������ � �������� foreach (BookColumn column in columns) if (column.ismerge && column.column1 == column.column2) FM.MergeEqualValues(row1, column.column1, row2, column.column1); }
// ����������� �������� ���� � �������� - ����� flex �� ����� ������������ ������ ��� ������ ������. // ������ ������� ������ ��� ������� �������. ����� ��� ������ � ������� ��������� ������������, ����� // ������ ������� ��������� �� ����������� ��������� ���������� ������ ����� ������� private void SetColumnFormat(ReportPart part, BookColumns columns) { int[] Decimals = new int[columns.Count]; for (int i = 0; i < Decimals.Length; i++) // prepare... Decimals[i] = -1; for (int i = 0; i < part.Columns.Rows.Count; i++) { int cindex = columns.IndexOf(part.Columns[i, "TestGroup"].ToString(), part.Columns[i, "TextModule"].ToString()); //int cindex = part.Columns.Search(new object[] { part.Columns[i, "TestGroup"], part.Columns[i, "TextModule"], part.Columns[i, "modulenorm"], part.Columns[i, "precisionid"] }); if (cindex < 0 || cindex > columns.Count-1) continue; BookColumn column = columns[cindex]; if (column.column1 == column.column2 && FM.Book.Column(column.column1).Mask == MaskEnum.Numeric) Decimals[cindex] = Math.Max(Decimals[cindex], Precision2Decimal(part.Columns[i, "PrecisionID"])); } /* �������� �����, ����� ��� ������� ���� ��� ������ ������ ��������� ������ � ������ ��������� */ for (int i = 0; i < Decimals.Length; i++) { columns[i].Decimal = Decimals[i]; // ��������� ��� �������� �����, ���������� ���� if (Decimals[i] >= 0 && Decimals[i] > FM.Book.Column(columns[i].column1).DecimalLength) FM.Book.Column(columns[i].column1).DecimalLength = Decimals[i]; } // ��� �� ������ � �������� �������� � ������������ � ��������� ��� ����������� ���������� � Excel foreach (BookColumn c in columns) if (c.Decimal >= 0 && c.column1 == c.column2 && !c.isgroup) for (int r = part.SummaryRow1; r <= part.SummaryRow2; r++) FM[r, c.column1] = MainForm.FormatValue(FM[r, c.column1], c.Decimal); }
// �������� ������ �������, ���� ��� ����� ���� �������� ��� ����� ��������� private void HideUnusedColumns(BookColumns columns) { bool IsUsed; foreach (BookColumn column in columns) if (column.tryhide && column.column1 == column.column2) { IsUsed = false; foreach (ReportPart part in Parts) { for (int row = part.Row1; row <= part.Row2; row++) IsUsed = IsUsed || FM[row, column.column1].Trim() != ""; } if (!IsUsed) FM.Book.Column(column.column1).Width = 0; } }