找回密码
 立即注册

QQ登录

只需一步,快速开始

szl5611314

注册会员

1

主题

3

帖子

8

积分

注册会员

积分
8
最新发帖
szl5611314
注册会员   /  发表于:2017-2-19 22:38  /   查看:4601  /  回复:6
第一张图是运行界面,运行时前两行表头是没有边框,但打印时,表头出现了浅蓝色边框。不管表头如何设置,打印时都有边框,如图所示:
blob921629028.png blob761322021.png
我想达到的效果是:打印时前两行表头无边框,第3行表头显示自定义边框,代码如下,请大神帮忙解决。
this.fpSpread1_Sheet1.ColumnCount = 3;
            this.fpSpread1_Sheet1.ColumnHeaderRowCount = 3;
            this.fpSpread1_Sheet1.RowCount = 100;
            this.fpSpread1_Sheet1.GrayAreaBackColor = Color.White;
            this.fpSpread1_Sheet1.ColumnHeader.Cells[0, 0].ColumnSpan = 3;
            this.fpSpread1_Sheet1.ColumnHeader.Cells[0, 0].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
            this.fpSpread1_Sheet1.ColumnHeader.Cells[0, 0].Value = "测试报表";
            this.fpSpread1_Sheet1.ColumnHeader.Cells[1, 0].ColumnSpan = 3;
            this.fpSpread1_Sheet1.ColumnHeader.Cells[1, 0].Value = "时间:2015-1-1至201-12-31";
            this.fpSpread1_Sheet1.ColumnHeader.Cells[2, 0].Value = "科室";
            this.fpSpread1_Sheet1.ColumnHeader.Cells[2, 1].Value = "性别";
            this.fpSpread1_Sheet1.ColumnHeader.Cells[2, 2].Value = "人数";

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    this.fpSpread1_Sheet1.ColumnHeader.Cells[i, j].BackColor = Color.White;
                }
            }
            FarPoint.Win.ComplexBorderSide ws = new FarPoint.Win.ComplexBorderSide(FarPoint.Win.ComplexBorderSideStyle.ThinLine, Color.White);
            FarPoint.Win.ComplexBorderSide bs = new FarPoint.Win.ComplexBorderSide(FarPoint.Win.ComplexBorderSideStyle.ThinLine, Color.Black);
            fpSpread1_Sheet1.ColumnHeader.Cells[0, 0, 1, 2].Border = new FarPoint.Win.ComplexBorder(ws, ws, ws, ws);
            fpSpread1_Sheet1.ColumnHeader.Cells[2, 0, 2, 1].Border = new FarPoint.Win.ComplexBorder(bs, bs, ws, ws);
            fpSpread1_Sheet1.ColumnHeader.Cells[2, 2, 2, 2].Border = new FarPoint.Win.ComplexBorder(bs, bs, bs, ws);
            fpSpread1_Sheet1.ColumnHeader.HorizontalGridLine = new FarPoint.Win.Spread.GridLine(FarPoint.Win.Spread.GridLineType.None);
            fpSpread1_Sheet1.ColumnHeader.VerticalGridLine = new FarPoint.Win.Spread.GridLine(FarPoint.Win.Spread.GridLineType.None);

            for (int i = 0; i < 100; i++)
            {
                this.fpSpread1_Sheet1.Cells[i, 0].Value = "aaaa";
                this.fpSpread1_Sheet1.Cells[i, 1].Value = "男";
                this.fpSpread1_Sheet1.Cells[i, 2].Value = "10";
            }

            fpSpread1_Sheet1.HorizontalGridLine = new FarPoint.Win.Spread.GridLine(FarPoint.Win.Spread.GridLineType.None);
            fpSpread1_Sheet1.VerticalGridLine = new FarPoint.Win.Spread.GridLine(FarPoint.Win.Spread.GridLineType.None);
            fpSpread1_Sheet1.Cells[0, 0, 99, 1].Border = new FarPoint.Win.ComplexBorder(bs, bs, null, null);
            fpSpread1_Sheet1.Cells[0, 2, 99, 2].Border = new FarPoint.Win.ComplexBorder(bs, bs, bs, null);
            fpSpread1_Sheet1.Cells[99, 0, 99, 1].Border = new FarPoint.Win.ComplexBorder(bs, bs, null, bs);
            fpSpread1_Sheet1.Cells[99, 2, 99, 2].Border = new FarPoint.Win.ComplexBorder(bs, bs, bs, bs);

6 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-20 15:33:26
沙发
您好, 这个的确是这样,Header 打印时候有自己的样式,无法完全隐藏其边框。

一般需要打印的时候都会把所有打印内容放到单元格中处理,这样也更好控制。
回复 使用道具 举报
szl5611314
注册会员   /  发表于:2017-2-22 14:26:47
板凳
因为很多报表都是绑定dataset来做的,如果把header放到单无格中,那绑定就要单独处理了,改动工作量有点大呀
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-22 17:39:25
地板
明白了,这个问题我再看看有没有办法可以处理掉。
回复 使用道具 举报
szl5611314
注册会员   /  发表于:2017-2-23 22:03:50
5#
dexteryao 发表于 2017-2-22 17:39
明白了,这个问题我再看看有没有办法可以处理掉。

非常感谢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-24 17:43:24
6#
有结果就给您回复
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-27 10:53:57
7#
您好,

需要做一个简单修改。 将header 的border 修改为 MediumLine

            FarPoint.Win.ComplexBorderSide ws = new FarPoint.Win.ComplexBorderSide(FarPoint.Win.ComplexBorderSideStyle.MediumLine, Color.White);
            FarPoint.Win.ComplexBorderSide bs = new FarPoint.Win.ComplexBorderSide(FarPoint.Win.ComplexBorderSideStyle.ThinLine, Color.Black);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部