Foxtable(狐表)用户栏目专家坐堂 → 请问页眉中的[PageNo]和[Pagecount]的问题


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

主题:请问页眉中的[PageNo]和[Pagecount]的问题

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
请问页眉中的[PageNo]和[Pagecount]的问题  发帖心情 Post By:2008/11/6 11:41:00 [显示全部帖子]

页眉中的[PageNo]和[Pagecount]怎么样赋值给变量.

如下例子,有3页,希望达到:第1和第2页的页眉不显示内容,在第3页页眉显示内容:


Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable()
doc.Body.Children.Add(rt)
rt.Style.GridLines.All = prt.Linedef.Default
For r As integer = 0 to 150
    For c As integer = 0 to 5
        Dim rx As New prt.RenderText
        rx.Text = r & "," & c
        rt.Cells(r, c).RenderObject = rx
    Next
Next


Dim rt1 As New prt.RenderTable()
doc.PageHeader = rt1
rt1.cells(0,0).text = "[PageNo]"
rt1.cells(0,1).text = "[Pagecount]"

dim a1 as string  = "[PageNo]"
dim a2 as string  = "[Pagecount]"
if a1 = a2 then
     rt1.cells(0,2).text = "显示"
else
     rt1.cells(0,2).text = "不显示"
end if
doc.Preview() '预览报表


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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/6 11:46:00 [显示全部帖子]

虽a1变量和a2变量在每页的页眉是有效果,但用命令窗口看下变量值,确分别是[PageNo],[Pagecount]
所以等式一直不成立!


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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/6 15:35:00 [显示全部帖子]

继续用帮助中的例子说明情况--

有试过的方法:
1、增加RenderText 文本对像 用精确定位,不行。会和内容重叠(当记录刚好到达那个位置时)
2、用页脚。
建议用二个报表?怎么样做行数的判断啊?



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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/6 15:36:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/6 15:36:00 [显示全部帖子]

Dim doc As New Printdoc
Dim rx As prt.RenderText
Dim rt As prt.RenderTable

rx = New prt.RenderText
rx.Style.FontSize = 14
rx.Style.FontBold = True
rx.Style.Spacing.Bottom = 5
rx.Text = "类别: " & Tables("类别").Current("类别名称")
doc.pageheader = rx


rt = New prt.RenderTable
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Style.TextAlignVert = prt.AlignVertEnum.Center
rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All
rt.CellStyle.Spacing.All = 1
rt.Cols.Count = 4
rt.Cells(0,0).Text = "产品名称"
rt.Cells(0,1).Text = "单价"
rt.Cells(0,2).Text = "库存量"
rt.Cells(0,3).Text = "订购量"
rt.Cells(0,4).Text = "再订购量"
rt.Cells(0,5).Text = "中止"
rt.rows(0).Style.Borders.Top = New prt.LineDef(1,Color.LightGray)
rt.rows(0).Style.Borders.Bottom = New prt.LineDef(1,Color.LightGray)
With Tables("类别.产品")
    For r As integer = 0 To .Rows.Count - 1 '遍历关联表每一行
        rt.Cells(r+1,0).Text = .rows(r)("产品名称")
        rt.Cells(r+1,1).Text = .rows(r)("单价")
        rt.Cells(r+1,2).Text = .rows(r)("库存量")
        rt.Cells(r+1,3).Text = .rows(r)("订购量")
        rt.Cells(r+1,4).Text = .rows(r)("再订购量")
        If .rows(r)("中止") = True Then
            Dim rm As New prt.RenderImage
            rm.Image = getImage("Check.Ico")
            rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
            rm.Style.ImageAlign.StretchHorz = False
            rm.Style.ImageAlign.StretchVert = False
            rt.Cells(r+1,5).RenderObject = rm
        End If
    Next
End With
doc.Body.Children.Add(rt)


Dim rx1 As prt.RenderText
rx1 = New prt.RenderText
rx1.Style.FontSize = 14
rx1.Style.FontBold = True
rx1.Style.Spacing.Bottom = 5
rx1.Text = "说明: " & Tables("类别").Current("说明")
doc.pagefooter = rx1

doc.Preview

[此贴子已经被作者于2008-11-6 15:36:38编辑过]

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/6 15:37:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/6 15:38:00 [显示全部帖子]

要求是:说明这一列的内容在第一页不显示,在第二页显视。(如果有4页,前3页不显视,在第4页显视)

(不用页脚,用其他办法也行,能做到所需的要求就行了)

[此贴子已经被作者于2008-11-6 16:00:46编辑过]

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/6 16:04:00 [显示全部帖子]

在易表中试过,根据报表的每页行数来判断显不显视,但在foxtable确变成是难题了。

只在报表的首页或最后1页显示1些数据,而且位置可调,应是报表很基本的功能吧?
[此贴子已经被作者于2008-11-6 16:17:16编辑过]

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/6 18:28:00 [显示全部帖子]

10楼主方法应是指一个报表(换页符?),这样行不通啊。
只能按3楼的办法定义多个报表:

试了下,都算达到了想要的效果。

(但存在1个问题 :连续打印时,子表数据量1大,因为有计算关联子表的行数代码,猜想着效率应会极低。现在正用着的系统的速度真叫人哭不出来(引进的),我对于速度这方面,都会极度担心,真的烦够了。)

dim count1 as integer = Tables("...表").Rows.Count  
if count1 > n then


    Dim doc As New Printdoc
    .........
    doc.Preview

    Dim doc1 As New Printdoc
    .........
    doc1.Preview

else
    Dim doc3 As New Printdoc
    .........
    doc3.Preview

end if


 回到顶部