以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  表的PrepareEdit事件问题,请教老师  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=27954)

--  作者:mamuaiqing
--  发布时间:2013/1/15 1:20:00
--  表的PrepareEdit事件问题,请教老师

规格表中有"规格"列跟"长度"列,规格为字符型,长度为双精度小数型,订单表中也有同样的两列,想实现订单表中"长度"输入以后从"规格表"中提取长度值-1跟+1的"规格"做为订

 

单表"长度"的列表项目,请教老师该怎么定义"规格表"中长度的值?下面的代码该怎么修改?

 

Dim v As Integer
v = Tables("规格").Cols("长度")

If e.IsFocusCell Then \'如果是焦点所在单元格     
        If e.Col.Name = "规格" Then 

           e.Col.Combolist = DataTables("规格").GetComboListString("规格", "长度 >= \'" & v-1 & "\' And 长度 <= \'" & v+1 &"\'")
        End If
End If


--  作者:狐狸爸爸
--  发布时间:2013/1/15 8:28:00
--  

表达式中的数值型,不需要单引号,字符型才需要单引号,而且你引用当前行数据的代码也是错误的。

 

代码应该是:

 

If e.IsFocusCell Then \'如果是焦点所在单元格
    If e.Col.Name = "规格" Then
        Dim v As Integer = e.Row("长度")
        e.Col.Combolist = DataTables("规格").GetComboListString("规格", "长度 >= " & v-1 & " And 长度 <= " & v+1 )
    End If
End If


--  作者:zerov
--  发布时间:2013/1/15 9:07:00
--  

学习了,还是没理解“从"规格表"中提取长度值-1跟+1的"规格"做为订单表"长度"的列表项目”有啥用?


--  作者:mamuaiqing
--  发布时间:2013/1/15 9:47:00
--  
感谢老爹的帮助,又学习了个图片点击可在新窗口打开查看
--  作者:mamuaiqing
--  发布时间:2013/1/15 9:55:00
--  
以下是引用zerov在2013-1-15 9:07:00的发言:

学习了,还是没理解“从"规格表"中提取长度值-1跟+1的"规格"做为订单表"长度"的列表项目”有啥用?

行业需求,比如一个钢铁行业,当中的产品有不同的长度,不同的长度中又有不同的规格,不同的规格又有不同的价格,而要在订单系统中根据客户的报单,也就是按长度需求列出各种规格供客户选择,长度范围是在+1跟-1当中,这样就可以灵活点