Re: Replacing merge fields in headers/footers

From: AP (adamp_at_indra.com)
Date: 02/17/04


Date: Tue, 17 Feb 2004 15:39:08 -0700

No solution to my problem then?

"AP" <adamp@indra.com> wrote in message
news:%23iNWsr%237DHA.2044@TK2MSFTNGP10.phx.gbl...
> 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
> > >>
> > >>
> > >
> > >
> >
> >
>
>



Relevant Pages

  • Re: Replacing merge fields in headers/footers
    ... > programmatically update data in a document from a database. ... > private void UpdateField(Word.Field theField, int theFileID, int ... Unsolicited questions ...
    (microsoft.public.word.vba.general)
  • Need help with multi-dimensional arrays and functions
    ... I'm attempting to write a program to read in database files. ... parameters telling me the dimensions of the array. ... int i,j,nrecords,nfields,nchars; ... printf; ...
    (comp.lang.c)
  • Re: Pointers, arrays , all muddled up !
    ... >database is setup correctly, a problem arises when the line is copied ... I also include the test file. ... int do_error ... int res = EXIT_SUCCESS; ...
    (comp.programming)
  • Re: Inheritance & static members
    ... > int id; ... Perhaps your design is more obvious to those with more database experience ... Ensuring that each child of Name_Lookup has ... of the static member: ...
    (comp.lang.cpp)