Foxtable(狐表)用户栏目专家坐堂 → 跨表应用中没考虑到的问题


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

主题:跨表应用中没考虑到的问题

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


加好友 发短信
等级:二尾狐 帖子:550 积分:4985 威望:0 精华:0 注册:2012/2/11 13:27:00
跨表应用中没考虑到的问题  发帖心情 Post By:2014/3/22 14:04:00 [只看该作者]

 引用一段说明书的内容
3.4.2.4.3.11 跨表引用的自动更新

上一节提到,如果在订单表的DataColChanged事件中加入如下代码:

If e.DataCol.Name = "品名" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.DataRow("单价") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr As DataRow
        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("产品").Find("[品名] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("单价") = dr("单价")
        End If
    End If
End If

 

 

问题:如果在“产品”中,有这样的记录

 

产品表:

--------------------------------

序号   时  间         品名     单价

  1   2013-1-1      钢笔A    7.00

  2   2013-1-2      铅笔      2.00

  3   2013-1-3      钢笔A    9.00

  4   2013-1-4      钢笔B    5.00

  5   2013-1-5      钢笔A    8.00

  6   2013-1-5      钢笔A    8.00

  6   2013-1-6      钢笔A    8.00

 

订单表:

--------------------------------

序号   时  间         品名     最初单价   第2次单价   最终单价  平均单价

  1    2013-3-1      钢笔A      7.00           ??          ??        ??

  4    2013-3-4      钢笔B      5.00           ??           ??        ??

 

 

最初单价:就是第一次的找到的记录,关于问号(??)部分的代码如何实现,请教各位高手!

              (最想解决的是: 填写“最终单价”的代码)

[此贴子已经被作者于2014-3-22 14:06:50编辑过]

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


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

Find(Filter,Sort,Index)

dr = DataTables("产品").Find("[品名] = '" & e.NewValue & "'","时间",1)

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/22 14:10:00 [只看该作者]

又发代码,又发图片,就是不肯发例子,至少表导出来,也省不少事。


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/22 14:55:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表多列统计.table


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


加好友 发短信
等级:二尾狐 帖子:550 积分:4985 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By:2014/3/23 9:07:00 [只看该作者]

衷心谢谢版主,我图省事,就没有做文件,这个方面以后一定要改,给版主填麻烦,给大家添麻烦了,另外,我提的问题的意思也没有能表达明白,请诸位谅解。

 

我重传了文件,

 

1、主要目的:为了获得“最初单价”和“最终单价”,

2、含义解释

    【商      品】:品名相同、产地相同 则为一个 商品 

    【最初单价】:在按一定顺序排列后,从第一行开始查找到的单价,

    【最终单价】:从最后一行开始向上找到的单价,而不是紧接最初单价后的第二个找到的单价

 

3、设置了两个按钮【盘点1】【盘点2】,这两个按钮使用后的结果中 “最初单价”和“最终单价”应该是相反的结果

 

恳请版主在百忙中帮我把触发代码修改一下,再次对版主的指导表示衷心感谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表多列统计2.table


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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2014/3/23 9:34:00 [只看该作者]

1、看这个:

 

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

3、交换两列的值更简单:

 

For Each dr As DataRow In DataTables("表B").DataRows
    Dim v As Double = dr("最初单价")
    dr("最初单价") = dr("最终单价")
    dr("最终单价") = v
Next

 

 


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


加好友 发短信
等级:二尾狐 帖子:550 积分:4985 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By:2014/3/23 11:18:00 [只看该作者]

谢谢,一下子没想到,我原来想,求最终单价就从最后一行向上找数据,没想到是把原来的排序颠倒一下,你太厉害了,谢谢!


 回到顶部