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


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

主题:[求助]

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


加好友 发短信
等级:三尾狐 帖子:645 积分:4583 威望:0 精华:0 注册:2012/11/12 14:27:00
[求助]  发帖心情 Post By:2012/12/25 14:40:00 [只看该作者]

Dim doc As New PrintDoc '定义一个报表
Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
Dim ra As New prt.RenderArea
Dim rt As prt.RenderText
Dim rt1 As prt.RenderText
ra.Width = 90 '设置标签宽度
ra.Height = 54
ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割
ra.Style.Spacing.Right = 0 '设置标签之间的所有和上下间隔为2毫米
ra.Style.Spacing.Bottom = 0
ra.Style.Padding.All = 3 ' 标签内容距离边框为1毫米
ra.Style.Borders.All = New prt.Linedef(0.3, Color.Red) '设置边框
ra.DataBinding.DataSource = BindTables("报名表") '将容器绑定到员工表
Doc.Body.ChildRen.Add(ra) '将容器加入到报表中

Dim r As prt.RenderText

r = New prt.RenderText
r.Style.Spacing.Bottom = 2
r.text="2013年武汉市中小学航空航天模型竞赛"
r.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ra.Children.Add(r) '添加到容器中
r = new prt.RenderText
r.Style.Spacing.Bottom = 3
r.text="参 赛 证"
r.Style.Font = New Font("楷体", 16, FontStyle.Bold)
r.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ra.Children.Add(r)

rt = New prt.RenderText
rt.Style.Spacing.Bottom = 1
rt.Text = "编号:[Fields!编号.Value]"
ra.Children.Add(rt) '添加到容器中
rt = New prt.RenderText
rt.Style.Spacing.Bottom = 1
rt.Text = "姓名:[Fields!姓名.Value]"
ra.Children.Add(rt) '添加到容器中
rt = New prt.RenderText
rt.Style.Spacing.Bottom = 1
rt.Text = "学校:[Fields!学校.Value]"
ra.Children.Add(rt) '添加到容器中
rt = New prt.RenderText
rt.Style.Spacing.Bottom = 1
rt.Text = "参赛项目:[Fields!参赛项目.Value]"
ra.Children.Add(rt) '添加到容器中
    rt = New prt.RenderText
    rt.Style.Spacing.Bottom = 1
    rt.Text = "组别:[Fields!组别.Value]"
    ra.Children.Add(rt) '添加到容器中
    rt = New prt.RenderText
    rt.Style.Spacing.Bottom = 1
    rt.Text = "场地:[Fields!场地.Value]"
    ra.Children.Add(rt) '添加到容器中
Doc.PageSetting.LeftMargin = 15 '设置左边距
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.TopMargin = 13 '设置上边距
Doc.PageSetting.BottomMargin = 13 '设置下边距

Doc.Preview()

 

以上代码执行正常。

现在的问题是:“组别”与“场地”只需打印一个出来,“组别"列的值为空打印“场地”

“场地”列的值为空打印“组别”。学习了一段代码后,将原代码改为

Dim doc As New PrintDoc '定义一个报表
Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
Dim ra As New prt.RenderArea
Dim rt As prt.RenderText
Dim rt1 As prt.RenderText
ra.Width = 90 '设置标签宽度
ra.Height = 54
ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割
ra.Style.Spacing.Right = 0 '设置标签之间的所有和上下间隔为2毫米
ra.Style.Spacing.Bottom = 0
ra.Style.Padding.All = 3 ' 标签内容距离边框为1毫米
ra.Style.Borders.All = New prt.Linedef(0.3, Color.Red) '设置边框
ra.DataBinding.DataSource = BindTables("报名表") '将容器绑定到员工表
Doc.Body.ChildRen.Add(ra) '将容器加入到报表中

Dim r As prt.RenderText

r = New prt.RenderText
r.Style.Spacing.Bottom = 2
r.text="2013年武汉市中小学航空航天模型竞赛"
r.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ra.Children.Add(r) '添加到容器中
r = new prt.RenderText
r.Style.Spacing.Bottom = 3
r.text="参 赛 证"
r.Style.Font = New Font("楷体", 16, FontStyle.Bold)
r.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ra.Children.Add(r)

rt = New prt.RenderText
rt.Style.Spacing.Bottom = 1
rt.Text = "编号:[Fields!编号.Value]"
ra.Children.Add(rt) '添加到容器中
rt = New prt.RenderText
rt.Style.Spacing.Bottom = 1
rt.Text = "姓名:[Fields!姓名.Value]"
ra.Children.Add(rt) '添加到容器中
rt = New prt.RenderText
rt.Style.Spacing.Bottom = 1
rt.Text = "学校:[Fields!学校.Value]"
ra.Children.Add(rt) '添加到容器中
rt = New prt.RenderText
rt.Style.Spacing.Bottom = 1
rt.Text = "参赛项目:[Fields!参赛项目.Value]"
ra.Children.Add(rt) '添加到容器中
If CurrentTable.Current. Is not Null("组别") Then
    rt = New prt.RenderText
    rt.Style.Spacing.Bottom = 1
    rt.Text = "组别:[Fields!组别.Value]"
    ra.Children.Add(rt) '添加到容器中
End If
If CurrentTable.Current. Is not Null("场地") Then
    rt = New prt.RenderText
    rt.Style.Spacing.Bottom = 1
    rt.Text = "场地:[Fields!场地.Value]"
    ra.Children.Add(rt) '添加到容器中
End If
Doc.PageSetting.LeftMargin = 15 '设置左边距
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.TopMargin = 13 '设置上边距
Doc.PageSetting.BottomMargin = 13 '设置下边距

Doc.Preview()

 

但提示出错。去掉“Is not Null”中的not,可以执行,但是不能满足要求。与上面没有修改的代码执行结果一样。

请专家指点!!!


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/25 14:42:00 [只看该作者]

 If CurrentTable.Current. Is not Null("组别") Then

这句改成

 
If not CurrentTable.Current. IsNull("组别") Then

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


加好友 发短信
等级:三尾狐 帖子:645 积分:4583 威望:0 精华:0 注册:2012/11/12 14:27:00
  发帖心情 Post By:2012/12/25 14:50:00 [只看该作者]

改了之后执行的结果为   场地、分组都没有了
图片点击可在新窗口打开查看此主题相关图片如下:))w~%5o46jm_$7(_s$ui`bw.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-12-25 15:02:41编辑过]

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


加好友 发短信
等级:三尾狐 帖子:645 积分:4583 威望:0 精华:0 注册:2012/11/12 14:27:00
  发帖心情 Post By:2012/12/25 15:00:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:m{zl0ee_``zu7zl0lh1`(v.gif
图片点击可在新窗口打开查看

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/25 15:11:00 [只看该作者]

你改成这样试一下。你再改改就行了。
 
 rt = New prt.RenderText
 rt.Style.Spacing.Bottom = 1
 rt.Text = "组别:[Fields!组别.Value]"  

 If Not CurrentTable.Current. IsNull("组别") Then
    ra.Children.Add(rt) '添加到容器中
 End If

 rt = New prt.RenderText
 rt.Style.Spacing.Bottom = 1
 rt.Text = "场地:[Fields!场地.Value]"
 If CurrentTable.Current. IsNull("场地") Then
    ra.Children.Add(rt) '添加到容器中
 End If

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


加好友 发短信
等级:三尾狐 帖子:645 积分:4583 威望:0 精华:0 注册:2012/11/12 14:27:00
  发帖心情 Post By:2012/12/25 15:22:00 [只看该作者]

lin_hailun 你好!
这样还是不行!

加入我的qq(470473046),我把项目传给你


图片点击可在新窗口打开查看此主题相关图片如下:m{zl0ee_``zu7zl0lh1`(v.gif
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-12-25 15:23:44编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/25 15:31:00 [只看该作者]

 你加这个QQ吧。

800014337,你说找小林就行了。

 回到顶部