Solved

Delphi 5 Word Servers and Merging Information

Posted on 2000-05-14
9
233 Views
Last Modified: 2010-04-04
My company uses Word documents as forms.  Now they just print out the forms and then fill in the blanks.  What I want to do is use the new D5 Servers and by using some type of mail merge field on the word 97 document,  fill in and print the document in the background not showing the word document or Word at all.  I am getting my information from an Access 97 database and need to insert information of all tipes into the Word Document--Text, numbers, memo and boolean.  I am new at using D5's Servers so it would be nice for an example or a website for me to get information from.  I also have about 500 docs to change if I can get this working, so I would appreciate a simple change for the doc files.
0
Comment
Question by:rwasaff
  • 3
  • 3
  • 2
  • +1
9 Comments
 
LVL 17

Accepted Solution

by:
inthe earned 100 total points
ID: 2809032
hi,
there may be some info here that helps:

http://www.djpate.freeserve.co.uk/Automation.htm

0
 
LVL 1

Expert Comment

by:wmckie
ID: 2809805
Hi

Here's another place that may help, especialy the word components.

http://www.capturebeat.com

I've only created one program similar to what you've described, I found it useful to create word fields for all of the input areas, that made it much easier to navigate the doc.

Cheers - Walter McKie
0
 
LVL 1

Expert Comment

by:bozo7
ID: 2811062
Here is how I did it.



unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  {$IFDEF VER130}
  Word97,
  {$ELSE}
  Word_TLB,
  {$ENDIF}
  StdCtrls, Db, DBTables, Dialogs, Buttons;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    opdlOpen: TOpenDialog;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    Word: _Application;
    Doc: _Document;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses ComObj, ActiveX;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Pause, sFilename: OleVariant;
  i : Integer;
begin
  if opdlOpen.execute = True then
  begin
    sfilename := opdlOPen.filename;
    Doc := Word.Documents.open(sFileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

    Pause := False;
    with Doc.MailMerge do
    begin
      Destination := wdSendToNewDocument;
      Datasource.FirstRecord := wdDefaultFirstRecord;
      Datasource.LastRecord := integer(wdDefaultLastRecord);
      Execute(Pause);
    end;

    doc.PrintOut(EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam)
  end;
  showmessage('Done');
  for i := 0 to 10 do
    Beep;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
  SaveChanges: OleVariant;
begin
  SaveChanges := wdDoNotSaveChanges;
  Word.Quit(SaveChanges, EmptyParam, EmptyParam);
  Doc := nil;
  Word := nil;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Unknown: IUnknown;
  Result: HResult;
begin
  {$IFDEF VER120}      // Delphi 4
  Result := GetActiveObject(CLASS_Application_, nil, Unknown);
  if (Result = MK_E_UNAVAILABLE) then
    Word := CoApplication_.Create

  {$ELSE}              // Delphi 5
  Result := GetActiveObject(CLASS_WordApplication, nil, Unknown);
  if (Result = MK_E_UNAVAILABLE) then
    Word := CoWordApplication.Create
  {$ENDIF}

  else begin
    { make sure no other error occurred during GetActiveObject }
    OleCheck(Result);
    OleCheck(Unknown.QueryInterface(_Application, Word));
  end;
  Word.Visible := False;

end;

end.

I got this info from
http://www.djpate.freeserve.co.uk/AutoWord.htm

Hope this helps
Ross
0
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

 
LVL 1

Expert Comment

by:bozo7
ID: 2811067
opdlOpen is an OpenDialog box.

Ross
0
 
LVL 1

Expert Comment

by:bozo7
ID: 2811074
The Beep stuff was just for fun.

Ross
0
 

Author Comment

by:rwasaff
ID: 2844435
Sorry it took me so long to get back.  You know how other things become more important at times.

I finally got to look at the examples and web sites you all suggested.  An I would like to give each of you 100 points if I could.  Could you tell me how to do this?  Do I just Accept each answer and would you get each 100 points.  This is what I want to do.

You all were a big help. Thanks

Bob  
0
 
LVL 17

Expert Comment

by:inthe
ID: 2846846
hi,
nice idea ;-)

to do so you have to ask new questions to each expert (just put experts name in title) then experts will put something (eg hello )as answer for question and then can get points..
yopu can accept one of the comments here as answer also or delete this question then ..

Regards Barry

0
 

Author Comment

by:rwasaff
ID: 2848098
Comment accepted as answer
0
 

Author Comment

by:rwasaff
ID: 2848099
And Thank you Again for the informstion
0

Featured Post

Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
In a recent question (https://www.experts-exchange.com/questions/28997919/Pagination-in-Adobe-Acrobat.html) here at Experts Exchange, a member asked how to add page numbers to a PDF file using Adobe Acrobat XI Pro. This short video Micro Tutorial sh…

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question