Foxtable(狐表)用户栏目专家坐堂 → 专业报表如何消除中间表格与文本页脚间的空隙?


  共有3645人关注过本帖树形打印复制链接

主题:专业报表如何消除中间表格与文本页脚间的空隙?

帅哥哟,离线,有人找我吗?
scott518
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
专业报表如何消除中间表格与文本页脚间的空隙?  发帖心情 Post By:2014/5/21 12:01:00 [显示全部帖子]

 
此主题相关图片如下:qq截图20140521114323.jpg
按此在新窗口浏览图片

上图是中间用表格生成主体表,最后用文本生成页脚的情况 ,但明细表不多时中间出现了空格。代码如下:

。。。。

 rt.Cells(rt.Rows.Count-1,6).Style.TextAlignHorz = prt.AlignHorzEnum.Right '文本水平位置
    '-----------------------------------------------------------2
    rt.Rows(rt.Rows.Count).Height = "auto"
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体",12) '设置字体
    rt.Cells(rt.Rows.Count-1,0).SpanCols = 2
    rt.Cells(rt.Rows.Count-1,0).Text = "备注:" & vbcrlf & "(特殊要件)"
    rt.Cells(rt.Rows.Count-1,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本水平位置
    rt.Cells(rt.Rows.Count-1,2).SpanCols = 8
    rt.Cells(rt.Rows.Count-1,2).Text = CurRow("备注")
    rt.Cells(rt.Rows.Count-1,2).Style.TextAlignHorz = prt.AlignHorzEnum.Left '文本水平位置
    '----------------------------------------------------------4
    doc.Body.Children.Add(rt) '将表格对象加入到报表中
   
    rx = New prt.RenderText '定义一个文本对象
    'Dim s As String
    s = "二、供方应在确认的交期内供货,若逾期未交货,则按未交货金额的5%计算违约金.超过三天的,需方可以取消订单。" & vbcrlf
    s = s & "三、商品依需方所订立之检验标准进行验收,全部或部分不合格时,需方有权退货,由供方在限定期限内取回并及时补货,因退换货所发生的费用及其损失概由供方自行负担。" & vbcrlf
    s = s & "四、交货地点:需方仓库。" & vbcrlf
    s = s & "五、付款条件:月结   天。" & vbcrlf
    s = s & "六、订单变更时,必须以书面形式通知对方,并需经双方有权签章人员签章确认,否则无效。" & vbcrlf
    s = s & "七、供方在收到本单一个工作日内签收并回复需方,若未及时签回此单,则视默认处理.本单传真有效。" & vbcrlf
    s = s & "八、交货时,供方需附送货单,且所供货物需有包装标签,送货单及外箱标签必须正确标注品名、规格、数量及相对应的订单编号,以便迅速验收,若有未标识或标识不正确者,需方有权拒绝验收。" & vbcrlf
    s = s & "九、供方向买需方业务人员以及相关人员赠送礼物、行贿的,需方有权没收当月货款。" & vbcrlf
    s = s & "十、其他要求:"
    rx.Text = s
    rx.Style.LineSpacing = 120 '设置双倍行距
    ' rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
    rx.Style.Font = New Font("宋体", 12) '设置字体
    rx.Style.Spacing.Bottom = 8 '和下一个对象的距离(毫米)
    ra.Children.Add(rx) '将文本对象加入到容器ra中
    doc.PageFooter = ra

。。。。。

 

如何消除中间的空格,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
scott518
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/5/21 14:33:00 [显示全部帖子]

谢谢!因为用户要求每页都要显示那些文字 。这个问题基本解决,另外想问下:如下图


图片点击可在新窗口打开查看此主题相关图片如下:360截图20140521142541495.jpg
图片点击可在新窗口打开查看

 

上面绿色框中的内容用RenderText并设置为页眉,然后再定义一个RenderTable() 来生成表体,此时用下面这句代码

rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All  '指定表头行

 

想指定表体的标题每页也都显示,这句代码好象不起作用了,是不是指定了页眉这样设置就不起作用?


 


 回到顶部
帅哥哟,离线,有人找我吗?
scott518
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/5/21 16:27:00 [显示全部帖子]

谢谢!没有找到什么原因,后来把行数改为大于1的数字就可以,2,3,4,5等都可以。明明表上只有一行列标题,但用1就不行。反正可以就先这样用了。

rt.RowGroups(0,2).Header = prt.TableHeaderEnum.Page  '指定表头行


 回到顶部
帅哥哟,离线,有人找我吗?
scott518
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/5/21 16:52:00 [显示全部帖子]

没有空白行,代码如下:

.......

rx.Style.Font = New Font("宋体", 13) '设置字体
rx.Style.Spacing.Bottom = 2 '和下一个对象的距离(毫米)
ra.Children.Add(rx) '将文本对象加入到容器ra中
'----设置以上部份作为页眉--------------------------------------
doc.PageHeader = ra


ra = New prt.RenderArea '定义一个容器
rt = New prt.RenderTable() '定义一个表格对象
'指定总列数及各列宽,未指定的平分剩余宽度
CW = dr("Bodycw")  '""
Cls = CW.split("|")
rt.Cols.Count = Cls.Length + 1 '设置总列数
For i As Integer = 0 To Cls.Length-1
    rt.Cols(i).Width = Cls(i)
Next
'设置表格总体样式-------------------------------------------0
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '文本垂直居中
rt.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef(0.2,Color.Black) '设置网格线
rt.Style.Font = New Font("宋体", 11) '设置总体字体
'rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止被垂直分割
rt.SplitHorzBehavior = prt.SplitBehaviorEnum.SplitIfNeeded '表格宽度超出页宽时,可以水平换页
'设置明细表标题列--------------------------------- ---------1
rt.Rows(rt.Rows.Count).Height = 11
rt.Rows(rt.Rows.Count-1).Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本水平居中
Dim nms As String() = {"序号","产品编码","品名","规格","采购数量","计量单位","单价","金额","交货日期","备注"}
For c As Integer = 0 To nms.Length -1
    rt.Cells(rt.Rows.Count-1,c).Text = nms(c)
Next
rt.RowGroups(0,2).Header = prt.TableHeaderEnum.All  '指定表头行

........


 回到顶部