2016-05-16 18 views
3

Ich habe ein Word-Dokument mit Tabellen, die wie ein Formular aussehen. Ich habe Platzhalter wie %firstName%, %lastName%, %birthdate% ... etc. Wenn ich die replace() -Funktion verwende, werden die %firstName%, %lastName%, %birthdate% und alle anderen Platzhalterfelder auf der ersten und zweiten Seite ersetzt. Nach der Sekunde ersetzt nichts. Alle Namen der Platzhalter auf der 3. und 4. Seite sind identisch mit der 1. und 2. Seite. Ich habe sogar die Namen der Platzhalter kopiert und eingefügt und sichergestellt, dass keine Abstände hinzugefügt werden. Neugierig zu wissen, ob jemand anderes dies schon einmal erlebt hat und mir sagen kann, was getan wurde, um das Problem zu beheben.Coldfusion Replace() funktioniert nicht auf allen Seiten für MS-Word Dokument

<cfset docPath = GetDirectoryFromPath(GetCurrentTemplatePath()) & "UserTemplate.rtf" />   
<cflock name="UserTemp" type="exclusive" timeout="30"> 
    <cfset rtf = FileRead(docPath) /> 
    <cfquery name = "qUserFormData"> 
     SELECT * FROM vUserFormData WHERE UserID = 3 
    </cfquery> 
    <cfset rtf = Replace(rtf,"%firstName%",#firstName#)/> 
    <cfset rtf = Replace(rtf,"%lastName%",#lastName#) /> 
    <cfset rtf = Replace(rtf,"%birthday%",#birthday#) /> 
</cflock> 
<cfheader name="content-disposition" value="filename=UserTemplate.doc" /> 
<cfcontent type="application/msword"><cfoutput>#rtf#</cfoutput> 
+3

Nichts mit Ihrer Frage zu tun, aber es gibt keine Notwendigkeit für cflock. – Leigh

Antwort

6

Es gibt einen vierten (optional) Parameter the replace() method;Umfang.

Scope:

ein: ersetzt das erste Vorkommen (default)
alle: ersetzt alle

Hinweis Ereignisse, die "Eins" der Standard ist und dass ersetzt nur das erste Vorkommen. Versuchen Sie, dass die vierten Parameter wie folgt ergänzt:

<cfset rtf = Replace(rtf,"%firstName%",firstName,"all") /> 
<cfset rtf = Replace(rtf,"%lastName%",lastName,"all") /> 
<cfset rtf = Replace(rtf,"%birthday%",birthday,"all") /> 

(Die Hash-Tags # in diesem Stück Code nicht erforderlich sind.)

auch darüber im Klaren sein, dass die replace() Methode aus Groß- und Kleinschreibung.

+0

Danke Miguel-F, das war's. Vielen Dank! – malibu65k