协议供货查询记录

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

posted @ 2005-11-21 18:07  致远钓客  阅读(305)  评论(0)    收藏  举报