Foxtable(狐表)用户栏目专家坐堂 → 表关联问题


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

主题:表关联问题

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


加好友 发短信
等级:婴狐 帖子:6 积分:137 威望:0 精华:0 注册:2015/6/1 0:57:00
表关联问题  发帖心情 Post By:2015/6/1 20:02:00 [只看该作者]

主表有字段“”订单编号”,采用表达式自动编号,“XJ–”为前缀加三位数递增,然后关联子表时,主表找不到订单编号这个字段?怎么办?求帮助

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/1 20:40:00 [只看该作者]

 表达式列,不能作为关联列。

 

 你把编号列改成数据列,然后用代码生成吧,DataRowAdding事件

 

Dim bh As String="KH"
Dim max As String
Dim idx As Integer
max = DataTables("表A").Compute("Max(第一列)","第一列 like '" & bh & "%'")
If max > "" Then '如果存在最大销售单号
    idx = CInt(max.Substring(bh.Length+1)) + 1 '获得最大销售单号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("第一列") = bh & Format(idx,"000")


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


加好友 发短信
等级:婴狐 帖子:6 积分:137 威望:0 精华:0 注册:2015/6/1 0:57:00
  发帖心情 Post By:2015/7/5 16:46:00 [只看该作者]

老师。按这个方法,我今天又碰到问题了。编号一直到XJ-100,第101个,又变成XJ-001了!!!!没有继续下去101.又从001开始了!!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/5 16:58:00 [只看该作者]

Dim bh As String="KH"
Dim max As String
Dim idx As Integer
max = DataTables("表A").Compute("Max(第一列)","第一列 like '" & bh & "%'")
If max > "" Then '如果存在最大销售单号
    idx = CInt(max.Substring(bh.Length)) + 1 '获得最大销售单号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("第一列") = bh & Format(idx,"000")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/5 16:58:00 [只看该作者]

 idx = CInt(max.Substring(bh.Length)) + 1 '获得最大销售单号的后三位顺序号,并加1

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


加好友 发短信
等级:婴狐 帖子:6 积分:137 威望:0 精华:0 注册:2015/6/1 0:57:00
  发帖心情 Post By:2015/7/7 19:05:00 [只看该作者]

老师的方案还是有问题

不过我改了下

在max.substring(bh.length)-2)这里加了-2就OK了

不过我个人就有点搞混乱了。不明白-2是什么意思。刚-2是我看结果加上的~~有点乱了~

 

Dim bh As String="XJ"
Dim max As String
Dim idx As Integer
max = DataTables("T订单资料").Compute("Max(订单ID)","订单ID like '" & bh & "%'")
If max > "" Then '如果存在最大销售单号
    idx = CInt(max.Substring(bh.Length)-2) + 1 '获得最大销售单号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("订单ID") = bh & Format(idx,"000")


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


加好友 发短信
等级:婴狐 帖子:6 积分:137 威望:0 精华:0 注册:2015/6/1 0:57:00
  发帖心情 Post By:2015/7/7 19:10:00 [只看该作者]

我还是上实例吧。。说不清


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/7 19:12:00 [只看该作者]

 代码应该是没问题的,你把订单ID全部删除,然后再测试。

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


加好友 发短信
等级:婴狐 帖子:6 积分:137 威望:0 精华:0 注册:2015/6/1 0:57:00
  发帖心情 Post By:2015/7/7 19:21:00 [只看该作者]

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


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


加好友 发短信
等级:婴狐 帖子:6 积分:137 威望:0 精华:0 注册:2015/6/1 0:57:00
  发帖心情 Post By:2015/7/7 19:24:00 [只看该作者]

另外。老师。有一点不明白。我不管怎么样,我的日期啊,总是带着年份的。能否去掉年份?
图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

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