现在使用了OPENQQ进行单号生成管理,如果重置日期、单据类型、类型其中任意一列,都会造成所有单号重新生成
如何锁死这三列不能进行重置呢
不要给单号过于复杂的规则,希望通过单号去识别太多信息,其实是一个很无厘头的做法。
一是单号太长,一个正常的使用者几乎是不可能通过单号去沟通的
这就象身份证号长达18位,平常在沟通时,有谁会说你去把那个身份证号是………………的人给我叫来,肯定是你把张三给我叫来啊
例如一个单号的信息包括日期、仓库编号(假设3个仓)、4种类型、还要加3位流水号,这个编号已经非常长了,完全没有必要。
而且培训成本很高啊,光让大家记住单号的规则就已经很费事了,而且各种各样的单
不允许重置,把权限不开放出来就可以了呀
重置前判断一下if 表列名 <>(日期、单据类型、类型)then
重置
end if
重置列这种功能正常不应该给普通用户使用的。因为一般是事件代码更改后,希望重置列处理一下旧数据。而发布后的程序是无法编辑事件代码的,也就不存在处理旧数据这种情况。
If QQClient.Ready = False Then
PopMessage("QQClient未启动,无法生成编号!","提示",PopIconEnum.Infomation,5)
Else
Dim bh As String = e.DataRow("工程代码") & "-" & Format(e.DataRow("制单日期"),"yyyyMM")
If e.DataRow("编号").StartsWith(bh) = False '如果编号的前6位不符
Dim rt As String = QQClient.SendWait(":g" & bh & "g:")
Dim id As Integer
If rt > "" Then
……
End If
1、
重置列这种功能正常不应该给普通用户使用的。因为一般是事件代码更改后,希望重置列处理一下旧数据。而发布后的程序是无法编辑事件代码的,也就不存在处理旧数据这种情况。 这个也有道理,一重置就会把所有历史数据都修改了
|
2、这个写也是不能起到判断的作用
If CurrentTable.cols(CurrentTable.ColSel).name <> "日期" Or CurrentTable.cols(CurrentTable.ColSel).name <> "单据类型" Or CurrentTable.cols(CurrentTable.ColSel).name <> "类型"Or CurrentTable.cols(CurrentTable.ColSel).name <> "类别"Or CurrentTable.cols(CurrentTable.ColSel).name <> "单据类别"Then
If CurrentTable IsNot Nothing AndAlso CurrentTable.ColSel >= 0 Then
Dim dc As DataCol = CurrentTable.Cols(CurrentTable.ColSel).DataCol
dc.RaiseDataColchanged()
End If
End If