Hi Amund
I have proved this development and it is very succesful and work
fine, but I wold like to make some change for that it work with only
document. I want that all documents generated on word by means of the
loop are a only document with as many pages as record match.
Is it possible?
Do you understand?, My level of english not is very good.
Thanks and regards,
El�as
--- In [email protected], Amund <[EMAIL PROTECTED]> wrote:
> Hi,
> you could have a look at Tools->Development tools->Wizards->COM
Class
> Wrapper Wizard, check out how things are done in the SysExcel*,
> SysMicrosoftAgent or SysOutlook* classes, or create your own class
in the
> lines of:
>
> (Note: All error and version checking has been left out.)
>
> class MyMSWord
> {
> COM wdApp; // Word
> COM wdDocuments; // All documents
> COM wdDocument; // Current document
> COM wdBookmark; // Current bookmark
>
> container wdBookmarksEnum;
> }
>
> void new()
> {
> wdApp = new COM("Word.Application");
> wdDocuments = COM::createFromObject(wdApp.Documents());
> wdBookmarksEnum = this.bookmarksEnumerate();
> }
>
> // Create a new document, based on template
> boolean documentAdd(str _template)
> {
> wdDocument = wdDocuments.Add(_template); // Add method of
Word
> "Documents" object
> wdSelection = wdApp.Selection(); // The added
document is now
> the active one
> return true;
> }
>
> // Inserting text into bookmark
> void bookmarkText(str _bookmark, str _text)
> {
> this.bookmarkSelect(this.bookmarkIndex(_bookmark)); //
Selecting
> bookmark
> wdSelection.Text(_text); // Insert text into bookmark
> }
>
> // Select a bookmark by index
> boolean bookmarkSelect(int _bookmarkIndex)
> {
> COM cBookmarks;
> ;
>
> if (_bookmarkIndex <= conlen(wdBookmarksEnum))
> {
> cBookmarks = wdDocument.Bookmarks();
> wdBookmark = cBookmarks.Item(_bookmarkIndex);
> wdBookmark.Select();
> }
> return (wdBookmark ? true : false);
> }
>
> // Find bookmark index from name
> int bookmarkIndex(str _name)
> {
> return confind(wdBookmarksEnum, _name);
> }
>
> // Enumerate bookmarks in current document
> container bookmarksEnumerate()
> {
> container ret;
> int i;
> COM cBookmarks;
> COM cBookmark;
> ;
>
> cBookmarks = wdDocument.Bookmarks();
> for (i=1; i<=cBookmarks.Count(); i++)
> {
> cBookmark = cBookmarks.Item(i);
> ret = conins(ret, i, cBookmark.Name());
> }
> return ret;
> }
>
> Then you should be able to do something like this:
>
> static void adbTestWordBookmarks(Args _args)
> {
> MyMSWord wd = new MyMSWord();
> CustTable custTable;
> int n;
> ;
>
> //wd.Visible(1); // Make Word visible if desired. By default
it's not
>
> while select custTable order by name
> {
> wd.documentAdd("C:\\Program Files\\Microsoft
> Office\\Templates\\1033\\Professional Fax.dot") // Create
new
> document
> wd.bookmarkText("Cc", "Tech. dep."); //
Bookmark
> wd.bookmarkText("Company", "Acme"); //
Company
> wd.bookmarkText("Fax", custTable.TeleFax); //
Fax (number)
> wd.bookmarkText("From", "Hal");
// From
> wd.bookmarkText("Pages", "1");
// Pages, could be obtained from
> Document object
> wd.bookmarkText("Subject", "Fax from Axapta"); //
Subject
> wd.bookmarkText("To", custTable.Name);
// To
> wd.documentSave(strfmt("Fax to customer %1.doc",
> custTable.AccountNum)); //or wd.documentPrint(...);
> wd.documentClose();
> }
> }
>
> Looking at the vba code generated by the macro recorder in MSWord
is quite
> useful for figuring out how to do a specific task.
> The vba code from MSWord can then easily be ported to Axapta.
>
> Hope this helps.
>
> Amund
>
> Wed, 25 Aug 2004 17:02:34 +0200 skrev Harry Nilsen <[EMAIL PROTECTED]>:
>
> > Hi!
> >
> >
> >
> > I have to create a Word document based on a Word template with
bookmarks
> > from code using data from a table in Axapta.
> >
> >
> >
> > Does someone have an example of code which could help me out ?
> >
> >
> >
> > Regards,
> >
> > Harry
> >
> >
> >
> >
> >
> > [Non-text portions of this message have been removed]
> >
> >
> >
> > Yahoo! Groups Sponsor
> > ADVERTISEMENT
> >
> > Yahoo! Groups Links
> >
> > To visit your group on the web, go to:
> > http://groups.yahoo.com/group/development-axapta/
> >
> > To unsubscribe from this group, send an email to:
> > [EMAIL PROTECTED]
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
Service.
Yahoo! Groups Links
- To visit your group on the web, go to:
http://groups.yahoo.com/group/development-axapta/
- To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
- Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

