Страница 1 из 1

сделать border для CrossTabCell как в excel

Добавлено: 20 авг 2013, 16:26
isannn
хочется у ячеек часть границы сделать разным цветом и жирностью, как в excel (когда выделяешь неск. ячеек и накладываешь границу)
2013-08-19_1320.png

получилось только так
2013-08-19_1323.png

как быть?

Re: сделать border для CrossTabCell как в excel

Добавлено: 21 авг 2013, 09:36
HighAley
Здравствуйте.

Вы можете использовать расширенное форматирование границ.
BorderAdvancedRu.png
BorderAdvancedRu.png (23.29 КБ) 2993 просмотра
Спасибо.

Re: сделать border для CrossTabCell как в excel

Добавлено: 21 авг 2013, 15:24
isannn
как добрать до этой настройки в дизайнере?
версия в атаче

Re: сделать border для CrossTabCell как в excel

Добавлено: 21 авг 2013, 16:15
Andrew
Здравствуйте,

По данной ссылке Вы найдете подробное описание Advanced Border http://www.stimulsoft.com/en/documentat ... orders.htm

Спасибо.

Re: сделать border для CrossTabCell как в excel

Добавлено: 22 авг 2013, 09:05
isannn
поставил для StiCrossCell расширенную границу (2013-08-22_0903.png)
в событие обработки ячейки добавил код

Код: Выделить всё

			
	if (isBordered)
{
		e.Cell.Field.Border.LeftSide.Color = Color.FromArgb(255, 255, 255, 255);
		e.Cell.Field.Border.LeftSide.Size = 2;
		e.Cell.Field.Border.LeftSide.Style = StiPenStyle.Solid;
			
		e.Cell.Field.Border.RightSide.Color = Color.FromArgb(255, 155, 155, 155);
		e.Cell.Field.Border.RightSide.Size = 1;
		e.Cell.Field.Border.RightSide.Style = StiPenStyle.Solid;
			
		e.Cell.Field.Border.TopSide.Color = Color.FromArgb(255, 255, 255, 255);
		e.Cell.Field.Border.TopSide.Size = 2;
		e.Cell.Field.Border.TopSide.Style = StiPenStyle.Solid;
			
		e.Cell.Field.Border.BottomSide.Color = Color.FromArgb(255, 255, 255, 255);
		e.Cell.Field.Border.BottomSide.Size = 2;
		e.Cell.Field.Border.BottomSide.Style = StiPenStyle.Solid;
}
при открытии отчета - error (2013-08-22_0901.png)
что делать?

Re: сделать border для CrossTabCell как в excel

Добавлено: 22 авг 2013, 12:13
isannn
решилось путем приведения StiBorder к StiAdvancedBorder

Код: Выделить всё

				
if (isBordered)
{
             StiAdvancedBorder _border = (StiAdvancedBorder)e.Cell.Field.Border;
		_border.LeftSide.Color = Color.FromArgb(255, 255, 255, 255);
		_border.LeftSide.Size = 2;
		_border.LeftSide.Style = StiPenStyle.Solid;
			
		_border.RightSide.Color = Color.FromArgb(255, 155, 155, 155);
		_border.RightSide.Size = 1;
		_border.RightSide.Style = StiPenStyle.Solid;
			
		_border.TopSide.Color = Color.FromArgb(255, 255, 255, 255);
		_border.TopSide.Size = 2;
		_border.TopSide.Style = StiPenStyle.Solid;
			
		_border.BottomSide.Color = Color.FromArgb(255, 255, 255, 255);
		_border.BottomSide.Size = 2;
		_border.BottomSide.Style = StiPenStyle.Solid;
}

Re: сделать border для CrossTabCell как в excel

Добавлено: 22 авг 2013, 12:29
HighAley
Здравствуйте.

Для описания границ существует 2 класса: StiBorder и StiAdvancedBorder. У первого, который используется по умолчанию, нету свойств LeftSide, RightSide и т.д.
Для задания расширенных настроек границ вам надо создать соответствующий класс:

Код: Выделить всё

e.Cell.Field.Border= new Stimulsoft.Base.Drawing.StiAdvancedBorder();
Спасибо.