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

Обсуждение Stimulsoft Reports.NET
Ответить
isannn
Сообщения: 32
Зарегистрирован: 21 фев 2013, 11:16

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

Сообщение isannn »

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

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

как быть?
Вложения
получилось вот что
получилось вот что
2013-08-19_1323.png (46.4 КБ) 2992 просмотра
хочется
хочется
2013-08-19_1320.png (28.37 КБ) 2992 просмотра
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

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

Сообщение HighAley »

Здравствуйте.

Вы можете использовать расширенное форматирование границ.
BorderAdvancedRu.png
BorderAdvancedRu.png (23.29 КБ) 2989 просмотров
Спасибо.
isannn
Сообщения: 32
Зарегистрирован: 21 фев 2013, 11:16

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

Сообщение isannn »

как добрать до этой настройки в дизайнере?
версия в атаче
Вложения
2013-08-21_1523.png
2013-08-21_1523.png (31.19 КБ) 2989 просмотров
Andrew
Сообщения: 586
Зарегистрирован: 09 июн 2006, 12:22

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

Сообщение Andrew »

Здравствуйте,

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

Спасибо.
isannn
Сообщения: 32
Зарегистрирован: 21 фев 2013, 11:16

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

Сообщение 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)
что делать?
Вложения
2013-08-22_0903.png
2013-08-22_0903.png (91.66 КБ) 2985 просмотров
2013-08-22_0901.png
2013-08-22_0901.png (96.95 КБ) 2985 просмотров
isannn
Сообщения: 32
Зарегистрирован: 21 фев 2013, 11:16

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

Сообщение 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;
}
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

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

Сообщение HighAley »

Здравствуйте.

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

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

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