Foxtable(狐表)用户栏目专家坐堂 → [求助]按领用人来自动分配收据号码【已解决】


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

主题:[求助]按领用人来自动分配收据号码【已解决】

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
[求助]按领用人来自动分配收据号码【已解决】  发帖心情 Post By:2013/4/15 11:27:00 [只看该作者]

[求助]按领用人来自动分配收据号码【已解决】

领取到号段后在号段管理表中输入开始号段和结束号段,接下来什么也不用管,增加行时会自动判断的。
如果增加一个【领用人】判断,代码该怎么写?

此主题相关图片如下:2013-04-15_11-13-20.png
按此在新窗口浏览图片
例如:领用人:开发者,领用号段为:1000001-1000100,开发者登陆后,新增行自动编号就会从
100000开始;
            领用人:管理员,领用号段为:2000001-2000100,开发者登陆后,新增行自动编号就会从200000开始;


请 czy 版主帮忙在以下表事件基础上修改一下,谢谢!

表事件

 

表A_BeforeAddDataRow

 

Dim dr,dr1 As DataRow

dr = DataTables("号段管理").Find("[启用] = True And [停止] = False")

dr1 = DataTables("号段管理").Find("[启用] = False And [停止] = False")

if dr is Nothing Then

    if dr1 IsNot Nothing Then

        dr1("启用") = true

    Else

        e.Cancel = True

        MessageBox.Show("没有可用号段!","提示")

        Return

    End If

End If

 

表A_DataRowAdded

 

Dim dr As DataRow = e.DataRow

Dim dr1,dr2 As DataRow

dr1 = DataTables("号段管理").Find("[启用] = True And [停止] = False")

dr2 = DataTables("表A").Find("[编号] = '" & dr1("开始号段") & "'")

if dr2 is Nothing Then

    dr("编号") = dr1("开始号段")

Else

    dr("编号") = Format(e.DataTable.Compute("Max(编号)") + 1,"0000000")

    if dr("编号") = dr1("结束号段")

        dr1("停止") = true

    End If

End If



 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目19.table


[此贴子已经被作者于2013-4-15 22:24:12编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/15 11:37:00 [只看该作者]

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


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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/4/15 11:58:00 [只看该作者]

谢谢 Bin ,用2013版修改的,下午安装上2013版测试一下,谢谢!

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/4/15 15:03:00 [只看该作者]

表A_BeforeAddDataRow

 

Dim dr,dr1 As DataRow

dr = DataTables("号段管理").Find("[领用人] = '" & User.Name & "' and [启用] = True And [停止] = False")

dr1 = DataTables("号段管理").Find("[领用人] = '" & User.Name & "' and [启用] = False And [停止] = False")

If dr Is Nothing Then

    If dr1 IsNot Nothing Then

        dr1("启用") = True

    Else

        e.Cancel = True

        MessageBox.Show("没有可用号段!","提示")

        Return

    End If

End If

 

表A_DataRowAdded

 

Dim dr As DataRow = e.DataRow

Dim dr1,dr2 As DataRow

dr1 = DataTables("号段管理").Find("[领用人] = '" & User.Name & "' and [启用] = True And [停止] = False")

dr2 = DataTables("表A").Find("[编号] = '" & dr1("开始号段") & "'")

If dr2 Is Nothing Then

    dr("编号") = dr1("开始号段")

Else

    dr("编号") = Format(e.DataTable.Compute("Max(编号)") + 1,"0000000")

    If dr("编号") = dr1("结束号段")

        dr1("停止") = True

    End If

End If


以上代码可以按领用号码自动分配,但还是不能按领用人来进行分配,高手们,帮忙修改一下,变成可以按领用人来进行分配的代码吧!


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/15 15:10:00 [只看该作者]

什么意思? 上面代码不就是根据领用人进行分配了吗?

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/4/15 15:19:00 [只看该作者]

例如:领用人:开发者,领用号段为:1000001-1000100,开发者登陆后,新增行自动编号就会从100000开始;
            领用人:管理员,领用号段为:2000001-2000100,开发者登陆后,新增行自动编号就会从200000开始;

用以上代码现在是:管理员登陆,新增行自动编号应该就会从200000开始;但实际还是100000开始;

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/15 15:22:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130415152200.png
图片点击可在新窗口打开查看
刚测试了.没问题的啊.

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/4/15 17:55:00 [只看该作者]

谢谢 Bin 帮忙修改的代码,已经解决了。是我自己在有个逻辑条件写错了,现在改过来就可以了,再次谢谢 Bin

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/4/15 18:11:00 [只看该作者]

用以上代码现在是:

         领用人:开发者,登陆,领用号段为:1000001-1000100,开发者登陆后,新增行自动编号就会从100000开始;-----正常
         领用人:管理员,登陆,领用号段为:2000001-2000100,开发者登陆后,新增行自动编号就会从200000开始;-----正常
         领用人:开发者,登陆,领用号段为:1000001-1000100,开发者登陆后,新增行自动编号就会从200000开始;应该是自动编号就会从100000开始;-----不正常

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/4/15 20:51:00 [只看该作者]

dr("编号") = Format(e.DataTable.Compute("Max(编号)") + 1,"0000000")

现在主要是获取最大值时,也需要改成按【领用人】区分,判断当前登录账号最大值是什么?请高手帮忙修改一下代码?

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