Foxtable(狐表)用户栏目专家坐堂 → 编号


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

主题:编号

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
编号  发帖心情 Post By:2018/7/24 9:27:00 [只看该作者]

   
需求,复制订单编号为283的行,新增一行的编号变为283*001,再复制订单编号为283的行,新增的行编号为283*002,可下面的代码还是283*001,下面代码应该怎么改?

图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看
    Dim name As String = r("订单编号")

                 Dim max As String
                 Dim idx As Integer

                 max = Tables("报价单").Compute("Max(订单编号)","订单编号 = [_Identify] <> " & r("_Identify")) 
                 If max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(2,3)) + 1 '获得最大编号的后三位顺序号,并加1
                 Else
                     idx = 1 '否则顺序号等于1
                 End If
                 r("订单编号") = name & "*" & Format(idx,"000")
[此贴子已经被作者于2018/7/24 9:28:47编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/24 10:54:00 [只看该作者]


Dim name As String = r("订单编号")
Dim max As String
Dim idx As Integer
max = Tables("报价单").Compute("Max(订单编号)","订单编号 like '" & name.replace("*", "[*]") & "%' and [_Identify] <> " & r("_Identify"))
If max.Contains("*") Then '如果存在最大编号
    idx = CInt(max.split("*")(1)) + 1 '获得最大编号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
r("订单编号") = name & "*" & Format(idx,"000")

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/7/24 11:07:00 [只看该作者]

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2018.7.26.1
错误所在事件:窗口,报价记录,Button5,Click
详细错误信息:
未将对象引用设置到对象的实例。


有这个提示
[此贴子已经被作者于2018/7/24 11:07:43编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/24 11:17:00 [只看该作者]

Dim name As String = r("订单编号")
Dim max As String
Dim idx As Integer
max = Tables("报价单").Compute("Max(订单编号)","订单编号 like '" & name & "%' and [_Identify] <> " & r("_Identify"))
If max > "" andAlso max.Contains("*") Then '如果存在最大编号
    idx = CInt(max.split("*")(1)) + 1 '获得最大编号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
r("订单编号") = name & "*" & Format(idx,"000")


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/7/24 16:17:00 [只看该作者]

这样写定位到当前行哪一行?怎么之前当前行是被复制的行,现在是复制出来的新行
我是需要定位到复制出来的新行,将复制出来的其中一列单元值改写

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/24 16:20:00 [只看该作者]

以下是引用yetle在2018/7/24 16:17:00的发言:
这样写定位到当前行哪一行?怎么之前当前行是被复制的行,现在是复制出来的新行
我是需要定位到复制出来的新行,将复制出来的其中一列单元值改写

 

贴出你写的全部代码


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/7/24 16:25:00 [只看该作者]

我知道怎么做了
[此贴子已经被作者于2018/7/24 16:28:03编辑过]

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/8/16 11:34:00 [只看该作者]

复制新增这段代码怎么用着用着,1、原报价明细直接被替换成新的报价明细了,(之前是原报价明细不变,新的报价明细复制新增了)

Dim Result As DialogResult

If  Tables("报价单").Current("研发部_总监审核")="研发-总监" Then
Result = MessageBox.Show("确认要新增版本吗?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
 If Result = DialogResult.Yes  Then
      Dim r As Row = Tables("报价单").Current
      Dim dnew As Row = Tables("报价单").AddNew
      Dim name As String = r("订单编号")
      Dim max As String
      Dim idx As Integer

    If usna Like "业务*" Or usna="admin" Or usna="研发-祝炫丽" Then
      max = Tables("报价单").Compute("Max(订单编号)","订单编号 like '" & name & "%' and [_Identify] <> " & r("_Identify"))
       If max > "" AndAlso max.Contains("*") Then '如果存在最大编号
         idx = CInt(max.split("*")(1)) + 1 '获得最大编号的后三位顺序号,并加1
       Else
       idx = 1 '否则顺序号等于1
       End If

      For Each c As Col In Tables("报价单").Cols
          If c.Name <> "研发管理费" And c.Name <> "后勤管理费" And c.Name <> "制造费"   Then

             If c.Name = "订单编号" Then

                dnew(c.Name) = name
                ElseIf c.Name <> "_Identify" AndAlso c.name <> "业务跟单"  Then
                 dnew(c.Name) = r(c.Name)
             End If
          End If 
      Next
      dnew("订单编号") = name & "*" & Format(idx,"000")
      dnew("材料成本")=Tables("报价单.报价明细").Compute("Sum(金额)","订单编号='" & Tables("报价单").Current("订单编号") & "'")

      dnew("财务审核") = Nothing
      dnew("总经理审批") = Nothing
      dnew("订单量") = 10000
      dnew("业务跟单") = usna



      Dim drs As List(Of DataRow)
      drs = r.DataRow.GetChildRows("报价明细")
      Dim rc As DataRow
      For Each dr As DataRow In drs
         rc = dr.Clone
         rc("订单编号") = dnew("订单编号")
      Next
    End If

 Else
    MessageBox.show("你无此操作权限!")
 End If
Else
     MessageBox.show("未审核报价款式不能复制新增版本!")
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/16 11:42:00 [只看该作者]

上传具体出错的实例测试。

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/8/16 12:34:00 [只看该作者]

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

我在新项目里面做了测试了,点复制新增后,确实旧的报价明细没有了
[此贴子已经被作者于2018/8/16 12:35:17编辑过]

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