Foxtable(狐表)用户栏目专家坐堂 → [求助]两表数据合并(已解决)


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

主题:[求助]两表数据合并(已解决)

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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
[求助]两表数据合并(已解决)  发帖心情 Post By:2012/8/17 16:53:00 [只看该作者]

现有两表:项目表和合同表。

项目表有“项目名称”和“产值”2列,共3行数据:项目名称分别为A、B、C,产值分别为1、2、3;

合同表有“项目名称”和“合同名称”2列,共5行数据:项目名称A对应的合同名称有3行:A1、A2、A3,项目名称B对应的合同名称有2行:B1、B2,项目名称C对应的合同表没有记录(合同未签)。

用“项目名称”关联两表。

现要输出汇总表:包含“项目名称”、“合同名称”、“产值”3列、6行。

请问:应该用什么方法?

谢谢!

 

[此贴子已经被作者于2012-8-18 13:39:04编辑过]

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/8/17 17:08:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2012/8/17 17:20:00 [只看该作者]

这不可能。

因为产值是对应项目的,不是对应合同的。要用到合并模式。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/8/17 20:10:00 [只看该作者]

用查询表。

不写代码的,从这一节开始看:

http://www.foxtable.com/help/topics/2321.htm

 

写代码的,从这一节开始看:

http://www.foxtable.com/help/topics/2314.htm

 


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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2012/8/18 13:38:00 [只看该作者]

谢谢各位。

项目C在合同表中是没有对应记录的,但必须列出,所以,只能增加临时表且编写所有代码了。现在已经解决了。

现附上实际表的代码作为共享:

'创建临时表

Dim dtb As New DataTableBuilder("账面信息")

dtb.AddDef("实体名称",Gettype(String),6)

dtb.AddDef("项目名称",Gettype(String),40)

dtb.AddDef("编号",Gettype(Integer))

dtb.AddDef("合同额",Gettype(Integer))

dtb.AddDef("合同名称",Gettype(String),75)

dtb.AddDef("合同编号",Gettype(String),11)

dtb.AddDef("初始合同额",Gettype(Integer))

dtb.AddDef("结算金额",Gettype(Integer))

dtb.AddDef("上报产值",Gettype(Integer))

dtb.AddDef("签认产值",Gettype(Integer))

dtb.AddDef("签认日期",Gettype(Date))

dtb.AddDef("到款合计",Gettype(Integer))

dtb.AddDef("签认欠款",Gettype(Integer))

dtb.AddDef("审批成本",Gettype(Integer))

dtb.AddDef("累计成本",Gettype(Integer))

dtb.AddDef("累计支出",Gettype(Integer))

dtb.AddDef("借款余额",Gettype(Integer))

dtb.Build()

'准备工作

MainTable= Tables("账面信息")

Tables("项目全面管理").filter="[项目名称] not Like '*管理经费*' And [项目名称] not Like '*未列项目*'" '排除管理经费和未列项目

Tables("项目全面管理").sort="实体名称,编号"

Tables("合同台账管理").sort="实体名称,项目名称"

Dim i,k,r As Integer

Dim dr1 As Row

Dim dr,dr2,dr3 As DataRow

k=Tables("项目全面管理").rows.count

'添加记录

For i=0 To k-1 '以项目全面管理表为准逐行搜索每个项目在合同台账管理表中的合同记录

'添加项目全面管理表的记录

    dr1= Tables("项目全面管理").rows(i)

    dr3=DataTables("账面信息").addnew()

    dr3("实体名称")=dr1("实体名称")

    dr3("项目名称")=dr1("项目名称")

    dr3("编号")=dr1("编号")

    dr3("合同额")=dr1("合同额_合计")

    dr3("上报产值")=dr1("营业额_总计")

    dr3("签认产值")=dr1("参考数据_签认营业额")

    dr3("签认日期")=dr1("参考数据_签认日期")

    dr3("到款合计")=dr1("到款合计")

    dr3("签认欠款")=dr1("参考数据_签认欠款")

    dr3("审批成本")=dr1("审批成本")

    dr3("累计成本")=dr1("参考数据_累计成本")

    dr3("累计支出")=dr1("参考数据_累计支出")

    dr3("借款余额")=dr1("参考数据_借款余额")

'添加合同台账管理表的记录

    dr =DataTables("合同台账管理").Find("实体名称 = '" & dr1("实体名称") & "' And 项目名称='" & dr1("项目名称") & "'")

    r = Tables("合同台账管理").FindRow(dr)

    If r>=0 Then

        r=0

        For Each dr2 In DataTables("合同台账管理").Select("[实体名称] = '" & dr1("实体名称") & "' And [项目名称]='" & dr1("项目名称") & "'")

            If r>0 Then

                dr3=DataTables("账面信息").AddNew()

            End If

            dr3("实体名称")=dr1("实体名称")

            dr3("项目名称")=dr1("项目名称")

            dr3("合同名称")=dr2("合同名称")

            dr3("合同编号")=dr2("合同编号")

            dr3("初始合同额")=dr2("初始合同额")

            dr3("结算金额")=dr2("结算金额")

            r=1

        Next

    End If

Next

'生成汇总统计表

Dim t As Table = Tables("账面信息")

Dim g As SubtotalGroup

t.SubtotalGroups.Clear()

t.GroupAboveData = False

t.TreeVisible = False

t.SpillNode = True

g = New SubtotalGroup

g.Aggregate = AggregateEnum.Sum

g.GroupOn = "实体名称"

g.TotalOn = "合同额,初始合同额,结算金额,上报产值,签认产值,到款合计,签认欠款,审批成本,累计成本,累计支出,借款余额"

g.Caption = "{0} 小计"

t.SubtotalGroups.Add(g)

t.Subtotal()

'自动列宽,较长的项目名称和合同名称用固定列宽

[此贴子已经被作者于2012-8-18 13:47:44编辑过]

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


加好友 发短信
等级:幼狐 帖子:87 积分:740 威望:0 精华:0 注册:2013/1/27 10:48:00
  发帖心情 Post By:2013/3/13 17:47:00 [只看该作者]

能不能发个例子学习一下呢?

 回到顶部