Foxtable(狐表)用户栏目专家坐堂 → 参数单价的引用


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

主题:参数单价的引用

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/18 13:44:00 [显示全部帖子]

呵呵,你这几天都在折腾同样的问题啊。

我下午比较忙,你先看看帮助和我之前写给你的代码,尝试自己写一下。

实在搞不定的话,我明天帮你设置一下。

 

不能总在同样的地方摔跤,最好还是抽时间系统看看帮助,特别是编程基础和FoxTable编程这两章,掌握一下基本的概念,这样看到别人的代码的时候,就能举一反三,不会总被同一个问题卡住。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/19 9:41:00 [显示全部帖子]

稍等,我帮你写一下显示单价的代码。

mr725说得不错的,你的系统没有脱离表格的思路,不太符合数据库的设计规范,编写代码比较麻烦

不过只要你自己觉得合用就行。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/19 10:03:00 [显示全部帖子]

我写出了单价1到单价3,其他的你自己补上,可以看出万变不离其宗,方法是一样的。
另列名称命名要规范,你有的是品种1,有的却是品名2,让后写代码的时候吃了些苦头,这种随意的命名等于是自己给自己设置陷阱的。

 

Dim dr1 As DataRow = e.DataRow
Dim dr2 As DataRow
If e.DataCol.Name = "驾驶员" Then
    dr2 = DataTables("参数").Find("驾驶员 = " & "'" & dr1("驾驶员") & "'" )
    If dr2 IsNot Nothing '如果找到, 则设置各列内容
        dr1("车号")= dr2("车号")
        dr1("车长")= dr2("车长")
    End If
End If
Select Case e.DataCol.Name
    Case  "运输地点" ,"车号", "车长"
        dr2 = DataTables("参数").Find("运输地点 = " & "'" & dr1("运输地点") & "' And 车长 = '" & dr1("车长") & "' And 车号 = '" &  dr1("车号") & "'" )
        If dr2 IsNot Nothing '如果找到, 则设置各列内容
            dr1("运费")= dr2("运费")
        End If
End Select
If e.DataCol.Name = "二次运输" Then
    dr2 = DataTables("参数").Find("驾驶员 = " & "'" & dr1("二次运输") & "'" )
    If dr2 IsNot Nothing '如果找到, 则设置各列内容
        dr1("二次车号")= dr2("车号")
        dr1("二次车长")= dr2("车长")
    End If
End If
Select Case e.DataCol.Name
    Case  "运送地点" ,"二次车号", "二次车长"
        dr2 = DataTables("参数").Find("运输地点 = " & "'" & dr1("运送地点") & "' And 车长 = '" & dr1("二次车长") & "' And 车号 = '" &  dr1("二次车号") & "'" )
        If dr2 IsNot Nothing '如果找到, 则设置各列内容
            dr1("二次运费")= dr2("运费")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品种1","规格1"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品种1") & "' And 产品规格 = '" & dr1("规格1") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价1")  = dr2("单价")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品名2","规格2"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品名2") & "' And 产品规格 = '" & dr1("规格2") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价2")  = dr2("单价")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品种3","规格3"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品种3") & "' And 产品规格 = '" & dr1("规格3") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价3")  = dr2("单价")
        End If
End Select


'后面的单价4到单价8自己补上即可


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/19 13:16:00 [显示全部帖子]

我测试单价可以自动显示:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:产品销售.rar


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/19 15:38:00 [显示全部帖子]

那就修改代码中的单价字样,例如:

 

 dr1("单价3") = dr2("单价")

 

改为:

 

 dr1("单价3") = dr2("报价")


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/19 16:06:00 [显示全部帖子]

我修改后测试没有问题,你参数表没有输入报价吧,出口处理表自然就没有报价出来。

或者你没有修改好代码,注意上面的代码有8处需要修改,这是改好的:

 

Dim dr1 As DataRow = e.DataRow
Dim dr2 As DataRow
If e.DataCol.Name = "驾驶员" Then
    dr2 = DataTables("参数").Find("驾驶员 = " & "'" & dr1("驾驶员") & "'" )
    If dr2 IsNot Nothing '如果找到, 则设置各列内容
        dr1("车号")= dr2("车号")
        dr1("车长")= dr2("车长")
    End If
End If
Select Case e.DataCol.Name
    Case  "运输地点" ,"车号", "车长"
        dr2 = DataTables("参数").Find("运输地点 = " & "'" & dr1("运输地点") & "' And 车长 = '" & dr1("车长") & "' And 车号 = '" &  dr1("车号") & "'" )
        If dr2 IsNot Nothing '如果找到, 则设置各列内容
            dr1("运费")= dr2("运费")
        End If
End Select
If e.DataCol.Name = "二次运输" Then
    dr2 = DataTables("参数").Find("驾驶员 = " & "'" & dr1("二次运输") & "'" )
    If dr2 IsNot Nothing '如果找到, 则设置各列内容
        dr1("二次车号")= dr2("车号")
        dr1("二次车长")= dr2("车长")
    End If
End If
Select Case e.DataCol.Name
    Case  "运送地点" ,"二次车号", "二次车长"
        dr2 = DataTables("参数").Find("运输地点 = " & "'" & dr1("运送地点") & "' And 车长 = '" & dr1("二次车长") & "' And 车号 = '" &  dr1("二次车号") & "'" )
        If dr2 IsNot Nothing '如果找到, 则设置各列内容
            dr1("二次运费")= dr2("运费")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品种1","规格1"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品种1") & "' And 产品规格 = '" & dr1("规格1") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价1")  = dr2("报价")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品名2","规格2"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品名2") & "' And 产品规格 = '" & dr1("规格2") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价2")  = dr2("报价")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品种3","规格3"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品种3") & "' And 产品规格 = '" & dr1("规格3") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价3")  = dr2("报价")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品种4","规格4"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品种4") & "' And 产品规格 = '" & dr1("规格4") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价4")  = dr2("报价")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品种5","规格5"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品种5") & "' And 产品规格 = '" & dr1("规格5") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价5")  = dr2("报价")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品种6","规格6"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品种6") & "' And 产品规格 = '" & dr1("规格6") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价6")  = dr2("报价")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品种7","规格7"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品种7") & "' And 产品规格 = '" & dr1("规格7") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价7")  = dr2("报价")
        End If
End Select
Select Case e.DataCol.Name
    Case "处理方式","品种8","规格8"
        dr2 = DataTables("参数").Find("处理方式 = '" & dr1("处理方式") & "' And 材料名称 = '" & dr1("品种8") & "' And 产品规格 = '" & dr1("规格8") & "'")
        If dr2 IsNot Nothing Then
            dr1("单价8")  = dr2("报价")
        End If
End Select


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/19 17:10:00 [显示全部帖子]

我用你的文件测试没有问题,例如某行处理方式输入:热处理,品种1输入:全木盘,规格1输入:800,单价就会自动显示:80

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/19 17:19:00 [显示全部帖子]

我品种1到品种8都进行了同样的测试,没有问题。

要显示单价的前提是:处理方式、品种N、规格N这三列都已经输入内容,且参数表有对应的行。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/19 17:51:00 [显示全部帖子]

以下是引用caoxy在2011-3-19 17:43:00的发言:

也就是说如果每行只3-4个品种,单价无法显示

 

不是这个意思,如果你要显示单价3,你就得输入处理方式、品种3、规格3三列的内容,且参数表有对应的行。

同样你要显示单价四,你就得输入处理方式、品种4、规格4三列的内容,且参数表有对应的行。

品种3、规格3和品种4、规格4不同的时候,单价3和单价4自然就不同。

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/19 18:05:00 [显示全部帖子]

我彻底被你搞晕了,现在不同品种的处理方式就是一样的啊,你看代码都是一样的。

觉得有问题的话,就请举例说明,例如在什么那些列处输入那些内容,什么列应该出现什么内容。


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