打印实现方式:做好打印的模板.程序打开此模板,用替换的方式把要打印的字段写入.生成一个新的WORD文件,实现方式.
存在问题: 当在打印的模板中找不到要替换的内容时.把整个文件内容全给替换了.
请问如何判断查找成功?
源码:
Private Sub FreeForm_DataBin(ByVal strRybh As String)
        Dim oleAppDoc As New Word.ApplicationClass
        Dim oleDoc As Word.Document
        Dim oleTmp As Word.Document
        Dim DV As New DataView
        Dim aryl_Value As New ArrayList
        Dim strSql, strbt, strFileName, strTempFName, strTableName As String
        Dim strwh, strTemp, strWinCaption As String
        Dim i As Integer
        strSql = "select b.alias,b.name,b.ename,b.dosetype,b.MAKERNAME,b.specs,a.QualityStd,a.BatchNo,b.passno,to_char(a.ValidDate,'yyyy-mm-dd'),a.outcheck,a.ProcesverbalNo,to_char(a.makerdate,'yyyy-mm-dd'),c.provname,to_char(a.PurDate,'yyyy-mm-dd'),a.PurQty,a.checker,to_char(a.CheckDate,'yyyy-mm-dd'),a.Qty,a.findplace,to_char(a.FindDate,'yyyy-mm-dd'),a.Reason,a.Checker,to_char(a.Fdate,'yyyy-mm-dd'),a.QCNotion,a.QCSigner,to_char(a.QCSignDate,'yyyy-mm-dd'),a.MgrNotion,a.MgrSigner,to_char(a.MgrSignDate,'yyyy-mm-dd'),a.qcmgr,a.qcmgrnotion,to_char(a.qcmgrsigner,'yyyy-mm-dd') from GSP_UneligiblePhysicNotify a left join Goodses b on a.GoodsID=b.GoodsID  left join providers c on a.provno=c.provno   where  a.billno='" & Request("r_no") & "'"
        PuFun.GetFirstRow(strSql, aryl_Value, conn)
        If aryl_Value.Count > 0 Then
            strFileName = CStr(Now.Year) & CStr(Now.Month) & CStr(Now.Day) & CStr(Now.Hour) & CStr(Now.Minute) & CStr(Now.Second)
            strFileName = strFileName & ".doc"
            Try
                '-------------------生成word文档---------------------
                oleTmp = oleAppDoc.Documents.Open(Server.MapPath("template.doc"))
                oleAppDoc.Selection.WholeStory()
                oleAppDoc.Selection.Copy()
                oleDoc = oleAppDoc.Documents.Add()
                strWinCaption = oleAppDoc.ActiveWindow.Caption
                oleAppDoc.Selection.Paste()
                oleTmp.Close()                Dim ii As Integer
                Dim str As String
                For ii = 0 To aryl_Value.Count - 1
                    str = aryl_Value(ii)
                    If str.Trim = "" Or str Is Nothing Then
                        str = "     "
                    End If
                    oleAppDoc.Selection.WholeStory()
                    oleAppDoc.Selection.Find.ClearFormatting()
                    oleAppDoc.Selection.Find.Replacement.ClearFormatting()
                    oleAppDoc.Selection.Find.Text = CStr("《" & ii & "》")
                    oleAppDoc.Selection.Find.Replacement.Text = ""
 '问题在这段,找不到相应的内容,就把全文给替换了,如何控制?
                    oleAppDoc.Selection.Find.Execute()
                    oleAppDoc.Selection.TypeText(str)                Next                oleDoc.ActiveWindow.ActivePane.View.Zoom.Percentage = 100
                oleDoc.SaveAs(Server.MapPath(strFileName))
                oleDoc.Close()
            Catch ex As Exception
                Dim kk As String = ex.Message.ToString
                Response.Write(ex.Message)
            Finally
                oleAppDoc.Quit()
                oleAppDoc = Nothing
            End Try
        End If        Try
            Dim strFilePath As String
            strFilePath = Path.GetDirectoryName(Server.MapPath(Request.FilePath))
            strFilePath = Replace(strFilePath, "\", "\\")            strFilePath = "<script language=javascript> " + vbCrLf _
                        & "   document.body.onload = delexcel('" & strFilePath & "\\" & strFileName & "','" & strFileName & "');" + vbCrLf _
                        & "</script>"
            Page.RegisterStartupScript("strFilePath", strFilePath)
        Catch ex As Exception
            Dim kk As String = ex.Message.ToString
        Finally
            aryl_Value = Nothing
        End Try    End Sub