Private Sub CustomNoCheck()
'编码:钱坤
'日期:2014-01-21
'功能:检测客户是否已经下过订单号
Dim strSQL As String
Dim Rs As ADODB.Recordset
Dim lngFBillNoindex As Long '订单编号索引,检测时不包含本单,这样在检测时,不管是否保存,都不会检测本单
Dim strFBillNo As String '订单编号
Dim lngFCustIDindex As Long '客户字段的索引
Dim strFCustIDnumber As String '客户编码
Dim lngFItemIDindex As Long '物料索引
Dim strFItemIDNumber As String '物料编码
Dim lngFEntrySelfS0163index As Long '客户订单编号索引
Dim strFEntrySelfS0163 As String '客户订单编号
Dim oBillData As Object '中间层组件
Dim dicNo As New KFO.Dictionary
Dim strCustomNoList As String
Dim strMsg As String
Dim I, J, K As Long
On Error GoTo err_handle:
Set oBillData = CreateObject("BIllDataAccess.GetData")
'---------取索引-----------------------
lngFBillNoindex = GetFieldColIndex("FBillNo", True)
lngFCustIDindex = GetFieldColIndex("FCustID", True)
lngFItemIDindex = GetFieldColIndex("FItemID", False)
lngFEntrySelfS0163index = GetFieldColIndex("FEntrySelfS0163", False)
strFCustIDnumber = m_BillTransfer.GetHeadNumber(lngFCustIDindex) '取客户编码
If strFCustIDnumber = "" Then
MsgBox "请输入购货单位", vbOKOnly, "汇顶科技"
Exit Sub
End If
strFBillNo = m_BillTransfer.GetHeadText(lngFBillNoindex) '取单据编号
'组合客户订单号
I = 1
strFItemIDNumber = m_BillTransfer.GetGridText(I, lngFItemIDindex): strCustomNoList = ""
Do While strFItemIDNumber <> ""
strFEntrySelfS0163 = Trim(m_BillTransfer.GetGridText(I, lngFEntrySelfS0163index))
If Not dicNo.Lookup(strFEntrySelfS0163) And strFEntrySelfS0163 <> "" Then '不存在
dicNo(strFEntrySelfS0163) = strFEntrySelfS0163
If strCustomNoList = "" Then
strCustomNoList = "'" & strFEntrySelfS0163 & "'"
Else
strCustomNoList = strCustomNoList & ",'" & strFEntrySelfS0163 & "'"
End If
End If
I = I + 1: strFItemIDNumber = m_BillTransfer.GetGridText(I, lngFItemIDindex)
Loop
strMsg = ""
If strCustomNoList <> "" Then
strCustomNoList = "(" & strCustomNoList & ")"
strSQL = "select distinct a.FBillNo,b.FEntrySelfS0163 from SEOrder a inner join SEOrderEntry b on a.FInterID =b.FInterID left join t_Organization c on a.FCustID=c.fitemid" _
& " where b.FEntrySelfS0163 in " & strCustomNoList & " and a.fbillno<>'" & strFBillNo & "' and c.fnumber='" & strFCustIDnumber & "'"
Set Rs = oBillData.ExecuteSQL(MMTS.PropsString, strSQL)
If Not Rs.EOF Then
Do While Not Rs.EOF
If strMsg = "" Then
strMsg = Rs.Fields("FEntrySelfS0163") & "(订单编号:" & Rs.Fields("fbillno") & ")"
Else
strMsg = strMsg & vbCrLf & Rs.Fields("FEntrySelfS0163") & "(订单编号:" & Rs.Fields("fbillno") & ")"
End If
Rs.MoveNext
Loop
MsgBox "存在重复客户订单号:" & vbCrLf & strMsg, vbOKOnly, "汇顶科技"
Else
MsgBox "未检测到重复客户订单号", vbOKOnly, "汇顶科技"
End If
End If
Exit Sub
err_handle:
MsgBox Err.Description & vbCrLf & "Position:CustomNoCheck"
End Sub