Foxtable(狐表)用户栏目专家坐堂 → 单元格计算问题


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

主题:单元格计算问题

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


加好友 发短信
等级:婴狐 帖子:44 积分:355 威望:0 精华:0 注册:2015/2/9 16:15:00
  发帖心情 Post By:2015/3/4 17:06:00 [显示全部帖子]

这个代码还是(6.1)(6.2)输出的吧,我想做成演示例子中订单那个可以参考下面的代码:

Dim doc As New PrintDoc
Dim
rt As New Prt.RenderTable
Dim
rx As prt.RenderText
Dim
cnt As Integer
Dim
tbl As Table = Tables("订单")
Dim
drs As List(Of DataRow)
Dim
pds As List(Of String) = tbl.DataTable.GetValues("产品",tbl.Filter)
rt.Style.GridLines.All = New prt.LineDef(
0.3,Color.LightGray)
rt
.CellStyle.Spacing.All = 1
rt.Style.Font = tbl.Font

For
c As Integer = 0 To tbl.Cols.Count - 1 '生成列标题
   
rt.Cells(0,c).Text = tbl.Cols(c).Name
    rt
.Cols(c).Width = tbl.Cols(c).PrintWidth
Next
For Each
pd As String In pds '分产品打印
    If
tbl.Filter > "" Then
        drs
= tbl.DataTable.Select("产品 = '" & pd & "' And " & tbl.Filter)
    Else

        drs
= tbl.DataTable.Select("产品 = '" & pd & "'" )
    End If
    For Each
dr As DataRow In drs '逐行打印此产品的订单
        cnt = rt.Rows.Count

        For
c As Integer = 0 To tbl.Cols.Count - 1
           
rt.Cells(cnt, c).Text = dr(tbl.Cols(c).Name)
        Next
    Next

    cnt = rt.Rows.Count

   
rt.Cells(cnt, 0).Text = "小计 " & pd '打印产品的小计
    rt
.Cells(cnt,5).Text = tbl.compute("Sum(数量)", "产品 = '" & pd & "'")
Next

cnt = rt.Rows.Count
rt.Cells(cnt,
0).Text = "合计 " '打印合计
rt.Cells(cnt,
5).Text = tbl.compute("Sum(数量)")
doc
.Body.Children.Add(rt)

doc.preview()


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


加好友 发短信
等级:婴狐 帖子:44 积分:355 威望:0 精华:0 注册:2015/2/9 16:15:00
  发帖心情 Post By:2015/3/4 17:08:00 [显示全部帖子]

我增加列了您看下根据评价名称分组统计
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


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


加好友 发短信
等级:婴狐 帖子:44 积分:355 威望:0 精华:0 注册:2015/2/9 16:15:00
  发帖心情 Post By:2015/3/4 17:21:00 [显示全部帖子]

这样的分组汇总
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


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


加好友 发短信
等级:婴狐 帖子:44 积分:355 威望:0 精华:0 注册:2015/2/9 16:15:00
  发帖心情 Post By:2015/3/4 17:26:00 [显示全部帖子]

按照评价名称分组,最后样子在第8行第2列

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


加好友 发短信
等级:婴狐 帖子:44 积分:355 威望:0 精华:0 注册:2015/2/9 16:15:00
  发帖心情 Post By:2015/3/4 23:44:00 [显示全部帖子]

谢谢您的耐心


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


加好友 发短信
等级:婴狐 帖子:44 积分:355 威望:0 精华:0 注册:2015/2/9 16:15:00
  发帖心情 Post By:2015/3/5 8:47:00 [显示全部帖子]

版主分类汇总模式下新增行按钮新增航是从上面插入的,能依次递增新行么

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


加好友 发短信
等级:婴狐 帖子:44 积分:355 威望:0 精华:0 注册:2015/2/9 16:15:00
  发帖心情 Post By:2015/3/5 9:07:00 [显示全部帖子]

Dim t As Table = Tables("柱上真空开关部件范围划分")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True
t.Filter = "评价名称 is not null"
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Count
g.GroupOn = "评价名称"
g.TotalOn = "部件"
g.Caption = " 整体评价结果"
t.SubtotalGroups.Add(g)

t.Subtotal()

Dim sum As Double = 0
Dim min As Double = 999
Dim flag = True

For i As Integer = 0 To t.Rows.Count(True) - 1
    Dim r As Row = t.Rows(i, True)
    If r.IsGroup Then
        If flag Then
            r("部件") = sum
        Else
            r("部件") = min
        End If
        sum = 0
        min = 999
        flag = True
    Else
        sum += val(r("部件最后得分Mp")) * val(r("Kp"))
        If val(r("部件最后得分Mp")) < min Then
            min = val(r("部件最后得分Mp"))
        End If
        If flag Then
            If r("部件评价结果") <> "正常状态" Then
                flag = False
            End If
        End If
        
    End If
Next

这个语句中有排序还是汇总模式默认排序,要是有怎么修改下这语句,谢谢

 回到顶部
总数 18 上一页 1 2