Foxtable(狐表)用户栏目专家坐堂 → [求助]求老师帮忙,自动编号的问题!


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

主题:[求助]求老师帮忙,自动编号的问题!

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
[求助]求老师帮忙,自动编号的问题!  发帖心情 Post By:2013/4/10 11:54:00 [显示全部帖子]

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 '如果单据编号前缀不符
                e.DataRow("编号") = Nothing
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(编号)","类别 = '" & lb & "'") '取得该类别的最大编号
                If max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(2,2)) + 1 '获得最大编号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("编号") = lb & Format(idx,"00")
            End If
        End If
End Select

我想让自动编号都是从XX01到XX31,就是当XX01-XX31满了后,再次输入XX,则又从XX01开始到XX31结束,一直接这样循环编号,请问大神代码该怎么样改?

 


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/10 12:02:00 [显示全部帖子]

以下是引用Bin在2013-4-10 11:57:00的发言:
前面XX不变? XX01-XX31 无限循环?  这个有难度. 得好好想想..

对,就是这样,在类别列输入XX,当编号XX01-XX31满了后,继续输入XX,编号又从XX01开始编到XX31结束,就这样循环!


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/10 12:16:00 [显示全部帖子]

以下是引用Bin在2013-4-10 12:12:00的发言:
为什么有这种需求 换个方案会不会好点?
非要这样的话.可以试试这个非常没效率的办法
声明2个变量,分别为:  上一编号数量, 下一编号数量
上1编号数量为 编号为01的行数
循环所有查找编号从02开始到31.
 查找编号为02的行数如果比01少 那么IDX就等于这个行数+1
 否则 上一编号数量赋值为 编号为02的行数 继续循环

老白啊,不懂,除了编号,那么有什么其他方法可以实现?


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/10 12:37:00 [显示全部帖子]

以下是引用Bin在2013-4-10 12:26:00的发言:

你的最初需求是什么.说来听听 也许能帮你想到别的实现办法.不一定要这样1-31循环.
[此贴子已经被作者于2013-4-10 12:26:40编辑过]

单位对300员工进行考核,每名员工每天固定有一条考核记录,在一般情况下,所有员工一个月31天的考核记录都是一样的,有时候部分生病或者请假员工的考核不一样,然后是员工某天有单独具体事务需要考核的事实的时候,再进行单独考核,月底要求把每名员工的考核记录打印成一张个人考核表,表上就要包括每天的固定考核记录和平时具体事务考核记录。

现在就是做了一般,生病,请假3个模板表,所有员工根据自己的情况导入对应模板表上的考核内容。

最后根据每月每名员工的考核得分转换为对应的工资。

头大啊,以前是在Excel上做了300个表实现的,现在用FOX做了300个表,启动慢的要死,现在把所有员工和在一个表上,就没发解决引用模板记录的问题了!

[此贴子已经被作者于2013-4-10 12:46:18编辑过]

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/10 13:18:00 [显示全部帖子]

以下是引用e-png在2013-4-10 13:10:00的发言:

你那个类别再加上员工编号就不会有重复了, 编码规则:类别+员工号+(最好有个符号"-"的两位数字,即: LByyy-01

然后, 这样判断一下就可以了吧:

If max > ""  and max.substring(max.indexof("-")+1) < 31  Then

[此贴子已经被作者于2013-4-10 13:11:09编辑过]

不行的,模板上31天记录的编号是统一的,如果加上员工编号,每个员工的类别就对不上模板了!


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/10 14:45:00 [显示全部帖子]

以下是引用不倒的翁在2013-4-10 14:30:00的发言:

你这样直接生成一张考勤表不行么??需要的考勤数据直接后台进行统计啊,然后报表连打。

1个人1张这不累死。。。

关键是要解决每个人每天同样内容的录入问题啊,每个人每天最少31条记录,复制张贴都累啊,还有就是每个人考核记录按时间排序的问题!然后考核表上还有员工个人的基本资料栏目,比如工种,联系电话等,家庭住址等

[此贴子已经被作者于2013-4-10 14:47:21编辑过]

 回到顶部