批量数据录入, 辅助输入数据, 以及相关检测(ASP 服务器端)(原创)

类别:Asp 点击:0 评论:0 推荐:

相关链接: 批量数据录入, 辅助输入数据, 以及相关检测(JScript 客户端)(原创)

<!--#include file="../__Inc/goperation.asp"-->
<%

 Dim intBillTotal, intBillType, intBillValue, dtaToday, i, strBillCode
 Rem 单记录数(预备量)
 intBillTotal   = request.Form("bn")
 intBillTotal   = toNum(intBillTotal, 10)
 
 intBillType   = getOperType()
 intBillValue   = getOperValue()
 dtaToday     = Date()
 
 Rem ###############################################################################################
 Rem ## 操作单项目
 
  Dim dtaBillDate, strBillUser, strBillCheckUser, strBillContent
  Dim curBillCost, curBillCostAsp, intCustID, strCustName, strPayType, intTotalNum
  Dim dtaBillYear, intBillID, intBillPlanID, strBillPlanNum
  
  Rem ## dtaBillDate 单日期, strBillUser 填表人, strBillCheckUser 提货人, intBillID 单ID
  Rem ## strBillContent 单备注, strBillCode 流水号, curBillCost 单总价(js), curBillCostAsp 单总价(asp)
  Rem ## intCustID 客户ID, strCustName 客户名称, strPayType 付款方式, intTotalNum 单 行数量
  Rem ## intBillType 单类型, intBillValue 单类型描述, intBillPlanID 计划单ID, strBillPlanNum 计划单号
  
  Rem ## 操作单日期
  dtaBillDate = RePlace(Trim(request.Form("BillDate")), ".", "-")
  If Not IsDate(dtaBillDate) Then
   oUser.gs_AddMessage "操作单日期为空"
  Else
   dtaBillDate = CDate(dtaBillDate)
   dtaBillYear = Year(dtaBillDate)
   If (oSys.CheckYearOut(dtaBillYear)) Then
    oUser.gs_AddMessage "操作单日期(" & dtaBillYear & ")超出范围"
   End If
  End If
  
  Rem ## 填表人
  strBillUser = Trim(request.Form("BillUser") & "")
  If strBillUser = "" Then
   oUser.gs_AddMessage "填表人为空"
  End If
  
  Rem ## 提货人
  strBillCheckUser = Trim(request.Form("BillCheckUser") & "")
  If strBillCheckUser = "" Then
   oUser.gs_AddMessage "提货人为空"
  End If
  
  Rem ## 出错转向
  oUser.gs_ShowMessage 1

  Rem ## 其他项目
  
  curBillCost   = toCur(request.Form("totalprice") & "", 0)
  curBillCostAsp  = 0
  intCustID    = toNum(request.Form("CustID") & "", 0)
  strCustName   = request.Form("CustName")
  strPayType    = request.Form("PayType")
  strBillContent  = request.Form("BillContent")
  intBillPlanID  = toNum(request.Form("brefer") & "", 0)
  strBillPlanNum  = getBillNuber(intBillPlanID)
 Rem ###############################################################################################
 
 
 Rem ###############################################################################################
 Rem ## 获得用户输入的数据
  Dim arrRecordInfo()
  
  Dim intTempID, curTempPrice, curTempTotal, curTempCost, curTempAspC
  Dim intTempCode, intTempName, intTempSpec, intTempUnit, intTempOut
  
  Rem ## intTempID 临时产品ID, curTempPrice 单价, curTempTotal 数量, curTempCost 总价(js)
  Rem ## curTempAspC 产品总价(asp), intTempCode 编码, intTempName 名称, intTempSpec 规格
  Rem ## intTempUnit 单位
  
  ReDim arrRecordInfo(9, 0)
  
  Rem ## 初始化 单 行数量为 0, 过滤掉的行数为 0
  intTotalNum = 0
  intTempOut  = 0
  response.Write(UBound(arrRecordInfo, 2))
 
  Rem ## 初始化客户端提交的有用数据
  For i = 1 to intBillTotal
   intTempID   = toNum(request.Form("fpid" & i), 0)
   curTempPrice  = toCur(request.Form("fpprice" & i), 0)
   curTempTotal  = toCur(request.Form("fptotal" & i), 0)
   curTempCost  = toCur(request.Form("fpcost" & i), 0)
   curTempAspC  = curTempPrice * curTempTotal
   
   If ((curTempPrice > 0) And (curTempTotal <> 0) And (intTempID > 0)) Then
    Rem ## 可用数据
    intTotalNum = intTotalNum + 1
    
    curBillCostAsp = curBillCostAsp + curTempAspC
   
    intTempCode  = Trim(request.Form("fpmodel" & i))
    intTempName  = Trim(request.Form("fpvalue" & i))
    intTempSpec  = Trim(request.Form("fpspec" & i))
    intTempUnit  = Trim(request.Form("fpunit" & i))
    
    ReDim Preserve arrRecordInfo(9, intTotalNum)
    
    arrRecordInfo(0, intTotalNum) = intTempID
    arrRecordInfo(1, intTotalNum) = intTempName
    arrRecordInfo(2, intTotalNum) = intTempCode
    arrRecordInfo(3, intTotalNum) = intTempSpec
    arrRecordInfo(4, intTotalNum) = intTempUnit
    arrRecordInfo(5, intTotalNum) = curTempPrice
    arrRecordInfo(6, intTotalNum) = curTempTotal
    arrRecordInfo(7, intTotalNum) = curTempCost
    arrRecordInfo(8, intTotalNum) = curTempAspC
    
    response.Write(intTempUnit & "<br>")
   ElseIf (intTempID > 0) Then
    intTempOut = intTempOut + 1
   End If
  Next
  
  If intTotalNum < 1 Then
   oUser.gs_AddMessage "操作单中无产品数据"
   oUser.gs_AddMessage "共有 " & intTempOut & " 条数据(产品单价为0、为空或负数, 数量为0或空)被过滤"
   oUser.gs_ShowMessage 1
  End If
 Rem ###############################################################################################

 response.Write(UBound(arrRecordInfo, 2))
 'response.End()
 
 Rem ## 打开连接
 f__OpenConn
 
 Rem ###############################################################################################
 Rem ## 检测表存在与否
  Dim tblTableName
  tblTableName = oUser.getBillTable(dtaBillYear)
 Rem ###############################################################################################
 
 Rem ###############################################################################################
 Rem ## 构造单项目 SQL 语句 并保存
  strBillCode    = getOpeBill()
  
  sql = "SELECT * FROM [" & GBL__STR_TAB_INF_BILL & "]"
  Set rs = Server.CreateObject("Adodb.RecordSet")
  rs.open sql, conn, 1, 3
  rs.AddNew
   rs("CustomerID")    = intCustID
   rs("CustomerName")   = strCustName
   rs("BitPlanID")    = intBillPlanID
   rs("BitPlanNum")    = strBillPlanNum
   rs("BitType")     = intBillType
   rs("BitName")     = intBillValue
   rs("BitCode")     = strBillCode
   rs("BitNum")      = intTotalNum
   rs("BitPrice")     = curBillCost
   rs("BitPriceAsp")   = curBillCostAsp
   rs("BitDate")     = dtaBillDate
   rs("BitPay")      = strPayType
   rs("BitContent")    = strBillContent
   rs("FillUser")     = strBillUser
   rs("SureUser")     = strBillCheckUser
   rs("UserID")      = oUser.UID
   rs("UserName")     = oUser.UserName
  rs.update
   intBillID = rs("ID")
   strBillCode = getBillNuber(intBillID)
  rs("BitCode") = strBillCode
  rs.update
  
  rs.close
 
 Rem ###############################################################################################
 
 Rem ###############################################################################################
 Rem ## 构造数据行 SQL 语句 并保存
  For i = 1 to intTotalNum
   sql = " insert into [" & tblTableName & "]" & _
      " (BitType, BitValue, BitID, BitCode, ProductID, ProductName, ProductCode" & _
      ", ProductSpec, ProductUnit, ProductPrice, ProductNum, PriceCount, PriceAspC, BillDate)" & _
      " Values(" & _
      "  " & intBillType & "" & _
      ", '" & toSqlr(intBillValue) & "'" & _
      ", " & intBillID & "" & _
      ", '" & toSqlr(strBillCode) & "'" & _
      ", " & arrRecordInfo(0, i) & "" & _
      ", '" & toSqlr(arrRecordInfo(1, i)) & "'" & _
      ", '" & toSqlr(arrRecordInfo(2, i)) & "'" & _
      ", '" & toSqlr(arrRecordInfo(3, i)) & "'" & _
      ", '" & toSqlr(arrRecordInfo(4, i)) & "'" & _
      ", " & arrRecordInfo(5, i) & "" & _
      ", " & arrRecordInfo(6, i) & "" & _
      ", " & arrRecordInfo(7, i) & "" & _
      ", " & arrRecordInfo(8, i) & "" & _
      ", #" & dtaBillDate & "#" & _
      ")"
   conn.execute(sql)
  Next
 Rem ###############################################################################################
 
 Rem ## 关闭连接
 f__CloseConn
 
 Rem ###############################################################################################
 Rem ## 输出提示信息
   oUser.gs_AddMessage "共有 " & intTempOut & " 条数据(产品单价为0、为空或负数, 数量为0或空)被过滤"
   oUser.gs_AddMessage "共有 " & intTotalNum & " 项数据保存入库, 总价格:" & FormatNumber(curBillCost, 2, true) & "(" & FormatNumber(curBillCostAsp, 2, true) & ")"
   oUser.gs_AddMessage "<a href=""../Erp/Bill_View.asp?id=" & intBillID & """>查看此单(" & strBillCode & ")信息</a>"
   oUser.gs_AddMessage "<a href=""../Erp/Bill_View.asp?id=" & intBillID & "&pt=1"">打印此单</a>"
   oUser.gs_ShowMessage 0
 Rem ###############################################################################################
%>

本文地址:http://com.8s8s.com/it/it8463.htm