Foxtable(狐表)用户栏目专家坐堂 → 汇总模式和非汇总模式打印的结果不一样


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

主题:汇总模式和非汇总模式打印的结果不一样

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


加好友 发短信
等级:狐神 帖子:6793 积分:42967 威望:0 精华:0 注册:2009/3/2 14:07:00
汇总模式和非汇总模式打印的结果不一样  发帖心情 Post By:2011/3/22 16:43:00 [只看该作者]

运行表“明细账”的窗口“采购明细账”,日期分别输入“2011-01-01”和“2011-06-30”。

查询1和查询2的代码唯一的差别就是“查询1”多了一段汇总,其他是一样的。

先点击按钮“查询1”,再按“打印”不能运行

再点击按钮“查询2”,再按“打印”却能运行

查询1不能打印,求解决代码。


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


加好友 发短信
等级:狐神 帖子:6793 积分:42967 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/3/22 16:44:00 [只看该作者]

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


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/22 16:57:00 [只看该作者]

呵呵,不知道怎么测试你这个文件,打开先提示几个表不存在。

进去之后按查询1或者查询2结果都是出现一个窗口,关闭这个窗口后啥也没有了,按打印就出现一个页面,都是一条线而已。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/22 17:03:00 [只看该作者]

你不如单独用一个表,分别在汇总模式和非汇总模式下,用你的打印代码进行打印,看看打印代码是否正常,我测试你的代码不管是汇总模式还是非汇总模式,都OK

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


加好友 发短信
等级:狐神 帖子:6793 积分:42967 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/3/23 8:29:00 [只看该作者]

贺老师,你再看一下。

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

[此贴子已经被作者于2011-3-23 8:38:08编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/23 8:37:00 [只看该作者]

呵呵,我昨天看过才发帖的,没办法测试。

示例文件应该简单明了,至少能够顺利打开,能够再现问题。


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


加好友 发短信
等级:狐神 帖子:6793 积分:42967 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/3/23 8:39:00 [只看该作者]

贺老师,刚才附件没有传上去,现已传上。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目20.rar


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/23 9:06:00 [只看该作者]

Dim h,i,m,l,r,colscount As Integer
Dim colname As String
Dim tb As Table=Tables("" & e.Form.name & "_table1")
Dim cr As Row=Tables("打印设置").Rows(0) '打印设置表第一行
Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rs As New prt.RenderText() '定义一个文本对象
Dim rs1 As New prt.RenderText() '定义一个文本对象
'设置纸张方向
If vars("横向打印")=True
    Doc.PageSetting.Landscape = True '横向打印
Else
    Doc.PageSetting.Landscape = False '纵向打印
End If

m=vars("左边距")
l=vars("右边距")

Doc.PageSetting.LeftMargin = 10 '设置左边距
Doc.PageSetting.RightMargin = 10 '设置右边距

rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
rt.Rows.Count = Tb.Rows.Count
r = Tb.Rows.Count '设置行数
'表可见列数
colscount=0
M=0
For Each cl As col In tb.cols
    If cl.visible=True
        colscount=colscount+1
        l = cr(cl.name)
        rt.Cols(M).Width = l
        M=M+1
    End If
Next
rt.Cols.Count =colscount '设置列数
For n As Integer = 0 To tb.rows.count(True)-1 Step 1
    Dim dr As Row=tb.rows(n,True)
    m=0
    For Each cl As col In tb.cols
        If cl.visible=True And n=0
            rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本内容水平居中
            rt.Style.TextAlignVert = prt.AlignVertEnum.Center
            rt.Cells(0,m).Text =cl.name
            If cl.IsNumeric
                If dr.IsNull(cl.name)= False
                    rt.Cells(n+1,m).Style.TextAlignVert = prt.AlignVertEnum.Center
                    rt.Cells(n+1,m).Style.TextAlignHorz = prt.AlignHorzEnum.right
                    If Isnumeric(dr(cl.name).Tostring) Then
                       rt.Cells(n+1,m).Text = Format(dr(cl.name),"#,##0.00")
                    Else
                        rt.Cells(n+1,m).Text = dr(cl.name).Tostring
                    End If
                End If
            End If
            If cl.IsString
                rt.Cells(n+1,m).Style.TextAlignVert = prt.AlignVertEnum.Center
                rt.Cells(n+1,m).Style.TextAlignHorz = prt.AlignHorzEnum.left
                rt.Cells(n+1,m).Text =dr(cl.name)
            End If
            m=m+1
        End If
        If cl.visible=True And n<>0
            If cl.IsNumeric
                If dr.IsNull(cl.name) = False
                    rt.Cells(n+1,m).Style.TextAlignVert = prt.AlignVertEnum.Center
                    rt.Cells(n+1,m).Style.TextAlignHorz = prt.AlignHorzEnum.right
                    If Isnumeric(dr(cl.name).Tostring) Then
                       rt.Cells(n+1,m).Text = Format(dr(cl.name),"#,##0.00")
                    Else
                        rt.Cells(n+1,m).Text = dr(cl.name).Tostring
                    End If
                End If
            End If
            If cl.IsString Or cl.Isdate
                rt.Cells(n+1,m).Style.TextAlignHorz = prt.AlignHorzEnum.left
                rt.Cells(n+1,m).Style.TextAlignVert = prt.AlignVertEnum.Center
                rt.Cells(n+1,m).Text =dr(cl.name)
            End If
            m=m+1
        End If
    Next
Next

rt.RowGroups(0, tb.HeaderRows).Header = prt.TableHeaderEnum.All '利用行组功能设置表头
tb.AutoSizeRows()

doc.Body.Children.Add(rs) '将文本对象加入到表格中
doc.Body.Children.Add(rs1) '将文本对象加入到表格中
doc.Body.Children.Add(rt) '将表格对象加入到报表中
rs = New prt.RenderText() '再次定义一个文本对象
rs1 = New prt.RenderText() '再次定义一个文本对象
doc.Body.Children.Add(rs) '将文本对象加入到表格中
doc.Body.Children.Add(rs1) '将文本对象加入到表格中
Doc.Preview() '预览报表


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/23 10:04:00 [只看该作者]

不改代码也可以,就得等下次更新

 回到顶部