Foxtable(狐表)用户栏目专家坐堂 → 备注是否可以关联到另外一个表


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

主题:备注是否可以关联到另外一个表

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/14 13:22:00 [显示全部帖子]

Dim sm As Double
sm = Tables("出货明细").Compute("Sum(出货数量)", "公司 = '" & CurrentTable.current("公司") & "'")

CurrentTable.current("出货明细") = Date.Today() & " " & CurrentTable.current("产品") & " " & sm

 

注意: 出货明细表的 出货数量列 改为Double类型

[此贴子已经被作者于2010-9-14 14:14:58编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/14 14:35:00 [显示全部帖子]

2楼的放在命令窗口测试用, 录入数据时放在 出货明细 表的 datacolchanged事件中:
Select Case e.DataCol.Name
    Case "产品","公司","出货数量"
        If e.DataRow.IsNull("产品") = False And e.DataRow.IsNull("公司") = False And e.DataRow.IsNull("出货数量") = False Then
            Dim dr As DataRow   '
            dr = DataTables("表A").Find("公司 = '" & e.DataRow("公司") & "'")

                Dim sm As Double
                sm = Tables("出货明细").Compute("Sum(出货数量)", "公司 = '" & e.DataRow("公司") & "'")
                dr("出货明细")= Date.today() & " " & e.DataRow("产品") & " " & sm

        End If
End Select

[此贴子已经被作者于2010-9-14 14:37:44编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/14 16:02:00 [显示全部帖子]

估计少有人懂你的意思了, 用图说明吧,一步一步说明一下具体步骤。

 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/14 19:31:00 [显示全部帖子]

以下是引用ASD123456789在2010-9-14 17:20:00的发言:

因为那是两个完全不同的表格,如果要直接在出货明细表中填的,要做两分工作了,所以我想这样处理,不知道有没有更好的办法

你的意思是只有表A , 没有“出货明细”表吗?

 

或者说在表A的出货明细列输入

2010-9-14 A1 3000
2010-9-15 A1 2000

后,数量_ 出货数这一列要自动累加(3000+2000)= 5000 ,而与“出货明细”表无关,是这样吗?

要是这样也不难做到的吧。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/14 20:02:00 [显示全部帖子]

以下是引用blackzhu在2010-9-14 19:40:00的发言:

mr-725兄,你没有了解他的意思,简单的说他要这一条数据2010-9-14 A1 3000
                                                                        2010-9-15 A1 2000在明细表中
分成二行数据

我想还是你没理解他的意思, 因为他说明细表是另一份工作(可能是另一个人单独录入,而且不是一个系统,否则用外部数据源就好了,他也不必在 表A 的出货明细列中输入任何东东了)。

 

即使是“在明细表中分成N行数据”,只要备注型列:出货明细 中输入有规则,也是没有问题的。。。

 

我被他11楼的说明搞晕了,根据他再前面的叙述,还是blackzhu贤弟理解对了。。。但是出货明细表原有的数据行要保留吗,如果只是添加行就简单些了。

[此贴子已经被作者于2010-9-14 20:30:58编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/14 23:58:00 [显示全部帖子]

表A_DataColChanged:::::将备注型列:出货明细 中的内容添加到 出货明细表中:::::::

出货明细列的录入格式必须是:

2010-09-14 A1 2000

2010-09-15 A1 3000

2010-09-16 A1 5000

.......................

.......................

 

Dim s As String = Tables("表A").current("出货明细")
Dim cs As String
For i As Integer = 0 To s.split(chr(10)).length - 1
    Dim r As Row = Tables("出货明细").AddNew()
    r("公司") = Tables("表A").current("公司")
    r("出货时间") =  s.split(chr(10))(i).split(" ")(0)
    r("产品") =  s.split(chr(10))(i).split(" ")(1)
    r("出货数量") =  s.split(chr(10))(i).split(" ")(2)
Next

 

条件你自己加上吧。。。。。。。

 

 

另外: 嗨~  用这个vbCrLf晕菜死了。 替换上面的chr(10) 绝对不行!!! 双行???



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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/15 9:59:00 [显示全部帖子]

以下是引用ASD123456789在2010-9-15 9:04:00的发言:

我的意思是从“出货明细列”输入数据,自动会在“出货明细表”出现所有数据,这样能做备案作用,还方便查找

 17楼的代码可以实现你的要求,你可以放在命令窗口测试一下。另外:

 

C版说得对,别自寻烦恼了,本来就应该在出货明细表中录入明细数据的。

 

不过,如果像我这样玩狐表的话,你可以尽情的自寻烦恼.....   呵呵


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/15 17:42:00 [显示全部帖子]

贴出你的代码看看。

 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/15 18:08:00 [显示全部帖子]

DataTables("出货明细").DeleteFor("公司 = '" & e.DataRow("公司") & "'")  ‘这就可以时时更新了

Dim s As String = Tables("表A").current("出货明细")
Dim cs As String
For i As Integer = 0 To s.split(chr(10)).length - 1
    Dim r As Row = Tables("出货明细").AddNew()
    r("公司") = Tables("表A").current("公司")
    r("出货时间") =  s.split(chr(10))(i).split(" ")(0)      ’这里去掉的产品列的内容

    r("出货数量") =  s.split(chr(10))(i).split(" ")(1)
Next


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/16 11:36:00 [显示全部帖子]

你最好附上和你代码相关的示例,不然我等还要建个文件测试,也不知道有些什么列名称都属于哪个表的。。。。

 

另外也应说明执行你32楼代码都在哪个表的什么事件中,要达到什么目的,呵呵,俺也笨,没法下“盲棋”。。。


 回到顶部
总数 26 1 2 3 下一页