Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Delphi 5 Word Servers and Merging Information

Posted on 2000-05-14
9
Medium Priority
?
240 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 400 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
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Whether it be Exchange Server Crash Issues, Dirty Shutdown Errors or Failed to mount error, Stellar Phoenix Mailbox Exchange Recovery has always got your back. With the help of its easy to understand user interface and 3 simple steps recovery proced…
Is your OST file inaccessible, Need to transfer OST file from one computer to another? Want to convert OST file to PST? If the answer to any of the above question is yes, then look no further. With the help of Stellar OST to PST Converter, you can e…
Suggested Courses
Course of the Month15 days, 19 hours left to enroll

580 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