加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

OBPS开发平台――导入功能vb代码解析

发布时间:2020-12-17 07:43:33 所属栏目:百科 来源:网络整理
导读:CMFly.Web.Operation.dll 我们用vs2005这个版本生成出来 首先先是搞代码,包的调用以后再说可以看一下 Namespace WanH Public Class RQHandle Inherits System.Web.UI.Page '==================声明开始================== '以下代码在各个页面中统一调用,

CMFly.Web.Operation.dll 我们用vs2005这个版本生成出来

首先先是搞代码,包的调用以后再说可以看一下
Namespace WanH
Public Class RQHandle
Inherits System.Web.UI.Page
'==================声明开始==================
'以下代码在各个页面中统一调用,请不要修改
Private mo_Logon As TAppLogon = Nothing '登陆对象
'==================声明结束==================

#Region " Web 窗体设计器生成的代码 "

'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub

'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load
'以下代码在各个页面中统一调用,请不要修改
On Error GoTo l_Err
'该函数参数为本窗口对象
mo_Logon = New TAppLogon(Me,"",TAppLogon.enumAppLogonFlag.LogonOnModuleAdmin,True,TAppLogon.enumRecordType.NotRecordLog,"")
'==================声明结束==================

'在此处放置初始化页的用户代码
Dim lo_XML As New System.Xml.XmlDocument,ls_Result As String
lo_XML.Load(Request.InputStream)
Select Case lo_XML.DocumentElement.GetAttribute("Handle")
Case "ExcelInRQG0050" '钢板信息
ls_Result = ExcelInRQG0050(lo_XML.DocumentElement)
Case "ExcelInRQG0060" '焊缝信息
ls_Result = ExcelInRQG0060(lo_XML.DocumentElement)
End Select
'记录日志
mo_Logon.Logon.SysError.RecordLog(TypeName(Me),"Handle:" & lo_XML.DocumentElement.GetAttribute("Handle"))
lo_XML = Nothing

'==================声明开始==================
'以下代码在各个页面中统一调用,请不要修改
mo_Logon.ClearUp()
mo_Logon = Nothing

Response.Write(ls_Result)
Return
l_Err:
If mo_Logon Is Nothing Then mo_Logon = New TAppLogon(Me,CShort(0))
mo_Logon.ErrorMsgToWeb(Err.Number,Err.Description,TypeName(Me) & "::Page_Load() Event")
mo_Logon = Nothing
'==================声明结束==================

End Sub
'执行时间很长的大行的SQL语句的时候调用,比如存储过程
Private Function UpdateBigDate(ByVal ao_Node As System.Xml.XmlElement) As String
On Error GoTo ls_err
Dim ls_Sql As String = ao_Node.GetAttribute("ls_Sql")
Dim ls_Connet As String = ao_Node.GetAttribute("ls_Connet")
Dim lo_SqlHandle As TSqlHandle
Dim lo_SqlComm As New SqlClient.SqlCommand

If ls_Connet = "" Then
lo_SqlHandle = mo_Logon.Logon.AppSqlHandle
Else
lo_SqlHandle = mo_Logon.Logon.GetOtherSqlHandle(ls_Connet)
End If

lo_SqlComm.CommandTimeout = 1000
lo_SqlComm.Connection = lo_SqlHandle.Connection
lo_SqlComm.CommandText = ls_Sql
lo_SqlComm.ExecuteNonQuery()

lo_SqlComm.Dispose()
lo_SqlComm = Nothing
Return "<Root Value=""1"" ResultValue=""成功"" />"
ls_err:
lo_SqlComm.Dispose()
lo_SqlComm = Nothing
Return "<Root Value=""0"" ResultValue=""失败,请与管理员联系"" />"
End Function



'钢板信息导入
Private Function ExcelInRQG0050(ByVal ao_Node As System.Xml.XmlElement) As String
On Error GoTo ls_err
'基础定义
Dim ls_Sql As String,lo_SqlHandle As TSqlHandle
Dim ls_File As String = mo_Logon.Logon.GetParameterValue("NET_TEMP_DATA_PATH") & ao_Node.GetAttribute("ExcelFile")
Dim lo_Excel As New Excel.Application
Dim lo_Workbook As Excel.Workbook = lo_Excel.Workbooks.Open(ls_File)
Dim lo_sheet As Excel.Worksheet = lo_Workbook.Sheets(1)
lo_SqlHandle = mo_Logon.Logon.GetOtherSqlHandle("CQG_DATACOLL")

'需求定义
Dim ls_TypeID As Integer,ls_PBNum As String,ls_MBNum As String,ls_MBLNum As String,ls_Len As Double,ls_WI As Double,ls_Hou As Double
Dim ls_FJBack As String,ls_CreateUserID As Integer,ls_CreateUserName As String,ls_CreateDate As DateTime
Dim ls_ParentID As Integer,ls_IsCheck As String,ls_JLRemake As String
Dim ls_QualityInspector As String,ls_YZRemake As String

Dim ls_Num As Integer,ls_Sql1 As String,ls_Num01 As Integer,ls_Value01 As String,ls_PID As String
ls_ParentID = ao_Node.GetAttribute("ParentID")

If lo_sheet.Cells(2,1).value = "钢板编号" And lo_sheet.Cells(2,2).value = "钢板位置" And lo_sheet.Cells(2,3).value = "母板炉批号" And lo_sheet.Cells(2,4).value = "母板编号" And lo_sheet.Cells(2,5).value = "长" And lo_sheet.Cells(2,6).value = "宽" And lo_sheet.Cells(2,7).value = "板厚" And lo_sheet.Cells(2,8).value = "复检记录" Then ls_PID = "1"
'随机查看是否为正确模板
If ls_PID <> "1" Then
Call ExitExcelIn(lo_Excel,lo_Workbook,lo_sheet,ls_File)
Return "<Root Value=""0"" ResultValue=""导入失败,请确认导入模板,谢谢!"" />"
Exit Function
End If


'这里就是导入了
ls_Num = 0
For i As Integer = 3 To lo_sheet.Rows.Count
If IsDBNull(lo_sheet.Cells(i,1).value) Or CStr(lo_sheet.Cells(i,1).value) = "" Then
'============出现空的=============
ls_Num = ls_Num + 1
If ls_Num > 2 Then
Exit For
End If
Else
'列值
'钢板编号不为空
If CStr(lo_sheet.Cells(i,1).value) = "" Then
Call gcExcel(lo_Excel,lo_sheet)
Return "<Root Value=""0"" ResultValue=""导入第" & i & "行时失败,钢板编号不能为空!"" />"
Exit Function
Else
ls_PBNum = CStr(lo_sheet.Cells(i,1).value)
End If
'钢板位置不为空
If CStr(lo_sheet.Cells(i,2).value) = "" Then
Call gcExcel(lo_Excel,钢板位置不能为空!"" />"
Exit Function
Else
Select Case Replace(Replace(lo_sheet.Cells(i,2).value," ","")," ","")
Case "外罐底板"
ls_TypeID = 1
Case "外罐壁板"
ls_TypeID = 2
Case "穹顶"
ls_TypeID = 3
Case "内罐底板"
ls_TypeID = 4
Case "内罐壁板"
ls_TypeID = 5
Case "内罐浮顶"
ls_TypeID = 6
End Select
End If
ls_MBNum = CStr(lo_sheet.Cells(i,3).value)
ls_MBLNum = CStr(lo_sheet.Cells(i,4).value)
ls_Len = CStr(lo_sheet.Cells(i,5).value)
ls_WI = CStr(lo_sheet.Cells(i,6).value)
ls_Hou = CStr(lo_sheet.Cells(i,7).value)
ls_FJBack = CStr(lo_sheet.Cells(i,8).value)
ls_CreateUserID = mo_Logon.Logon.UserID
ls_CreateUserName = mo_Logon.Logon.UserName
ls_IsCheck = ""

ls_JLRemake = " "
ls_QualityInspector = " "
ls_YZRemake = " "
'数据重复
ls_Sql1 = "Select Count(*) from G0050 where PBNum ='" & ls_PBNum & "' and TypeID = " & ls_TypeID & ""
ls_Num01 = lo_SqlHandle.GetValueBySql(ls_Sql1)
If ls_Num01 > 0 Then
ls_Value01 = ls_Value01 & "---第" & i & "行数据重复,请检查" & Chr(13) + Chr(10)

Return "<Root Value=""1"" ResultValue=""导入失败" & ls_Value01 & """ />"
Exit Function
End If
'开始插入
ls_Sql = "INSERT INTO G0050 (PBNum,TypeID,MBNum,MBLNum,Len,WI,Hou,FJBack,IsCheck,JLRemake,QualityInspector,YZRemake,ParentID,CreateUserID,CreateUserName,CreateDate) values ("
ls_Sql = ls_Sql & "'" & ls_PBNum & "'," & ls_TypeID & ",'" & ls_MBNum & "','" & ls_MBLNum & "'," & ls_Len & "," & ls_WI & "," & ls_Hou & ",'" & ls_FJBack & "','" & ls_IsCheck & "','" & ls_JLRemake & "','" & ls_QualityInspector & "','" & ls_YZRemake & "','" & ls_ParentID & "','" & ls_CreateUserID & "','" & ls_CreateUserName & "'," & "GetDate())"
Call lo_SqlHandle.UpdateSql(ls_Sql)

'sql调试的时候拷贝出来检查他的准确性
End If
Next


'退出Excel,并且释放调用的COM资源
lo_Excel.DisplayAlerts = False
lo_Workbook.Save()
lo_Excel.DisplayAlerts = True
lo_Workbook.Close()
lo_Excel.Quit()
ReleaseComObject(lo_sheet)
ReleaseComObject(lo_Workbook)
ReleaseComObject(lo_Excel)
lo_Excel = Nothing : lo_Workbook = Nothing : lo_sheet = Nothing
'删除上传的Excel
Call System.IO.File.Delete(ls_File)
System.GC.Collect()
Return "<Root Value=""1"" ResultValue=""导入成功"" />"
ls_err:
lo_Excel.DisplayAlerts = False
lo_Workbook.Save()
lo_Excel.DisplayAlerts = True
lo_Workbook.Close()
lo_Excel.Quit()
ReleaseComObject(lo_sheet)
ReleaseComObject(lo_Workbook)
ReleaseComObject(lo_Excel)
lo_Excel = Nothing : lo_Workbook = Nothing : lo_sheet = Nothing
'删除上传的Excel
Call System.IO.File.Delete(ls_File)
System.GC.Collect()

Return "<Root Value=""0"" ResultValue=err.Description />"
End Function

' 当然最重要的是excel的那些东西,不经常接触,比较陌生



'退出Excel,并且释放调用的COM资源
Private Function ExitExcelIn(ByVal lo_Excel As Excel.Application,ByVal lo_Workbook As Excel.Workbook,ByVal lo_sheet As Excel.Worksheet,ByVal ls_File As String) As String
lo_Excel.DisplayAlerts = False
lo_Workbook.Save()
lo_Excel.DisplayAlerts = True
lo_Workbook.Close()
lo_Excel.Quit()
ReleaseComObject(lo_sheet)
ReleaseComObject(lo_Workbook)
ReleaseComObject(lo_Excel)
lo_Excel = Nothing : lo_Workbook = Nothing : lo_sheet = Nothing
'删除上传的Excel
Call System.IO.File.Delete(ls_File)
System.GC.Collect()
End Function

其实东西就是这些了

附件是代码

这个东西就这样了,不要深究

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读