Re: Replacing merge fields in headers/footers
From: AP (adamp_at_indra.com)
Date: 02/10/04
- Next message: Paul Colton: "Re: Call void* C func from C#..."
- Previous message: Ted Sung: "why do these 2 ways of invoking an external C function work?"
- In reply to: Doug Robbins - Word MVP - DELETE UPPERCASE CHARACTERS FROM EMAIL ADDRESS: "Re: Replacing merge fields in headers/footers"
- Next in thread: AP: "Re: Replacing merge fields in headers/footers"
- Reply: AP: "Re: Replacing merge fields in headers/footers"
- Reply: Charles Kenyon: "Re: Replacing merge fields in headers/footers"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 10 Feb 2004 08:31:27 -0700
What we are doing is using merge fields to indicate where we want to
programmatically update data in a document from a database. The user selects
to retrieve what we call a template document from the server for a certain
"file number" in our database. The server then updates our custom merge
fields with data from the database and sends the document down to the client
where it is opened in word. Merge fields seemed like the logical choice
because we can update the result and still maintain the underlying link to
the database through the merge field. Thus if data changes in the database,
the next time the document is pulled, the document will reflect any changes
that have been made. The following is an example of the code we're using:
public void PopulateDocument(some parameters) {
//Open up word with a new document from the template
wa = new Word.ApplicationClass();
wd = wa.Documents.Add(ref templateFile, ref missing, ref missing, ref
trueObject);
wd.Activate();
//Iterate through the fields in the word doc, pull the data from the db and
//update the fields in the word doc
//update the headers and footers
//this code does not work - not sure why the document fields are different
from the header/footer fields in the first place...
foreach (Field hff in
wd.Sections.First.Headers.Item(Word.WdHeaderFooterIndex.wdHeaderFooterPrimar
y).Range.Fields) {
UpdateField(hff,theFileID,theUserID,theOfficeID,theLedgerEntryID);
}
//this code works, but not for the header/footer fields
foreach (Field f in wd.Fields) {
UpdateField(f,theFileID,theUserID,theOfficeID,theLedgerEntryID);
}
}
private void UpdateField(Word.Field theField, int theFileID, int theUserID,
int theOfficeID, int theLedgerEntryID) {
string command = theField.Code.Text.Trim();
//if the merge field starts with the text of our custom command
int index = command.IndexOf(COMMAND_RESWARE);
if (index != -1) {
//populate the result from the database
theField.Result.Text = GetReplacementText(theFileID, theUserID, theOfficeID,
theLedgerEntryID, command.Substring(index + 1 +
COMMAND_RESWARE.Length).Trim());
}
}
"Doug Robbins - Word MVP - DELETE UPPERCASE CHARACTERS FROM EMAIL ADDRESS"
<dkr@mOSTvALUABLEpROFESSIONALs.org> wrote in message
news:Ol8m0a57DHA.488@TK2MSFTNGP12.phx.gbl...
> Hi Adam,
>
> It will be easier to replicate/solve your problem if you paste the code
into
> a message that you post back to the newsgroup as a continuation of this
> thread.
>
> --
> Please post any further questions or followup to the newsgroups for the
> benefit of others who may be interested. Unsolicited questions forwarded
> directly to me will only be answered on a paid consulting basis.
> Hope this helps
> Doug Robbins - Word MVP
> "AP" <adamp@indra.com> wrote in message
> news:OWfMFO37DHA.3008@TK2MSFTNGP09.phx.gbl...
> >I just wanted to add that I use the same code to replace merge fields in
> >the
> > regular body of the document and it works fine, just not in the
> > header/footer.
> >
> > Adam
> >
> > "AP" <adamp@indra.com> wrote in message
> > news:Osng%23u27DHA.3704@tk2msftngp13.phx.gbl...
> >> Hi,
> >>
> >> I'm trying to programmatically update merge fields in headers/footers
of
> >> a
> >> word document. I iterate through the merge fields in the header/footer,
> > and
> >> set the result text to the text I want, then save the document, but
when
> >> I
> >> open it the merge field does not appear updated. If anyone can shed
some
> >> light on why this is not working I would greatly appreciate it.
> >>
> >> Thanks,
> >>
> >> Adam
> >>
> >>
> >
> >
>
>
- Next message: Paul Colton: "Re: Call void* C func from C#..."
- Previous message: Ted Sung: "why do these 2 ways of invoking an external C function work?"
- In reply to: Doug Robbins - Word MVP - DELETE UPPERCASE CHARACTERS FROM EMAIL ADDRESS: "Re: Replacing merge fields in headers/footers"
- Next in thread: AP: "Re: Replacing merge fields in headers/footers"
- Reply: AP: "Re: Replacing merge fields in headers/footers"
- Reply: Charles Kenyon: "Re: Replacing merge fields in headers/footers"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|