Abstract:

A method of transferring data from a financial program to a word
processing program to view and modify financial documents in the word
processing program is disclosed. The method may entail selecting a
template in an accounting program wherein the template has a field
related to the selected template, identifying an open field in the
selected template that can be filled in with data from the accounting
program, selecting data stored by the accounting program that is
appropriate to fill in the open field in the selected template,
communicating the selected data and the selected template to the word
processor and opening a document in the word processing program that
displays the selected template and the selected data in the appropriate
field as a word processing document.

Claims:

1. A method of transferring data from a financial program to a word
processing program to view and modify financial documents in the word
processing program comprising:selecting a template in an finance program
wherein the template has a field related to the selected
template;identifying an open field in the selected template that can be
filled in with data from the finance program;selecting data stored by the
finance program that is appropriate to fill in the open field in the
selected template;communicating the selected data and the selected
template to the word processing program;opening a document in the word
processing program that displays the selected template and the selected
data in the appropriate field as a word processing document, andallowing
the modifications made on the word processing document to be communicated
to the finance program.

2. The method of claim 1, further comprising storing the financial
document as a word processing file.

3. The method of claim 1, further comprising allowing a user to modify the
word processing document.

4. The method of claim 1, further comprising allowing a user to edit
existing templates.

5. The method of claim 1, further comprising allowing a user to create
templates.

6. The method of claim 1, further comprising allowing a user to select
from a displayed list of data fields to be displayed on the template.

7. The method of claim 1, further comprising allowing a user to open a
word processing version of a saved financial document and the referring
back to the finance program to update the data displayed in the financial
document.

8. The method of claim 1, further comprising allowing a user to select to
communicate a financial document, recognizing that the financial document
has a related template and communicating the document using the template
in the word processing program.

9. The method of claim 8, further comprising communicating the financial
document by one of email, fax, a communication link to a printer and a
communication link to a storage device.

10. The method of claim 1, further comprising printing using the word
processing program in such that the word processing program operates
internally and is not visible to the user.

11. A computer storage medium having computer executable instructions for
performing a method of transferring data from a financial program to a
word processing program to view and modify financial documents in the
word processing program comprising:selecting a template in an finance
program wherein the template has a field related to the selected
template;identifying an open field in the selected template that can be
filled in with data from the finance program;selecting data stored by the
finance program that is appropriate to fill in the open field in the
selected template;communicating the selected data and the selected
template to the word processing program;opening a document in the word
processing program that displays the selected template and the selected
data in the appropriate field as a word processing document; andallowing
the changes made on word processing document to be communicated to the
finance program.

12. The computer storage medium of claim 11, further comprising storing
the financial document as a word processing file.

13. The computer storage medium of claim further comprising allowing a
user to modify the word processing document.

15. The computer storage medium of claim 11, further comprising allowing a
user to create templates.

16. The computer storage medium of claim 11, further comprising allowing a
user to select from a displayed list of data fields to be displayed on
the template.

17. The computer storage medium of claim 11, further comprising allowing a
user to open a word processing version of a saved financial document and
referring back to the finance program to update the data displayed in the
financial document.

18. The computer storage medium of claim 11, further comprising allowing a
user to select to communicate a financial document, recognizing that the
financial document has a related template and communicating the document
using the template in the word processing program.

19. The computer storage medium of claim 18, further comprising
communicating the financial document by one of email, fax, a
communication link to a printer and a communication link to a storage
device.

20. The computer storage medium of claim 11, further comprising printing
using the word processing program in such that the word processing
program operates internally and is not visible to the user.

21. A computing apparatus, comprising:a display unit that is capable of
generating video images;an input device;a processing apparatus
operatively coupled to said display unit and said input device, said
processing apparatus comprising a processor and a memory operatively
coupled to said processor,a network interface connected to a network and
to the processing apparatus;said processing apparatus being programmed to
select a template in an finance program wherein the template has a field
related to the selected template;said processing apparatus being
programmed to identify an open field in the selected template that can be
filled in with data from the finance program;said processing apparatus
being programmed to select data stored by the finance program that is
appropriate to fill in the open field in the selected template;said
processing apparatus being programmed to communicate the selected data
and the selected template to the word processing program;said processing
apparatus being programmed to open a document in the word processing
program that displays the selected template and the selected data in the
appropriate field as a word processing document; andsaid processing
apparatus being programmed to allow the modifications made on the word
processing document to be communicated to the finance program.

22. The computing apparatus of claim 21, the processing apparatus being
programmed to store the financial document as a word processing file.

23. The computing apparatus of claim 21, the processing apparatus being
programmed to allow a user to modify the word processing document.

24. The computing apparatus of claim 21, the processing apparatus being
programmed to allow a user to edit existing templates.

25. The computing apparatus of claim 21, the processing apparatus being
programmed to allow a user to create templates.

26. The computing apparatus of claim 21, the processing apparatus being
programmed to allow a user to select from a displayed list of data fields
to be displayed on the template.

27. The computing apparatus of claim 21, the processing apparatus being
programmed to allow a user to open a word processing version of a saved
financial document and referring back to the finance program to update
the data displayed in the financial document.

28. The computing apparatus of claim 21, the processing apparatus being
programmed to allow a user to select to communicate a financial document,
to recognize that the financial document has a related template and to
communicate the document using the template in the word processing
program.

29. The computing apparatus of claim 28, the processing apparatus being
programmed to communicate the financial document by one of email, fax, a
communication link to a printer and a communication link to a storage
device.

30. The computing apparatus of claim 21, the processing apparatus being
programmed to print using the word processing program in such that the
word processing program operates internally and is not visible to the
user.

Description:

[0001]This is a continuation of U.S. application Ser. No. 10/985,580,
filed Nov. 10, 2004, the entire disclosure of which is incorporated
herein by reference.

BACKGROUND

[0002]Computerized accounting systems have grown in popularity in the past
decade. The traditional system of double entry accounting has been a
natural process to be adapted to computers. As a result of accounting
data being in a computerized format, more and more reports and
information can be gleaned from the accounting data. However, the ability
to view the accounting data and related financial documents has often
been an afterthought in modem accounting programs. Further, creating a
more familiar user interface to enter and modify accounting data without
having the user interface mimic the traditional and often confusing
ledger pages has been a challenge.

SUMMARY

[0003]A method of transferring data from a financial program to a word
processing program to view and modify financial documents in the word
processing program is disclosed. The method may entail selecting a
template in an accounting program wherein the template has a field
related to the selected template, identifying an open field in the
selected template that can be filled in with data from the accounting
program, selecting data stored by the accounting program that is
appropriate to fill in the open field in the selected template,
communicating the selected data and the selected template to the word
processor and opening a document in the word processing program that
displays the selected template and the selected data in the appropriate
field as a word processing document.

[0004]The method may also entail storing the financial document as a word
processing file, allowing a user to modify the word processing document,
allowing the modifications made on the word processing document to be
communicated to the accounting program, allowing a user to edit existing
templates, allowing a user to create templates, allowing a user to select
from a displayed list of data fields to be displayed on the template,
allowing a user to open a word processing version of a saved financial
document and referring back to the accounting program to update the data
displayed in the financial document, allowing a user to select to
communicate a financial document, recognizing that the financial document
has a related template and communicates the document using the template
in the word processing program, communicating the document by one of
email, fax, a communication link to a printer and a communication link to
a storage device and using the word processing program in such that the
word processing program operates internally and is not visible to the
user. The method may also operate on a programmed memory or on a computer
apparatus.

DRAWINGS

[0005]FIG. 1 is a block diagram of a computing system that may operate in
accordance with the claims;

[0007]FIG. 3 is an illustration of an embodiment of a sample invoice
template;

[0008]FIG. 4 is an illustration of an embodiment of a sample template;

[0009]FIG. 5 is an illustration of an embodiment of a template management
display;

[0010]FIG. 6 is an illustration of an embodiment of a create new template
display; and

[0011]FIG. 7 is an illustration of an embodiment of an email of a
template.

DESCRIPTION

[0012]Although the following text sets forth a detailed description of
numerous different embodiments, it should be understood that the legal
scope of the description is defined by the words of the claims set forth
at the end of this patent. The detailed description is to be construed as
exemplary only and does not describe every possible embodiment since
describing every possible embodiment would be impractical, if not
impossible. Numerous alternative embodiments could be implemented, using
either current technology or technology developed after the filing date
of this patent, which would still fall within the scope of the claims.

[0013]It should also be understood that, unless a term is expressly
defined in this patent using the sentence "As used herein, the term
`______` is hereby defined to mean . . . " or a similar sentence, there
is no intent to limit the meaning of that term, either expressly or by
implication, beyond its plain or ordinary meaning, and such term should
not be interpreted to be limited in scope based on any statement made in
any section of this patent (other than the language of the claims). To
the extent that any term recited in the claims at the end of this patent
is referred to in this patent in a manner consistent with a single
meaning, that is done for sake of clarity only so as to not confuse the
reader, and it is not intended that such claim term by limited, by
implication or otherwise, to that single meaning. Finally, unless a claim
element is defined by reciting the word "means" and a function without
the recital of any structure, it is not intended that the scope of any
claim element be interpreted based on the application of 35 U.S.C. §
112, sixth paragraph.

[0014]FIG. 1 illustrates an example of a suitable computing system
environment 100 on which a system for the steps of the claimed method and
apparatus may be implemented. The computing system environment 100 is
only one example of a suitable computing environment and is not intended
to suggest any limitation as to the scope of use or functionality of the
method of apparatus of the claims. Neither should the computing
environment 100 be interpreted as having any dependency or requirement
relating to any one or combination of components illustrated in the
exemplary operating environment 100.

[0015]The steps of the claimed method and apparatus are operational with
numerous other general purpose or special purpose computing system
environments or configurations. Examples of well known computing systems,
environments, and/or configurations that may be suitable for use with the
methods or apparatus of the claims include, but are not limited to,
personal computers, server computers, hand-held or laptop devices,
multiprocessor systems, microprocessor-based systems, set top boxes,
programmable consumer electronics, network PCs, minicomputers, mainframe
computers, distributed computing environments that include any of the
above systems or devices, and the like.

[0016]The steps of the claimed method and apparatus may be described in
the general context of computer-executable instructions, such as program
modules, being executed by a computer. Generally, program modules include
routines, programs, objects, components, data structures, etc. that
perform particular tasks or implement particular abstract data types. The
methods and apparatus may also be practiced in distributed computing
environments where tasks are performed by remote processing devices that
are linked through a communications network. In a distributed computing
environment, program modules may be located in both local and remote
computer storage media including memory storage devices.

[0017]With reference to FIG. 1, an exemplary system for implementing the
steps of the claimed method and apparatus includes a general purpose
computing device in the form of a computer 110. Components of computer
110 may include, but are not limited to, a processing unit 120, a system
memory 130, and a system bus 121 that couples various system components
including the system memory to the processing unit 120. The system bus
121 may be any of several types of bus structures including a memory bus
or memory controller, a peripheral bus, and a local bus using any of a
variety of bus architectures. By way of example, and not limitation, such
architectures include Industry Standard Architecture (ISA) bus, Micro
Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video
Electronics Standards Association (VESA) local bus, and Peripheral
Component Interconnect (PCI) bus also known as Mezzanine bus.

[0018]Computer 110 typically includes a variety of computer readable
media. Computer readable media can be any available media that can be
accessed by computer 110 and includes both volatile and nonvolatile
media, removable and non-removable media. By way of example, and not
limitation, computer readable media may comprise computer storage media
and communication media. Computer storage media includes both volatile
and nonvolatile, removable and non-removable media implemented in any
method or technology for storage of information such as computer readable
instructions, data structures, program modules or other data. Computer
storage media includes, but is not limited to, RAM, ROM, EEPROM, flash
memory or other memory technology, CD-ROM, digital versatile disks (DVD)
or other optical disk storage, magnetic cassettes, magnetic tape,
magnetic disk storage or other magnetic storage devices, or any other
medium which can be used to store the desired information and which can
accessed by computer 110. Communication media typically embodies computer
readable instructions, data structures, program modules or other data in
a modulated data signal such as a carrier wave or other transport
mechanism and includes any information delivery media. The term
"modulated data signal" means a signal that has one or more of its
characteristics set or changed in such a manner as to encode information
in the signal. By way of example, and not limitation, communication media
includes wired media such as a wired network or direct-wired connection,
and wireless media such as acoustic, RF, infrared and other wireless
media. Combinations of the any of the above should also be included
within the scope of computer readable media.

[0019]The system memory 130 includes computer storage media in the form of
volatile and/or nonvolatile memory such as read only memory (ROM) 131 and
random access memory (RAM) 132. A basic input/output system 133 (BIOS),
containing the basic routines that help to transfer information between
elements within computer 110, such as during startup, is typically stored
in ROM 131. RAM 132 typically contains data and/or program modules that
are immediately accessible to and/or presently being operated on by
processing unit 120. By way of example, and not limitation, FIG. 1
illustrates operating system 134, application programs 135, other program
modules 136, and program data 137.

[0020]The computer 110 may also include other removable/non-removable,
volatile/nonvolatile computer storage media. By way of example only, FIG.
1 illustrates a hard disk drive 140 that reads from or writes to
non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that
reads from or writes to a removable, nonvolatile magnetic disk 152, and
an optical disk drive 155 that reads from or writes to a removable,
nonvolatile optical disk 156 such as a CD ROM or other optical media.
Other removable/non-removable, volatile/nonvolatile computer storage
media that can be used in the exemplary operating environment include,
but are not limited to, magnetic tape cassettes, flash memory cards,
digital versatile disks, digital video tape, solid state RAM, solid state
ROM, and the like. The hard disk drive 141 is typically connected to the
system bus 121 through a non-removable memory interface such as interface
140, and magnetic disk drive 151 and optical disk drive 155 are typically
connected to the system bus 121 by a removable memory interface, such as
interface 150.

[0021]The drives and their associated computer storage media discussed
above and illustrated in FIG. 1, provide storage of computer readable
instructions, data structures, program modules and other data for the
computer 110. In FIG. 1, for example, hard disk drive 141 is illustrated
as storing operating system 144, application programs 145, other program
modules 146, and program data 147. Note that these components can either
be the same as or different from operating system 134, application
programs 135, other program modules 136, and program data 137. Operating
system 144, application programs 145, other program modules 146, and
program data 147 are given different numbers here to illustrate that, at
a minimum, they are different copies. A user may enter commands and
information into the computer 20 through input devices such as a keyboard
162 and pointing device 161, commonly referred to as a mouse, trackball
or touch pad. Other input devices (not shown) may include a microphone,
joystick, game pad, satellite dish, scanner, or the like. These and other
input devices are often connected to the processing unit 120 through a
user input interface 160 that is coupled to the system bus, but may be
connected by other interface and bus structures, such as a parallel port,
game port or a universal serial bus (USB). A monitor 191 or other type of
display device is also connected to the system bus 121 via an interface,
such as a video interface 190. In addition to the monitor, computers may
also include other peripheral output devices such as speakers 197 and
printer 196, which may be connected through an output peripheral
interface 190.

[0022]The computer 110 may operate in a networked environment using
logical connections to one or more remote computers, such as a remote
computer 180. The remote computer 180 may be a personal computer, a
server, a router, a network PC, a peer device or other common network
node, and typically includes many or all of the elements described above
relative to the computer 110, although only a memory storage device 181
has been illustrated in FIG. 1. The logical connections depicted in FIG.
1 include a local area network (LAN) 171 and a wide area network (WAN)
173, but may also include other networks. Such networking environments
are commonplace in offices, enterprise-wide computer networks, intranets
and the Internet.

[0023]When used in a LAN networking environment, the computer 110 is
connected to the LAN 171 through a network interface or adapter 170. When
used in a WAN networking environment, the computer 110 typically includes
a modem 172 or other means for establishing communications over the WAN
173, such as the Internet. The modem 172, which may be internal or
external, may be connected to the system bus 121 via the user input
interface 160, or other appropriate mechanism. In a networked
environment, program modules depicted relative to the computer 110, or
portions thereof, may be stored in the remote memory storage device. By
way of example, and not limitation, FIG. 1 illustrates remote application
programs 185 as residing on memory device 181. It will be appreciated
that the network connections shown are exemplary and other means of
establishing a communications link between the computers may be used.

[0024]FIG. 2 is an illustration of a flowchart of steps that may be
performed in accordance with the claims. At block 200, a user may select
a template in an accounting program. For example, one template may be an
invoice template. Other examples of templates may include a sales order
template, a quote template, a customer credit memo template, a customer
statement template and a purchase order template. Additional templates
may be available. In addition, a user may be permitted to create, modify
or delete templates as will be discussed in relation to FIG. 5.

[0025]The template may have a field or many fields related to the selected
template. Referring to FIG. 3 which is an illustration of a sample
invoice template, ContactName 310 may be a field related to the invoice
template. Additionally, CustomerName 320 and BillingAddress 330 may be
additional fields. Fields may be placeholders for data that is stored in
the accounting software than can be retrieve by the template and
displayed in the template. Logically, ContactName 310 field may retrieve
the relevant contact name related to the present invoice. Similarly,
CustomerName 320 field and BillingAddress 330 field may retrieve the
relevant customer name and billing address related to the present invoice
from the accounting program. The retrieval of this information may be
achieved through the use of SmartDoc technology which may search XML
nodes embedded in the template.

[0026]Smart documents may be documents in a word processor such
Microsoft® Office Word or workbooks in a spreadsheet program such as
Microsoft Office Excel that are associated with an XML schema so data in
a document, rather than just being a paragraph or range of cells, acquire
special meaning. For example, rather than knowing that a paragraph is the
second one in the document, it may be much more valuable to know that the
paragraph is the one destined to contain a product description. What
smart documents may offer is a way to make the host application more
responsive to the data in a document or workbook. Smart documents help
the data become meaningful to the host application. In this way, the
application, such as Word or Excel, may be more than a feature-rich
application by becoming contextually aware of what users are producing
with those features.

[0027]Creating smart document code may be simple and uncomplicated or it
can contain thousands of code lines and reach far into a company's
enterprise. Smart document solutions may be written using many modern
programming systems such as Microsoft Visual Basic® 6.0, Microsoft
Visual Basic .NET, Microsoft Visual C#® NET, or Microsoft Visual
C++® development systems. Users may deploy smart documents over a
corporate intranet, over the Internet, or through Web sites.

[0028]Although a user may create a smart document solution as a dynamic
linked library (DLL), a user may also create a smart document solution as
an XML file using an XML editor such as a word processor such as
Microsoft Notepad or Word. Note that a smart document XML file may be
limited to static text, hyperlinks, document fragments, and images. No
matter which of the two approaches a user may take, on example of the
smart document development cycle maybe as follows:

[0029]1. Attach an XML schema to a document and associate XML elements
with the portions of the document or workbook that will have smart
document actions or help content associated with them.

[0030]2. Use the smart document API or the smart document XML file schema
to write code or XML that displays controls in the Document Actions task
pane and takes action when the user interacts with the controls.

[0031]3. Store the smart document code and all of the files used by the
smart document on a file server or a Web server that your users can
access.

[0032]4. Create an XML expansion pack manifest file that references all of
the files used by the smart document solution.

[0033]5. Use the user interface to reference the XML expansion pack
manifest file and attach the solution to the document or workbook.

[0034]6. Distribute the document or workbook as a template. When a user
creates an instance of the document or workbook from the template, the
smart document and any supporting files used by the smart document may be
downloaded and registered locally on the user's computer without any user
intervention.

[0035]At block 210, an open field may be identified in the selected
template that can be filled in with data from the accounting program.
Referring to FIG. 3, ContactName 310 may be a field that may be in the
template and may be identified as a field that can be filled in with data
from the accounting program. There are a variety of known methods to
accomplish this identification such as simply querying the accounting
program to determine if a ContactName 310 is stored in relation to the
selected invoice.

[0036]At block 220, data stored by the accounting program that is
appropriate to fill in the open field in the selected template may be
selected. This data may be-stored-as any type of file that will be
understood by the word processor, for example, as an XML schema file.

[0037]At block 230, the selected data and the selected template may be
passed to the word processor. The data stored at block 220 may be passed
along with the selected template to the word processor as any type of
file that may be understood by the word processor, such as an XML schema
file and a template file.

[0038]At block 240, a document may be opened in the word processing
program and the word processing program may display the selected template
and the selected data in the appropriate field. FIG. 4 may be an example
of a template that is filled in with relevant data and that is being
displayed in a word processor. The CustomerContact 310 field from FIG. 3
may be filled in with the relevant customer contact "Alan Shen" 410, the
CustomerName 320 field from FIG. 3 may be filled in with the relevant
customer name "Recreation Supplies" 420 and the CustomerAddress filed 330
from FIG. 3 may be filled in with the relevant address "45678 Main St.
Aurora, Ill. 23456 UNITED STATES" 430. In addition, fields in which
relevant data could not be located remain empty. For example, in FIG. 3
there is a field ShippingAddress 440 and in FIG. 4, the Ship TO address
440 is empty, indicating that a relevant match for the ShippingAddress
field 340 was not located in the accounting program.

[0039]Again referring to FIG. 4, the resulting document in the word
processor may be stored as a word processing document. For example, if
the word processor was Microsoft Word, the invoice in FIG. 4 may be saved
as a standard Word file with the traditional doc extension on the file.
In addition, the user may be allowed to modify the word processing
document. For example, if the user desired to add a personal message at
the bottom of the invoice in FIG. 4, the user may be permitted to simply
type this message in the invoice. The changes made on word processing
document transfer may or may not transfer over to the accounting program
depending on the setup of the program and the desires of the user. For
example, if a personal note was added to an invoice, such information is
not important to the accounting program and the user may select that
changes may in the word processing program not be communicated to the
accounting program. However, if additional units were added to the
invoice, it may be imperative that these additional units be communicated
to the accounting program and the user may select that these changes be
communicated to the accounting program.

[0040]In addition, some users may simply be more comfortable using a word
processing type format to enter data in an accounting program. There may
be an option for all changes that were made in the word processing
program to be automatically communicated to the accounting program, where
the changes will be saved in the accounting program. In effect, the word
processing program may be a substitute user interface for the accounting
program.

[0041]Users may also be permitted to edit templates that are communicated
to the word processor. FIG. 5 illustrates the ability to select this
option. For example, the user may select Invoice 500 and under the
heading "Templates" 510 all the current Invoice Templates may be
displayed 520. In this example, there is only one template 520, the
SalesInvoice Sample.doc, but there can be more than one template 520. The
user may be present the option to create a template 530, modify a
template 540 or delete a template 550. If a user selects to modify a
template, a screen such as in FIG. 3 may be displayed.

[0042]Referring to FIG. 3, a sample template is displayed. A number of
potential fields 350 which may be added to a template are displayed, in
this example, in a column. A user can select one of these fields 350 and
it will be added to the template. In addition, a user can select an
existing field such as ContactName 310, CustomerName 320, and
BillingAddress 330 and can move these fields to a different location on
the invoice, can remove them from the invoice or perform any other common
word processing operation.

[0043]In a similar manner, a user may be able to create entirely new
templates. Referring to FIG. 5, a user would select to create a new
template 530. Referring to FIG. 6, a user then may be asked to name 600
the new template. Referring to FIG. 3, a similar screen would be
displayed to the user, except that there would be no fields displayed on
the screen. However, a user could select from a list of available field
350 and add them to a template to create a new template. In addition, the
user can modify an existing template to create a new template. Further, a
user can add all the functions and features available in a word
processing program. For example, a user could add a clip art file to the
invoice, could add different fonts to an invoice, etc.

[0044]The user may also be able to open a word processing version of a
saved financial document and the word processing program may refer back
to the accounting program to update the data displayed in the financial
document. For example, if a user saved a prepared invoice as invoice123
(invoice123.doc), for example, at a point in the future, the user could
open up invoice123.doc and the fields in invoice123.doc may be
automatically updated. As an example, say a vendor mailed invoice123.doc
and later the customer of invoice123.doc moved and obtained a new
telephone number. This new address and telephone number of the customer
may be added and stored in the accounting program. At some point in the
future, the vendor may open up invoice123.doc in order to discuss a
dispute relating to the invoice. Upon opening the invoice, the word
processor may refer back to the accounting program to determine whether
any of the data in the displayed fields has been updated. If the data in
the displayed field has been updated (such as the updated address and
telephone number), the new address and telephone number of the client may
be displayed on the invoice. In an alternate embodiment, the user will be
presented an option to have the fields updated with the current
information in the accounting program. In yet another alternative, the
user will be presented the option to accept the version of the data that
was stored with the word processing document or the most recent version
in the accounting program.

[0045]The user may select to communicate a financial document, such as
email the document, fax the document, communicate the document to a
printer, communicate the document to a web site, etc. The program may
recognize that the financial document has a related template and the
program may communicate the document using the template in the word
processing program. For example, a user may be using the accounting
program and may select to print an invoice. The invoice may have a
selected template associated with the invoice. By using the template
additional features available by using a word processor may be utilized.
For example, many accounting programs may have a limited selection of
fonts that can be used on an invoice where the fonts available to a
modern word processor may be quite numerous. By simply selecting to print
the invoice, the program may forward the invoice template and the
relevant invoice data to the word processor, which may then format the
data and print the invoice. By using the word processor, superior
printing results and options may be obtained. As another example, FIG. 8
illustrates an example where a template (an invoice in this case) is
communicated to an email program using a word processor to format the
display of the data. As can be seen in FIG. 7, the invoice in the email
looks virtually identical to the email in the FIG. 4 which makes sense as
both are using the word processor to format the template and the data in
the relevant fields.

[0046]In addition, the word processor may work entirely in the background
of the program. For example, the user may never see a word processor
begin execution, format the template and the received data, display the
data and then print the data. The word processing program may work
entirely in the memory and processor of the computer and there may be no
visual indication to the user that a word processor was involved with
communicating the document.

[0047]Although many of the descriptions herein have focused on invoices,
other financial documents may also benefit from such a program. For
example, virtually any financial report from the accounting program could
have an improve visual appearance if a template and data were sent to a
word processor where the resulting document could be easily formatted in
the hopes of creating a more visually appealing and useful document.
Datasheet for customers, vendors, employees, items or services also could
benefit as could item receipts, vendor credit memos, cash sales, cash
purchases, phantom checks (check for record keeping purposes), customer
payment receipts, timesheets, time entries, vendor bills, journal
entries, credit card charges, deposit slips, fund transfers, etc.

[0048]Although the forgoing text sets forth a detailed description of
numerous different embodiments, it should be understood that the scope of
the patent is defined by the words of the claims set forth at the end of
this patent. The detailed description is to be construed as exemplary
only and does not describe every possible embodiment because describing
every possible embodiment would be impractical, if not impossible.
Numerous alternative embodiments could be implemented, using either
current technology or technology developed after the filing date of this
patent, which would still fall within the scope of the claims.

[0049]Thus, many modifications and variations may be made in the
techniques and structures described and illustrated herein without
departing from the spirit and scope of the present claims. Accordingly,
it should be understood that the methods and apparatus described herein
are illustrative only and are not limiting upon the scope of the claims.