Foxtable(狐表)用户栏目专家坐堂 → 分组动态代码


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

主题:分组动态代码

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


加好友 发短信
等级:小狐 帖子:394 积分:5997 威望:0 精华:0 注册:2015/2/17 10:18:00
分组动态代码  发帖心情 Post By:2015/7/2 14:38:00 [只看该作者]

表A: 姓名,部门,编码 



Select e.DataCol.Name
   Case "部门"
      If e.DataRow.IsNull("部门") Then
         e.DataRow("编码") = Nothing
    Else
       Dim lb As String = e.DataRow("部门")
            If e.DataRow("编码").StartsWith(lb) = False 
               Dim max As String
              Dim idx As Integer
             max = e.DataTable.Compute("Max(编码)","部门 = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify"))
            If max > "" Then 
               idx = CInt(max.Substring(2,3)) + 1 
          Else
           idx = 1 
        End If
       e.DataRow("编码") = lb & Format(idx,"000")
        End If
      End If
End Select

按以上代码,存在如下问题:
   1.删除行后,部门内的其他人员编码还是未随之修改,这样部门内的编码不连续;
      如3个人在办公室,编码为:ZH001,ZH002,ZH003, 删除ZH002后,另2个编码仍为原编码(ZH001,ZH003)。
   2.行的位置调整后,该行在部门内的编码未改。
      如3人编码依次分别为ZH001,ZH002,ZH003,如将ZH003移到ZH002前,编码仍为原编码
请教老师:
     部门内的动态编码如何在上代码基础上修改
 


   
   



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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/2 14:43:00 [只看该作者]

1、编码,是唯一的依据,是不应该随意变动的,只要确定了,就不要变;

 

2、如果你需要重新编码,就删除全部,然后重置列。


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


加好友 发短信
等级:小狐 帖子:394 积分:5997 威望:0 精华:0 注册:2015/2/17 10:18:00
  发帖心情 Post By:2015/7/2 14:47:00 [只看该作者]

好的,谢谢了!

 回到顶部