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


  共有1705人关注过本帖平板打印复制链接

主题:分组动态代码

帅哥哟,离线,有人找我吗?
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前,编码仍为原编码
请教老师:
     部门内的动态编码如何在上代码基础上修改
 


   
   



 回到顶部