Foxtable(狐表)用户栏目专家坐堂 → [求助]专业报表代码


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

主题:[求助]专业报表代码

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110783 积分:563847 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/14 10:00:00 [显示全部帖子]

大概这样,细节自行调整

Dim doc As New PrintDoc    '定义一个报表
doc.PageSetting.Width = 121 '纸张宽度为121毫米
doc.PageSetting.Height = 89 '纸张高度为89毫米
Dim rt As New prt.RenderText      '定义一个文本对象
Doc.PageSetting.LeftMargin = 5 '设置左边距
Doc.PageSetting.RightMargin = 7 '设置右边距
Doc.PageSetting.TopMargin =9 '设置上边距
Doc.PageSetting.BottomMargin = 10 '设置下边距
Dim ra As New prt.RenderArea
ra.Style.Spacing.Bottom = 3

Dim rm As prt.RenderEmpty '定一个空对象
For i As Integer = 0 To Tables("在职人员").Rows.Count - 1 Step 4
    ra = New prt.RenderArea
    rm = new prt.RenderEmpty '定义一个新的空对象
    rm.BreakBefore = prt.BreakEnum.Page '打印前换页
    doc.Body.Children.Add(rm) '加入到报表中
    For j As Integer = 0 To 3
        Dim x As Integer = 10 + j*25
        Dim r As Row = Tables("在职人员").Rows(i+j)
        rt = New prt.RenderText
        rt.Text = r("档案编码")
        rt.x=x
        rt.y=10
        ra.Children.Add(rt)
        rt = New prt.RenderText
        rt.Text = r("姓名")
        rt.Style.TextAngle = -90
        rt.x=x
        rt.y=25
        ra.Children.Add(rt)
        rt = New prt.RenderText
        rt.Text = "(" & r("属性") & ")"
        rt.x=x
        rt.y=60
        ra.Children.Add(rt)
    Next
    doc.body.Children.Add(ra)
Next
doc.Preview()     '预览

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110783 积分:563847 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/14 11:11:00 [显示全部帖子]

去掉旋转代码,把姓名里每一个字符后面加一个换行符:http://www.foxtable.com/webhelp/topics/1338.htm

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110783 积分:563847 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/15 8:32:00 [显示全部帖子]

例如

Dim s As String = "张三四"
For i As Integer = s.Length - 1 To 1 Step -1
    s = s.Insert(i,vbcrlf)
Next
msgbox( s)

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110783 积分:563847 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/15 10:56:00 [显示全部帖子]

Dim s As String = r("姓名")
For i As Integer = s.Length - 1 To 1 Step -1
    s = s.Insert(i,vbcrlf)
Next
rt.Text = s

建议包装为内部函数使用

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110783 积分:563847 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/15 11:46:00 [显示全部帖子]


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110783 积分:563847 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/15 11:50:00 [显示全部帖子]

很简单的问题,i变量重复定义了,改为其它名称即可。编程基础的问题


        For k As Integer = s.Length - 1 To 1 Step -1
            s = s.Insert(k,vbcrlf)
        Next

 回到顶部