Foxtable(狐表)用户栏目专家坐堂 → 表的问题


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

主题:表的问题

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
表的问题  发帖心情 Post By:2015/1/10 14:46:00 [只看该作者]

如图:
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看
图中是合同明细,如李文娟在1月8号与甲公司签了两笔合同,对应的合同号不同,“金额”通过数量*单价计算得出,1月8号与乙公司签了合同,也有对应的合同号,此合同号是自动编号,依据日期和公司不同编制。
目的:在合同明细中每增加一个新的合同号,在下图应收账款表中能自动添加一行,作一笔应收账款,将合同明细表中每个合同号对应的“合同号”,“金额”,“客户名称”分别作为应收账款表的“单据号”,“借方“,“客户”记录下来
图片点击可在新窗口打开查看此主题相关图片如下:无标题1.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2015/1/10 14:47:00 [只看该作者]

参考帮助中的下列代码,没成功

If e.DataCol.Name = "型号" Then '如果内容发生变动的是品名列

    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空

        e.DataRow("成本") = Nothing '那么清空此行单价列的内容

    Else

        Dim dr As DataRow

        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr

        dr = DataTables("采购明细").SQLFind("[型号] = '" & e.NewValue & "'")

        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing

            e.DataRow("成本") = dr("单价")

        End If

    End If

End If

 

. 如果列名不同,或者只需复制部分列,可以参考下面的代码:

If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
    Dim nma() As String = {"A1","A2","A3","A4"} 'A
表数据来源列
   
Dim nmb() As String = {"B1","B2","B3","B4"} 'B表数据接收列
   
Dim dr As DataRow = DataTables("B").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
End
If

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/10 14:51:00 [只看该作者]

图太小,看不到.

你把SQLFIND 改为 FIND

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2015/1/10 14:52:00 [只看该作者]

图片点击可以放大

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2015/1/10 14:53:00 [只看该作者]

我的是外部表,要后台找

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/10 14:53:00 [只看该作者]

上例子吧

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2015/1/10 14:58:00 [只看该作者]

上述代码仅是帮助中可能与此项操作有关的大概能用到的代码,复制部分列我可以搞定,难在要后台统计每个合同号的金额,好像要用到类似Dim Sum1 As Double = Tables("订单").Compute("Sum(数量)", "产品 = 'PD01'")

Dim Sum2 As Double = DataTables("订单").Compute("Sum(数量)", "产品 = 'PD01'")这样的计算。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/10 15:10:00 [只看该作者]

你上个例子,描述清楚你要实现的需求.

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2015/1/10 15:14:00 [只看该作者]

If e.DataCol.Name = "合同号"   Then
    Dim nma() As String = {"合同号","客户","金额"} 'A
表数据来源列
   
Dim nmb() As String = {"单据号","客户","借方"} 'B表数据接收列
   
Dim dr As DataRow = DataTables("应收账款").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
End
If


上述代码中第二行的“金额”应该是统计每个合同号的金额,就是这个“金额”应如何写代码不知道


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/10 15:19:00 [只看该作者]

7楼的思路是对的

 回到顶部
总数 19 1 2 下一页