Foxtable(狐表)用户栏目专家坐堂 → 关于网络编号的问题


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

主题:关于网络编号的问题

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/11/3 11:37:00 [只看该作者]

Dim dr As DataRow = e.DataRow
Dim
pf As String
If
dr.RowState <> DataRowState.Added Then '如果不是新增行
   
Return '那么返回
ElseIf
dr.IsNull("日期") Then '如果没有输入日期
    e.Cancel =
True '取消保存此行
    MessageBox.Show(
"必须输入日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
Else

    pf = Format(dr(
"日期"),"yyMM") '否则获得编号的前缀,两位年,两位月
End
If
Dim
cmd1 As New SQLCommand
Dim
cmd2 As New SQLCommand
Dim
Key As Integer
cmd1.ConnectionName =
"编号" '设置数据源名称
cmd2.ConnectionName =
"编号"
cmd1.commandText =
"Select Count(*) From [编号] Where [前缀] = '" & pf & "'"
If
cmd1.ExecuteScalar = 0 Then '如果编号表不存在前缀的行,那么增加一行
   
cmd1.commandtext = "Insert Into 编号 (前缀, 顺序号) Values('" & pf & "',1)"
   
cmd1.ExecuteNonQuery
End If

cmd1
.commandText = "Select [顺序号] From [编号] Where [前缀] = '" & pf & "'"
Do
    Key
= cmd1.ExecuteScalar() '从后台获得顺序号
    cmd2
.commandText = "Update [编号] Set [顺序号] = " & (Key + 1) & " Where [顺序号] = " & Key & " And [前缀] = '" & pf & "'"
    If
cmd2.ExecuteNonQuery() > 0 Then '更新顺序号
        Exit Do
'更新成功则退出循环
    End If
Loop

e.
DataRow("编号") = pf & "-" & Format(Key,"0000")


加了表名列后怎么修改这个代码?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/11/3 11:42:00 [只看该作者]

我看看其它,目前成功.

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/3 11:44:00 [只看该作者]

例如:
cmd1.commandText = "Select [顺序号] From [编号] Where [前缀] = '" & pf & "'"
 
应该改为:
 
cmd1.commandText = "Select [顺序号] From [编号] Where [前缀] = '" & pf & "' And [表名] = '订单'"

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/11/3 11:44:00 [只看该作者]

YES

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/11/4 8:14:00 [只看该作者]

老大问一个问题,这个昨日测试非常好,但是我在这个表做的窗口,为独立窗口.我在另外一个表打开这个窗口,按新增

Static Index As Integer = 99999
e.DataRow("编号") = Format(Date.Today(),"yyMM") & "-" & Index
Index = Index - 1

这个代码不起做用,必须回到那个表新增才能打开?是不是把代码要做到新增按钮中?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/4 8:16:00 [只看该作者]

你肯定那里搞错了,事件代码,不管你从那里增加行,都会触发事件。

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/11/4 8:31:00 [只看该作者]

我再测试一下
估计是表头的问题.表头应该在保存时产生.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/11/4 9:13:00 [只看该作者]

Dim dr1 As DataRow = DataTables("单号定义").Find( "表名 ='" & pd & "'")
If dr1 IsNot Nothing Then
    e.DataRow("系统单号") = dr1("单号定义")  & pf & Format(Key,"0000")
End If

代码是在这儿出的问题,新增已经没有问题了.在另外打开窗口按保存按钮时只会保存当前新增产生的临时号码,回到当前表不管时表新增还是窗口新增生产的号码都没有问题.  我应该怎么改比较好?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/4 9:19:00 [只看该作者]

我无法理解你的问题,你用foxtable自带的实例,再别的表新建一个窗口,加入一个按钮,按钮代码:

 

Tables("表名").AddNew()

Tables("表名").Save()


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/11/4 9:39:00 [只看该作者]

我也不明白啊.按道理一个正常的做法而已.

 回到顶部
总数 37 上一页 1 2 3 4 下一页