协议供货查询记录
Dim FindStartROW, strSqlSource
Sub DBEngine_EventLoad(strInitData, strInitType)
CurDept = DBEngine.WebFunction("GetCurDepartment", "", "")
If CurDept = "采购单位" OR CurDept = "供货商" Then
BtnTZ.Enabled = False
End If
'strInitData 是XML的INPUT
'strInitData 调用格式如下:
' <Input>
' <TableName>数据表名称</TableName>
' <FieldNames>显示的字段名称</FieldNames>
' <SQLWhere>显示的条件</SQLWhere>"
' </Input>
' 或者
' <Input>
' <TableName>数据表名称</TableName>
' <SQL>SQL语句</SQL>"
' </Input>
'例如:
' strInit = "<Input><TableName>BillNo</TableName></Input>"
' strRet= DBEngine.OpenForm("通用录入",strInit,"")
'strInitData = "<Input><TableName>主从_采购从表</TableName><FieldNames>单据编号,序号</FieldNames><SQLWhere></SQLWhere></Input>"
'MainGrid.SetTableXML(strRet)
'MainGrid.SetEditable(false)'不可编辑
'MainGrid.SetListMode(true)'列表模式
MainGrid.UpdateFromDataSourceUrl(strInitData)
MainGrid.AutoSizeColumns()
FindStartRow = 0
cmbField.Text = "型号"
End Sub
Sub BtnOk_Click()
Dim i ,RowIndex,Ret
RowIndex = MainGrid.GetCurRecordIndex
DBEngine.strReturnValue = MainGrid.GetRowDataXML(RowIndex)
DBEngine.CloseWindow(1)
End Sub
Sub BtnClose_Click()
DBEngine.CloseWindow(0)
End Sub
Sub btnFind_Click()
'? 一个问号表示一个通配符号
'* 代表所有前置
'
Dim FindPosStar, FindChar, FindText, RowCur, RowCount, lsFieldName
FindText= txtFindText.Text
RowCur = MainGrid.GetCurRecordIndex
RowCount = MainGrid.GetRecordCount - 1
lsFieldName = cmbField.Text
FindPosStar = 1
FindChar = FindText
RowHeadHeight = maingrid.GetFixedRowCount
If CheckFindType.Value Then
For i = FindStartRow To RowCount
If MainGrid.GetFieldStringValue(lsFieldName, i) = FindChar Then
FindStartRow = i + 1
MainGrid.SetFocusRow (i + RowHeadHeight) ' 加上标题行所占的行数
Exit Sub
End If
Next
Else
For i = FindStartRow To RowCount
If InStr(1, LCase(MainGrid.GetFieldStringValue(lsFieldName, i)), LCase(FindChar)) > 0 Then
FindStartRow = i + 1
MainGrid.SetFocusRow (i + RowHeadHeight) ' 加上标题行所占的行数
Exit Sub
End If
Next
End If
DBEngine.MsgBox("没有找到指定的记录")
FindStartRow = 0
End Sub
Sub txtFindText_Change()
FindStartRow = 0
End Sub
Sub btnFirst_Click()
MainGrid.SetFocusRow (maingrid.GetFixedRowCount )
End Sub
Sub btnLast_Click()
MainGrid.SetFocusRow (maingrid.GetFixedRowCount + mainGrid.GetRecordCount-1)
End Sub
Sub btnNext_Click()
MainGrid.SetFocusRow (maingrid.GetFixedRowCount + mainGrid.GetCurRecordIndex + 1)
End Sub
Sub btnPre_Click()
MainGrid.SetFocusRow (maingrid.GetFixedRowCount + mainGrid.GetCurRecordIndex - 1)
End Sub
Sub txtFindText_EventKeyPress(KeyCode)
If KeyCode = 13 Then
Call btnFind_Click
End If
End Sub
Sub MainGrid_EventWebFunction(strFunName, strInputXML, strOutputXML)
MainGrid.SetWebFunReturnValue(DBEngine.WebFunction(strFunName, strInputXML, strOutputXML))
End Sub
Sub btnOutput_Click()
RowIndex = MainGrid.GetCurRecordIndex
If RowIndex = -1 then
Msgbox "没有数据可导出!"
exit sub
Else
MainGrid.ExportGrid("")
End If
End Sub
'-----------------------------------------------------------------------------------------------
'注释:
Sub BtnPrint_Click()
RowIndex = MainGrid.GetCurRecordIndex
If RowIndex = -1 then
Msgbox "没有数据可打印!"
exit sub
Else
strsql = "SELECT ReportName AS 报表名称,'区域报表' AS 报表格式 FROM sysORepTemplate WHERE TableName='协议供货查询记录表' "
strRet = DBEngine.WebFunction("SqlQuery", strsql , "")
ReportName = DBEngine.GetElemData(strRet, "报表名称")
strType = "<Int><SQLWhere>" + strSqlWhere + "</SQLWhere></Int>"
strInit = "<Int><ReportName>货物比较表</ReportName></Int>"
DBEngine.OpenForm "区域式报表窗体" ,strInit,strType
End If
End Sub
'注释:
Sub BtnTZ_Click()
nRowIndex = MainGrid.GetCurRowIndex()
RowHeadHeight=MainGrid.GetFixedRowCount
For i = 0 To MainGrid.GetRecordCount - 1
If MainGrid.IsRowSelected(i + RowHeadHeight) then
if lstrKey = "" THEN
lstrKey ="'"+ MainGrid.GetFieldStringValue("编号",i) +"'"
ELSE
lstrKey =lstrKey & "," & "'"+ MainGrid.GetFieldStringValue("编号",i) +"'"
END IF
End If
Next
If lstrKey="" then
MsgBox "没有选择供货商品!"
exit sub
end If
strSql = "Select Distinct 协议供应商 From 协议供货查询记录表 Where 编号 in ("+lstrKey+")"
strRet = DBEngine.WebFunction("SqlQuery",strSql,"")
strError = DBEngine.GetElemData(strRet, "Error")
If strError<>"" Then
Msgbox "SQL语句执行失败:" + strError
exit Sub
End If
SupplierNum = DBEngine.GetElemData(strRet,"RowNum")
If SupplierNum > 1 Then
DBEngine.Msgbox "一次不能生成多个供应商的供货通知单,请重新选择!"
Exit Sub
Else
Supplier = DBEngine.GetElemData(strRet,"协议供应商")
End If
'检索出ID的最大值
strMax = "Select Max(字号) AS A From 采购协议供货通知"
strRet = DBEngine.WebFunction("SqlQuery",strMax,"")
strError = DBEngine.GetElemData(strRet, "Error")
If strError<>"" Then
Msgbox "SQL语句执行失败:" + strError
exit Sub
End If
'取出最大ID号
MaxID = Cstr(CLng(DBEngine.GetElemData(strRet,"A"))+1)
MaxIDNum = Len(MaxID)
If MaxIDNum < 4 Then
For i = 1 To 4-MaxIDNum
strCode = Cstr(Year(Date())) + Cstr(0)
Next
End If
MaxIDNum = strCode + Cstr(MaxID)
'在“采购协议供货通知”中插入字号
CurDate = Cstr(Date())
strInsert = "Insert 采购协议供货通知 (字号) Values('"+MaxIDNum+"')"
strRet = DBEngine.WebFunction("SqlQuery",strInsert,"")
strError = DBEngine.GetElemData(strRet, "Error")
If strError<>"" Then
Msgbox "SQL语句执行失败:" + strError
exit Sub
End If
'检索出ID的最大值
strMax = "Select Max(ID) AS A From 采购协议供货通知"
strRet = DBEngine.WebFunction("SqlQuery",strMax,"")
strError = DBEngine.GetElemData(strRet, "Error")
If strError<>"" Then
Msgbox "SQL语句执行失败:" + strError
exit Sub
End If
'取出最大ID号
MaxID = DBEngine.GetElemData(strRet,"A")
'再插入进子表“采购协议供货通知_明细”值
strInsert = "Insert 采购协议供货通知_明细 (ID,编号,商品名称,品牌,型号,主要配置,单价)"&_
" Select '"+MaxID+"' AS ID,编号,商品名称,品牌,型号,具体配置,Convert(Float,实际供货价)"&_
" From 协议供货查询记录表 Where 编号 in ("+lstrKey+")"
strRet = DBEngine.WebFunction("SqlQuery",strInsert,"")
strError = DBEngine.GetElemData(strRet, "Error")
If strError<>"" Then
Msgbox "SQL语句执行失败:" + strError
exit Sub
End If
'打开"采购协议供货通知登记"
sInitData = "<InitData><KeyValue>"&MaxID&"</KeyValue><Supplier>"&Supplier&"</Supplier><action>Mod</action></InitData>"
strRet = DBEngine.OpenForm("采购协议供货通知登记",sInitData,"")
nCloseType = DBEngine.GetElemData(strRet, "CloseType")
'删除已通知的供货商品
strSql = "Delete 协议供货查询记录表 Where 编号 in ("+lstrKey+")"
strRet = DBEngine.WebFunction("SqlQuery",strSql,"")
strError = DBEngine.GetElemData(strRet, "Error")
If strError<>"" Then
Msgbox "SQL语句执行失败:" + strError
exit Sub
End If
MainGrid.UpdateFromDataSourceUrl("")
End Sub
'-----------------------------------------------------------------------------------------------
'注释:
Sub btnDelDetail_Click()
MainGrid.DeleteCurSelRecord()
MainGrid.UpdateFromDataSourceUrl("")
End Sub
'-----------------------------------------------------------------------------------------------
'注释:
Sub Orderby_Click()
strOrder = "select * From 协议供货查询记录表 Order by 实际供货价,"+cmbField.Text+" ASC"
strRet = DBEngine.WebFunction("SqlQuery",strOrder,"")
strError = DBEngine.GetElemData(strRet, "Error")
If strError<>"" Then
Msgbox "SQL语句执行失败:" + strError
exit Sub
End If
MainGrid.SetTableXML(strRet)
End Sub
浙公网安备 33010602011771号