Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共13 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:箱号的代码

1楼
blackzhu 发表于:2008/11/22 11:20:00
我有一张订单表,有两个口岸,每一个口岸的第一箱的箱号全部从1开始。每增加一箱,开始箱号是结束箱号+1,结束箱号+箱数,请帮忙看看这个代码怎么写?

 如图所示
图片点击可在新窗口打开查看此主题相关图片如下:16.jpg
图片点击可在新窗口打开查看
2楼
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编辑过]
3楼
czy 发表于:2008/11/22 13:04:00
记了说明,楼上的代码放到datacolchangd事件中。
4楼
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版主的回复,但我测试了一下没有反映。还有结束箱号的代码没有出来,结束箱号:起始行是等于起始行的箱数,第二行的结束箱号是等于上一行+第二行的箱数,以此类推。请版主看看我的开始箱号和结束箱号的变化。而且新口岸新单子全部是从第一箱开始的。谢谢。

5楼
blackzhu 发表于:2008/11/22 17:43:00
  我想有变化的列应该是订单号,口岸和箱数,因为每增加一箱,开始箱号和结束箱号随之增加上去的。
6楼
don 发表于:2008/11/22 18:41:00
1、文件!!!
2、如結束箱号由开始箱号及箱数得到,则应用表达式!
7楼
blackzhu 发表于:2008/11/24 9:37:00
以下是引用don在2008-11-22 18:41:00的发言:
1、文件!!!
2、如結束箱号由开始箱号及箱数得到,则应用表达式!

  前两日我也在考虑用表达式列,但开始箱号能做结束箱号做不出。
开始箱号不管是同一订单或者同一订单里有两个口岸都是每一口岸或者每一订单的开始箱从第一箱开始。结束箱号都是从开始箱号+箱数。看附件中开始和结束箱号的编号变化,开始箱号的编号是跟订单和口岸的变化。

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

8楼
狐狸爸爸 发表于: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

9楼
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

  狐爸:结束箱号应该是开始箱号+箱数

10楼
狐狸爸爸 发表于:2008/11/24 10:40:00
呵呵,原理一样,自行修改一下看看啊。
共13 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03613 s, 3 queries.