【文章內(nèi)容簡(jiǎn)介】
n value=server=speed。 user id=sa。 password=123。 Database=SubmitReport///數(shù)據(jù)庫(kù)連接字符串 add key=Full value=Provider=SQLOLEDB。Server=speed。UID=sa。PWD=123。Database=SubmitReport/ add key=StartReportNo value=31 / add key=StartReportYear value=2020 / /appSettings 由于每一個(gè) 文件都會(huì)將其配置設(shè)置應(yīng)用至本身所在目錄及其之下的所有子目錄,所以將此 文件放在系統(tǒng)的根目錄下。在使用 時(shí)只用指定關(guān)鍵字 Full 和DBConnection 就能訪問(wèn)數(shù)據(jù)庫(kù)。 在這個(gè)文件中定義了幾個(gè)系統(tǒng)中常用的函數(shù),函數(shù)代碼如下: (1) Public Sub MsgBox(ByVal oPage As , ByVal strInfo As String) Dim strScript As String = strScript amp。= Script Language=39。Javascript39。 strScript amp。= alert( amp。 Replace(Replace(strInfo, \, \\), vbCrLf, \r\n) amp。 )。//顯示提示信息 strScript amp。= /Script (strScript) End Sub 這個(gè)函數(shù)主要作用是替換提示信息中特殊字符。提供一個(gè)通用的提示函數(shù)。 (2) Public Function GetLoginName(ByVal strDomainAccount As String) As String Dim strLoginName As String = strDomainAccount = (/, \) ’替換其中的 ”/” If (\) 1 Then strDomainAccount = ((\) + 1) End If strLoginName = strDomainAccount If strLoginName = Then strLoginName = yongh Return strLoginName End Function 這個(gè)函數(shù)是將用戶登陸的用戶名中的特殊字符替換,避免由于用戶的錯(cuò)誤輸入而操作錯(cuò)誤。 (3) Public Function EncryptDes(ByVal SourceStr As String) As String Try Dim des As DESCryptoServiceProvider = New DESCryptoServiceProvider() Dim inputByteArray As Byte() inputByteArray = (SourceStr) = (strKey) = (strKey) 中 南 民 族 大 學(xué) 計(jì) 算 機(jī) 科 學(xué) 學(xué) 院 2020 級(jí) 畢 業(yè) 論 文 9 Dim ms As MemoryStream = New MemoryStream() Dim cs As CryptoStream = New CryptoStream(ms, (), ) Dim sw As StreamWriter = New StreamWriter(cs) (SourceStr) () () () Return ((), 0, ) Catch Ex As Exception Return End Try End Function 由于員工檔案的機(jī)密性,故保存的各項(xiàng)檔案信息都要進(jìn)行加密,所以使用 EncryptDes 函數(shù)加密。該函數(shù)是使用標(biāo)準(zhǔn) DES對(duì)稱加密算法。 (4) Public Function DecryptDes(ByVal SourceStr As String) As String Try Dim des As DESCryptoServiceProvider = New DESCryptoServiceProvider() = (strKey) = (strKey) Dim buffer As Byte() = (SourceStr) Dim ms As MemoryStream = New MemoryStream(buffer) Dim cs As CryptoStream = New CryptoStream(ms, (), ) Dim sr As StreamReader = New StreamReader(cs) Return () Catch Ex As Exception Return End Try End Function 在查詢?nèi)藛T資料的時(shí)候,由于數(shù)據(jù)庫(kù)中的數(shù)據(jù)經(jīng)過(guò) EncryptDes 函數(shù)加密故要使用相應(yīng)的解密函數(shù)解密,函數(shù) DecryptDes使用標(biāo)準(zhǔn) DES對(duì)稱解密算法。 (5)Public Function GetDynamicInfo(ByVal strURLTemp As String, ByVal strTableID As String, ByVal strLeader As String, ByVal strEdition As String) As String Try Dim srTargetFile As New StreamReader(strURLTemp, (GB2312)) (0, ) Dim strHTML As String = () () () srTargetFile = Nothing 39。39。替換內(nèi)容 Dim oSqlHelper As New () Dim dtRetVal As DataTable = (DBConnection, , sp_getFieldByTableID amp。 strTableID) If 0 Then Dim i As Integer For i = 0 To 1 Dim strFieldName As String Dim strFiledID As String Dim strType As String Dim strTableNameEN As String Dim strDictionaryName As String Dim strIsFill As String Dim strIsFillHtml As String = strFieldName = (i)(ColName) strFiledID = (i)(ID) 中 南 民 族 大 學(xué) 計(jì) 算 機(jī) 科 學(xué) 學(xué) 院 2020 級(jí) 畢 業(yè) 論 文 10 strType = (i)(Type) strTableNameEN = (i)(TableNameEn) strIsFill = (i)(IsFill) If CType(strIsFill, Boolean) Then strIsFillHtml = FONT color=ff0000*/FONT End If 39。39。獲得到第一個(gè)字段的值 Dim strFiledValue As String = Dim dsRetVal As New DataSet() Dim strSP As String = Exec sp_getFieldFieldValue strSP amp。= 39。 amp。 strEdition strSP amp。= 39。,39。 amp。 strFiledID strSP amp。= 39。 dsRetVal = CallSP((Full), strSP) If 0 Then If (0). 0 Then strFiledValue = (0).Rows(0)(FiledValue) End If End If 39。39。39。加密數(shù)據(jù) strFiledValue = DecryptDes(strFiledValue) 39。39。如果是 下拉列表 Dim dscboRetVal As New DataSet() 39。39。根據(jù)字段類型不同生成不同的網(wǎng)頁(yè) Select Case strType Case 字符 , 數(shù)據(jù) 39。39。替換字符和數(shù)據(jù)類型,顯示一個(gè)文本框 strHTML = (! amp。 strFieldName amp。 , INPUT type=text name= amp。 strTableNameEN amp。 strFiledID amp。 value = amp。 strFiledValue amp。 amp。 strIsFillHtml) Case 文本 39。39。替換文本類型,顯示一個(gè)備注框 strHTML = (! amp。 strFieldName amp。 , TEXTAREA style=WIDTH: 100% Rows = 6 name= amp。 strTableNameEN amp。 strFiledID amp。 amp。 strFiledValue amp。 /TEXTAREA amp。 strIsFillHtml) Case 日期 39。39。替換日期類型,顯示日期選擇器 Dim strReplace As String strReplace = INPUT type=text name= amp。 strTableNameEN amp。 strFiledID amp。 value = amp。 strFiledValue amp。 strReplace += IMG style=CURSOR: hand onclick=javascript:selectDate((39。 amp。 strTableNameEN amp。 strFiledID amp。 39。),this)。 src=../Image/ align=absMiddle width=16 height=16 strHTML = (! amp。 strFieldName amp。 , strReplace amp。 strIsFillHtml) Case 下拉列表 39。39。替換列表類型,顯示一個(gè)下拉列表 strDictionaryName = (i)(DictionaryName) strSP = Exec sp_getDataValeByField strSP amp。= 39。 amp。 strDictionaryName strSP amp。= 39。 39。39。獲取下拉列表的數(shù)據(jù) dscboRetVal = CallSP((Full), strSP) Dim strCboHtml As String Dim k As Integer strCboHtml = SELECT name= amp。 strTableNameEN amp。 strFiledID amp。 For k = 0 To (0). 1 strCboHtml = strCboHtml + OPTION Dim strcbovalue As String = (0).Rows(k)(FiledVales) If strcbovalue = strFiledValue Then strCboHtml = strCboHtml + selected End If 中 南 民 族 大 學(xué) 計(jì) 算 機(jī) 科 學(xué) 學(xué) 院 2020 級(jí) 畢 業(yè) 論 文 11 strCboHtml = strCboHtml + value= + strcbovalue + + strcbovalue + /OPTION Next strCboHtml = strCboHtml + /SELECT trHTML = (! amp。 strFieldName amp。 , strCboHtml amp。 strIsFillHtml) End Select Next End If Return strHTML Catch Ex As Exception Return 請(qǐng)檢查配置頁(yè)面及登記表信息! End Try End Function 由于本系統(tǒng)的檔案查詢界面是由用戶上傳的 HTML 模板生成的,上傳的模板中主要界面是表格,將要顯示的內(nèi)容設(shè)置在每個(gè)格中,故要在每個(gè)格中加個(gè)標(biāo)識(shí)記號(hào),標(biāo)識(shí)記號(hào)的格式為:“ !字段名 ”。系統(tǒng)就根據(jù)這些標(biāo)記查詢數(shù)據(jù)庫(kù)中相應(yīng)的字段,然后根據(jù)用戶設(shè)置的該顯示字段的類型通過(guò)該函數(shù)替換相應(yīng)的 html代碼。并顯示出相應(yīng)的字段值。用戶定義的類型有:字符數(shù)據(jù)、文本、日期、下拉列表。字符和數(shù)據(jù)的標(biāo)識(shí)在程序中用文本框替換,文本則用備注框的代碼替換,日期型的字段是在文本框后面添加一個(gè)按扭,點(diǎn)擊該按鈕后彈出一個(gè)日期選擇器,選擇日期后選擇的日期就會(huì)顯示在文本框中,下拉列表型的