當(dāng)前很多計(jì)量所相繼研發(fā)了自己的計(jì)量管理系統(tǒng),但就計(jì)量證書的自動(dòng)生成而言,大多軟件都不盡如人意,并且仍有許多計(jì)量軟件沒有證書的自動(dòng)生成這一模塊,而仍沿用傳統(tǒng)的用Word手工編輯證書的方法。如何利用業(yè)務(wù)收發(fā)室登記的原始資料靈活而快捷的錄入計(jì)量檢定數(shù)據(jù)信息是影響實(shí)驗(yàn)室檢定人員生成證書報(bào)告效率的關(guān)鍵因素。
調(diào)用業(yè)務(wù)收發(fā)室登記的原始送檢信息很容易做到,只需將軟件架構(gòu)在局域網(wǎng)上,后臺(tái)數(shù)據(jù)庫(kù)選用大型關(guān)系數(shù)據(jù)(如SQL Server)即可實(shí)現(xiàn)數(shù)據(jù)的共享。為了做到快捷錄入計(jì)量檢定數(shù)據(jù)信息,我們?cè)诤笈_(tái)建立了檢定員表、檢定儀器表、檢定規(guī)程(檢定依據(jù))表、檢定結(jié)果數(shù)據(jù)模板表等作為生成計(jì)量證書的必要參數(shù),供生成證書時(shí)選擇,從而避免了手工輸入。同時(shí)為了利用Word手工編輯證書的靈活性,我們?cè)谧詣?dòng)生成證書時(shí)仍選用了采用Word模板作為證書模板,通過程序調(diào)用將相關(guān)參數(shù)插入到Word模板中,從而實(shí)現(xiàn)計(jì)量證書的自動(dòng)生成。程序運(yùn)行界面如圖1、圖2所示:
程序代碼如下:
Private Sub cmdCreateReport_Click()
On Error Resume Next
Dim objWordApp As Word.Application
Dim objWordDoc As Word.Document
Set objWordApp = GetObject(“Word.Application”)
If objWordApp = Null Then
Set objWordApp = CreateObject(“Word.Application”)
End If
If chkNo.Value = 1 Then
’生成檢定結(jié)果通知書
Set objWordDoc = objWordApp.Documents.Open(App.Path & “\Templates\JDTZ.dot”)
objWordDoc.Application.DisplayAlerts = wdAlertsNone
objWordApp.Visible = True
objWordDoc.Bookmarks(“ZSBH”).Range.Text = txtZSBH.Text
objWordDoc.Bookmarks(“SYDW”).Range.Text = txtSYDW.Text
objWordDoc.Bookmarks(“YQMC”).Range.Text = txtYQMC.Text
objWordDoc.Bookmarks(“YQZZS”).Range.Text = txtYQZZS.Text
objWordDoc.Bookmarks(“GGXH”).Range.Text = txtGGXH.Text
objWordDoc.Bookmarks(“ZQD”).Range.Text = txtZQD.Text
objWordDoc.Bookmarks(“YQBH”).Range.Text = txtYQBH.Text
objWordDoc.Bookmarks(“JDYJ”).Range.Text = txtJDYJ.Text
objWordDoc.Bookmarks(“PY”).Range.Text = Year(dtpPZRQ.Value)
objWordDoc.Bookmarks(“PM”).Range.Text = Month(dtpPZRQ.Value)
objWordDoc.Bookmarks(“PD”).Range.Text = Day(dtpPZRQ.Value)
objWordDoc.Bookmarks(“PStdName”).Range.Text = txtPStdName.Text
objWordDoc.Bookmarks(“PStdZSBH”).Range.Text = txtPStdZSBH.Text
objWordDoc.Bookmarks(“PYXQ”).Range.Text = txtPYXQ.Text
objWordDoc.Bookmarks(“WD”).Range.Text = txtWD.Text
objWordDoc.Bookmarks(“SD”).Range.Text = txtSD.Text
objWordDoc.Bookmarks(“Else”).Range.Text = txtElse.Text
objWordDoc.Bookmarks(“JY”).Range.Text = Year(dtpJCSJ.Value)
objWordDoc.Bookmarks(“JM”).Range.Text = Month(dtpJCSJ.Value)
objWordDoc.Bookmarks(“JD”).Range.Text = Day(dtpJCSJ.Value)
objWordDoc.Bookmarks(“ZSBH1”).Range.Text = txtZSBH.Text
’將RichTextBox中的內(nèi)容全選
rtxtJDJG.SelStart = 0
JDJG.SelLength = Len(rtxtJDJG.Text)
’將RichTextBox中的內(nèi)容全部復(fù)制到剪貼板中
SendMessage rtxtJDJG.hwnd, WM_COPY, 0, ByVal 0&
objWordDoc.Bookmarks(“JDJG”).Range.Paste
Else
If chkPageTh.Value = 1 Then ’三頁格式證書
Set objWordDoc = objWordApp.Documents.Open(App.Path & “\Templates\JDPageTh.dot”)
Else ’兩頁格式證書
Set objWordDoc = objWordApp.Documents.Open(App.Path & “\Templates\JDPageT.dot”)
End If
objWordApp.Visible = True
objWordDoc.Bookmarks(“ZSBH”).Range.Text = txtZSBH.Text
objWordDoc.Bookmarks(“ZSBH1”).Range.Text = txtZSBH.Text
If chkPageTh.Value = 1 Then
objWordDoc.Bookmarks(“ZSBH2”).Range.Text = txtZSBH.Text
rtxtJDJGT.SelStart = 0
rtxtJDJGT.SelLength = Len(rtxtJDJGT.Text)
’將RichTextBox中的內(nèi)容全部復(fù)制到剪貼板中
SendMessage rtxtJDJGT.hwnd, WM_COPY, 0, ByVal 0&
objWordDoc.Bookmarks(“JDJGT”).Range.Paste
End If
objWordDoc.Bookmarks(“SYDW”).Range.Text = txtSYDW.Text
objWordDoc.Bookmarks(“YQMC”).Range.Text = txtYQMC.Text
objWordDoc.Bookmarks(“YQZZS”).Range.Text = txtYQZZS.Text
objWordDoc.Bookmarks(“GGXH”).Range.Text= txtGGXH.Text '
objWordDoc.Bookmarks(“ZQD”).Range.Text=txtZQD.Text
objWordDoc.Bookmarks(“YQBH”).Range.Text=txtYQBH.Text
objWordDoc.Bookmarks(“JDYJ”).Range.Text=txtJDYJ.Text
objWordDoc.Bookmarks(“PStdName”).Range.Text=txtPStdName.Text
objWordDoc.Bookmarks(“PStdZSBH”).Range.Text=txtPStdZSBH.Text
objWordDoc.Bookmarks(“PYXQ”).Range.Text=txtPYXQ.Text
objWordDoc.Bookmarks(“WD”).Range.Text=txtWD.Text
objWordDoc.Bookmarks(“SD”).Range.Text=txtSD.Text
objWordDoc.Bookmarks(“Else”).Range.Text=txtElse.Text
objWordDoc.Bookmarks(“JY”).Range.Text=Year(dtpJCSJ.Value)
objWordDoc.Bookmarks(“JM”).Range.Text=Month(dtpJCSJ.Value)
objWordDoc.Bookmarks(“JD”).Range.Text=Day(dtpJCSJ.Value)
objWordDoc.Bookmarks(“XY”).Range.Text=Year(dtpYXQ.Value)
objWordDoc.Bookmarks(“XM”).Range.Text=Month(dtpYXQ.Value)
objWordDoc.Bookmarks(“XD”).Range.Text=Day(dtpYXQ.Value)
’將RichTextBox中的內(nèi)容全選
rtxtJDJG.SelStart=0
rtxtJDJG.SelLength=Len(rtxtJDJG.Text)
’將RichTextBox中的內(nèi)容全部復(fù)制到剪貼板中
SendMessage rtxtJDJG.hwnd, WM_COPY, 0, ByVal 0&
objWordDoc.Bookmarks(“JDJG”).Range.Paste
End If
If FileExist(App.Path &“\doc\” & txtJCProjectID.Text &“.doc”) Then
DelDocFile App.Path &"“doc\”& txtJCProjectID.Text &“.doc”
End If
objWordDoc.SaveAs App.Path &“\doc\”& txtJCProjectID.Text &“.doc”
Set objWordDoc=Nothing
Set objWordApp=Nothing
End Sub |
評(píng)分
-
查看全部評(píng)分
|