Foxtable(狐表)用户栏目专家坐堂 → [求助]生成编号的问题


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

主题:[求助]生成编号的问题

帅哥哟,离线,有人找我吗?
狐狸爸爸
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251397 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/1/10 10:55:00 [只看该作者]

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


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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2014/1/10 10:59:00 [只看该作者]

bin老师,还是有一点不是很明白,我的表中并没有部门的前缀列,就是LS,GH,WL,RD这些列,我应该怎么去做呢?像帮助中的“按类别编号”那个例子还有类别,我要怎么去取这两位的前缀啊?

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140110105717.png
图片点击可在新窗口打开查看
求老师指点。。。

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


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

没有前缀是不行的,你也可以取你部门列的拼音缩写为前缀.

狐爸不是给你做了例子吗,你看一下.

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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2014/1/10 11:07:00 [只看该作者]

我的前缀是在另一个部门表中,那里面是有前缀的,但是如果两个部门缩写重名了,就必须得改掉一个部门的缩写了,这个时候拼音就不行了啊,是否可以通过那个表的部门简码去关联过来呢?

部门表:

部门简码 部门名称

LS         磷酸车间

RD        热电车间

GH        供货车间

WL        物流车间


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


加好友 发短信
等级:童狐 帖子:254 积分:1963 威望:0 精华:0 注册:2013/2/6 19:09:00
  发帖心情 Post By:2014/1/10 11:07:00 [只看该作者]

Compute("Max(编号)") 后加个条件判断

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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2014/1/10 11:14:00 [只看该作者]

能否在狐爸做的例子基础上,加上部门表后写个例子给我看看呢?不是很清楚应该怎么写这个条件。。。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251397 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/1/10 11:15:00 [只看该作者]

Select e.DataCol.Name
     Case  "部门"
          If e.DataRow.IsNull("部门") Then
             e.DataRow("编号") = Nothing
         Else
             Dim nr As  DataRow = DataTables("那个表").find("部门 = '" & e.DataRow("部门") & "'")
             Dim lb As String = nr("部门编号")
             If e.DataRow("编号").StartsWith(lb) = False  '如果单据编号前缀不符
                Dim max  As  String
                 Dim idx  As  Integer
                max = e.DataTable.Compute("Max(编号)","部门 = '" & e.DataRow("部门")  & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
                If max > ""  Then  '如果存在最大编号
                    idx = CInt(max.Substring(2,3)) + 1  '获得最大编号的后三位顺序号,并加1
                 Else
                     idx = 1  '否则顺序号等于1
                 End  If
                 e.DataRow("编号") = lb & Format(idx,"000")
             End If
         End  If
 End  Select

 

知识点:

http://www.foxtable.com/help/topics/0396.htm

 

 


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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2014/1/10 11:39:00 [只看该作者]

谢谢Bin和狐爸的帮助,问题已经得到解决。不甚感激!!!

 回到顶部
总数 18 上一页 1 2