以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 箱号的代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1206) |
||||
-- 作者:blackzhu -- 发布时间:2008/11/22 11:20:00 -- 箱号的代码 我有一张订单表,有两个口岸,每一个口岸的第一箱的箱号全部从1开始。每增加一箱,开始箱号是结束箱号+1,结束箱号+箱数,请帮忙看看这个代码怎么写? 如图所示 此主题相关图片如下:16.jpg |
||||
-- 作者:czy -- 发布时间:2008/11/22 13:01:00 -- If e.DataCol.Name = "口岸" Then If e.NewValue Is Nothing Then e.datarow("开始箱号") = Nothing Else Dim dr As DataRow = DataTables("表名").Find("[订单号] = \'" & e.datarow("订单号") & "\' And [口岸] = \'" & e.NewValue & "\' And [结束箱号] > 0","_identify Desc") if dr IsNot Nothing Then e.datarow("开始箱号") = dr("结束箱号")+1 End if End if End if [此贴子已经被作者于2008-11-22 13:02:49编辑过]
|
||||
-- 作者:czy -- 发布时间:2008/11/22 13:04:00 -- 记了说明,楼上的代码放到datacolchangd事件中。 |
||||
-- 作者:blackzhu -- 发布时间:2008/11/22 17:41:00 -- 以下是引用czy在2008-11-22 13:01:00的发言:
If e.DataCol.Name = "口岸" Then If e.NewValue Is Nothing Then e.datarow("开始箱号") = Nothing Else Dim dr As DataRow = DataTables("表名").Find("[订单号] = \'" & e.datarow("订单号") & "\' And [口岸] = \'" & e.NewValue & "\' And [结束箱号] > 0","_identify Desc") if dr IsNot Nothing Then e.datarow("开始箱号") = dr("结束箱号")+1 End if End if End if [此贴子已经被作者于2008-11-22 13:02:49编辑过] 谢谢CZY版主的回复,但我测试了一下没有反映。还有结束箱号的代码没有出来,结束箱号:起始行是等于起始行的箱数,第二行的结束箱号是等于上一行+第二行的箱数,以此类推。请版主看看我的开始箱号和结束箱号的变化。而且新口岸新单子全部是从第一箱开始的。谢谢。 |
||||
-- 作者:blackzhu -- 发布时间:2008/11/22 17:43:00 -- 我想有变化的列应该是订单号,口岸和箱数,因为每增加一箱,开始箱号和结束箱号随之增加上去的。 |
||||
-- 作者:don -- 发布时间:2008/11/22 18:41:00 -- 1、文件!!! 2、如結束箱号由开始箱号及箱数得到,则应用表达式! |
||||
-- 作者:blackzhu -- 发布时间:2008/11/24 9:37:00 -- 以下是引用don在2008-11-22 18:41:00的发言:
1、文件!!! 2、如結束箱号由开始箱号及箱数得到,则应用表达式! 前两日我也在考虑用表达式列,但开始箱号能做结束箱号做不出。
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2008/11/24 9:56:00 -- If e.DataCol.Name = "口岸" Then If e.NewValue Is Nothing Then e.datarow("开始箱号") = Nothing Else Dim dr As DataRow = DataTables("装箱单").Find("[订单号] = \'" & e.datarow("订单号") & "\' And [口岸] = \'" & e.NewValue & "\' And [结束箱号] > 0","_identify Desc") if dr IsNot Nothing Then e.datarow("开始箱号") = dr("结束箱号")+1 End if End if ElseIf e.DataCol.Name = "开始箱号" OrElse e.Datacol.Name = "结束箱号" Then If e.Datarow.IsNull("开始箱号") = False AndAlso e.Datarow.IsNull("结束箱号") = False Then e.DataRow("箱数") = e.Datarow("结束箱号") - e.DataRow("开始箱号") + 1 End If End if |
||||
-- 作者:blackzhu -- 发布时间:2008/11/24 10:30:00 -- 以下是引用狐狸爸爸在2008-11-24 9:56:00的发言:
If e.DataCol.Name = "口岸" Then If e.NewValue Is Nothing Then e.datarow("开始箱号") = Nothing Else Dim dr As DataRow = DataTables("装箱单").Find("[订单号] = \'" & e.datarow("订单号") & "\' And [口岸] = \'" & e.NewValue & "\' And [结束箱号] > 0","_identify Desc") if dr IsNot Nothing Then e.datarow("开始箱号") = dr("结束箱号")+1 End if End if ElseIf e.DataCol.Name = "开始箱号" OrElse e.Datacol.Name = "结束箱号" Then If e.Datarow.IsNull("开始箱号") = False AndAlso e.Datarow.IsNull("结束箱号") = False Then e.DataRow("箱数") = e.Datarow("结束箱号") - e.DataRow("开始箱号") + 1 End If End if 狐爸:结束箱号应该是开始箱号+箱数 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2008/11/24 10:40:00 -- 呵呵,原理一样,自行修改一下看看啊。 |