Foxtable(狐表)用户栏目专家坐堂 → 在:类别代码,发生变化时,有的代码正常生成编号 ,有的不能,提示错误


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

主题:在:类别代码,发生变化时,有的代码正常生成编号 ,有的不能,提示错误

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
在:类别代码,发生变化时,有的代码正常生成编号 ,有的不能,提示错误  发帖心情 Post By:2016/7/17 22:09:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:uc截图20160717215825.jpg
图片点击可在新窗口打开查看
在:类别代码,发生变化时,有的代码正常生成编号 ,有
图片点击可在新窗口打开查看此主题相关图片如下:222.jpg
图片点击可在新窗口打开查看
的不能,提示错误


发现个问题,我手动把第一个编号 增加上,第二个就能自动生成了。 
[此贴子已经被作者于2016/7/17 22:22:07编辑过]

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/7/18 9:50:00 [显示全部帖子]

if e.datarow.isnull("类别代码")=false then

如果这样写,代码不执行编号。

我写成:if e.datarow.isnull("类别代码")=true or  e.datarow.isnull("定额编码")=false then
问题依旧

奇怪 的是,有的能生成,有的要报错。
[此贴子已经被作者于2016/7/18 9:51:17编辑过]

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/7/18 14:59:00 [显示全部帖子]

还是这样的情况,可能 问题不在这儿。

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/7/18 15:45:00 [显示全部帖子]

.NET Framework 版本:2.0.50727.5483
Foxtable 版本:2016.6.26.1
错误所在事件:表,材料,DataColChanged
详细错误信息:
调用的目标发生了异常。
索引和长度必须引用该字符串内的位置。
参数名: length



我做完例子后,发现,正常使用。说明是我数据库MDB文件的数据问题。但现在不知道是哪里 的问题?怎么解决?

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/7/18 16:17:00 [显示全部帖子]

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

[此贴子已经被作者于2016/7/18 16:18:42编辑过]

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/7/18 16:19:00 [显示全部帖子]

测试时,测:给排水-燃气管道
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160718161810.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/7/18 17:47:00 [显示全部帖子]

我要怎么改这个代码呢?

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/7/20 16:56:00 [显示全部帖子]

'自动获取类别代码并生成机具编号
Sel ect e.DataCol.Name
    Case "类别代码"
        If  e.DataRow.IsNull("定额编码")=False Or e.DataRow.IsNull("类别代码")  Then
            Return
        Else
            If e.DataRow.IsNull("类别代码")=False Then
                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 定额编码 like '" & lb & "%' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别代码的最大机具编号
                    If max > "" Then '如果存在最大机具编号
                        idx = CInt(max.Substring(2,5))+ 1 'CInt(max.Substring(2,5)) 获得最大机具编号的后三位顺序号,并加1
                    Else 
                        idx = 1 '否则顺序号等于1
                    End If
                    e.DataRow("定额编码") = lb & Format(idx,"00000")
                'End If
            End If
        End If
End Select


这样就可以了。满足我的使用了。

 回到顶部