Back to EveryPatent.com
United States Patent |
5,222,236
|
Potash
,   et al.
|
June 22, 1993
|
Multiple integrated document assembly data processing system
Abstract
A multiple document assembly data processing system allows a user to pick
and assemble numerous documents (or files) while collecting required
variable field information for each of the documents and eliminating
duplicate information. The system enables a user in a single data entry
operation to prepare each of the documents at substantially the same time
by distributing information entered to all the selected documents or
files. The system is an interactive, menu-driven system which uses prompt
windows in which, for example, documents are selected and entry formats
are presented to prompt a user to enter common variable information
relating to numerous documents. The documents are stored in a library
which is organized into a series of volumes. Each volume is broken down
further into a series of chapters. Each chapter, in turn, may store a
series of specific documents. Each of the documents includes a series of
field names that are required to have data inserted therein to complete
the document. Each of these stored documents may be revised, edited, and
manipulated in accordance with a conventional word processing system which
is resident in the system.
Inventors:
|
Potash; M. Steven (South Euclid, OH);
Nygren; Raymond T. (Euclid, OH)
|
Assignee:
|
OverDrive Systems, Inc. (Beachwood, OH)
|
Appl. No.:
|
751676 |
Filed:
|
August 23, 1991 |
Current U.S. Class: |
707/102; 707/200; 715/522; 715/539 |
Intern'l Class: |
G06F 015/40 |
Field of Search: |
395/DIG. 1,DIG. 2,100,600,700,800
|
References Cited
U.S. Patent Documents
4156909 | May., 1979 | Barton et al. | 364/200.
|
4485454 | Nov., 1984 | Kimoto | 364/900.
|
4601003 | Jul., 1986 | Yoneyama et al. | 364/900.
|
4713754 | Dec., 1987 | Agarwal et al. | 364/200.
|
4792919 | Dec., 1988 | Fukunaga | 364/900.
|
4881197 | Nov., 1989 | Fischer | 364/900.
|
4918648 | Apr., 1990 | Taguchi et al. | 364/900.
|
Foreign Patent Documents |
1205562 | Mar., 1984 | CA.
| |
Primary Examiner: Harrell; Robert R.
Attorney, Agent or Firm: Jones, Day, Reavis & Pogue
Parent Case Text
This is a continuation of application Ser. No. 07/188,777, filed Apr. 29,
1988, now abandoned.
Claims
We claim:
1. An automated multiple file assembly system comprising:
means for storing a plurality of primary files into at least one storage
area, where each primary file contains one of at least two types of data
fields, and where at least one of the types of data fields is a constant
value data field type and where at least a second one of the types of data
fields is a variable data field type, and where at least one of the
plurality of primary files contains at least one data field of the
variable data field type;
file selection means responsive to an external input for enabling
selection, from the plurality of primary files stored by the means for
storing, of a subset of the primary files to be used for file assembly;
variable data field compilation means responsive to the file selection
means for creating a set of nonredundant variable data elements and
associating each element of the set of nonredundant variable data elements
with one or more respective variable data fields in one or more of the
primary files comprising the subset of primary files;
variable data entry prompting means for prompting provision of file
completion data elements associated with each of the nonredundant variable
data elements;
variable data entry means for enabling file completion data elements
corresponding to the nonredundant variable data elements to be provided in
response to the variable data entry prompting means;
file completion instruction means for creating a set of instructions for
creating a set of new files from the subset of primary files, where the
set of instructions contains at least one instruction for substituting at
least one file completion data element in place of a particular
corresponding variable data field in at least one of the new files
comprising the set of new files; and
file processing means for executing the set of instructions created by the
file completion instruction means to create the set of new files from the
subset of primary files.
2. An automated multiple file assembly system according to claim 1, wherein
the variable data entry prompting means includes means for generating a
form for data entry, where the form for data entry provides a user of the
automated multiple file assembly system with an opportunity to supply the
file completion data elements associated with each of the nonredundant
variable data elements.
3. An automated multiple file assembly system according to claim 2, wherein
the means for generating a form for data entry includes means for
displaying the form to a user, wherein the means for displaying operates
in conjunction with the variable data entry means.
4. An automated multiple file assembly system according to claim 3, further
including means for printing any file contained in the plurality of
primary files, the subset of primary files or the set of new files.
5. An automated multiple file assembly system according to claim 4, wherein
the file processing means includes means for controlling the printing
means to link and sequentially print each new file.
6. An automated multiple file assembly system according to claim 5, wherein
the means for controlling the printing means includes a data entry means
for entering an instruction to initiate the sequential printing of each of
the new files.
7. An automated multiple file assembly system according to claim 6, wherein
the data entry means for entering an instruction to initiate the
sequential printing of each of the new files is activated by a single user
input.
8. An automated multiple file assembly system according to claim 7, wherein
the data entry means for entering an instruction to initiate the
sequential printing of each of the new files is a keyboard, and wherein
the single user input is a depression of a single key on the keyboard.
9. An automated multiple file assembly system according to claim 2, wherein
the means for generating a form for data entry includes means for printing
the form for data entry.
10. An automated multiple file assembly system according to claim 1,
wherein the means for storing the plurality of primary files includes
organizing means for organizing the plurality of primary files into a
library of files, wherein the library of files is further organized by the
organizing means into a plurality of volumes with each of the volumes
organized into a plurality of chapters each chapter containing at least
one of the primary files.
11. An automated multiple file assembly system according to claim 10,
wherein the organizing means includes a means for storing an index file
associating each chapter with a description of each primary file contained
in that chapter.
12. An automated multiple file assembly system according to claim 11,
wherein the file selection means includes means for accessing the index
file associating each chapter with a description of each primary file
contained in that chapter and for building a menu that provides the
description of a particular primary file associated with an external file
query input that is associated with that particular primary file.
13. An automated multiple file assembly system according to claim 12
wherein the external file query input is provided by a user of the
automated multiple file assembly system through a data entry means
associated with the file selection means.
14. An automated multiple file assembly system according to claim 10,
wherein the organizing means includes means for generating a table of
contents of a chapter.
15. An automated multiple file assembly system according to claim 1,
further including means for storing into at least one new file storage
area subsets of new files created by the file processing means.
16. An automated multiple file assembly system according to claim 15,
wherein means for storing into at least one new file storage area subsets
of new files created by the file processing means includes means for
designating each of the subsets of new files by a unique reference name.
17. An automated multiple file assembly system according to claim 16,
wherein the means for designating each of the subsets of new files by a
unique reference name includes means for accessing each subset of new
files by the unique reference name by which such subset of new files is
designated.
18. An automated multiple file assembly system according to claim 1,
wherein the selection means includes means for associating with each
primary file of the subset of primary files a file identifying name.
19. An automated multiple file assembly system according to claim 18,
wherein the subset of primary files has associated therewith a subset file
list containing each file identifying name associated with each primary
file contained in the subset of primary files.
20. An automated multiple file assembly system according to claim 19,
further including means for storing a plurality of subset file lists
associated with previously selected subsets of primary files, wherein the
external input to which the file selection means is responsive directs the
file selection means to select, as the subset of primary files to be used
for file assembly, the subset of primary files associated with a
particular subset file list.
21. An automated multiple file assembly system according to claim 1,
wherein the number of primary files in the subset of primary files is
equal to the number of new files in the set of new files created by the
file processing means.
22. An automated multiple file assembly system according to claim 21,
wherein each of primary files in the subset of primary files is uniquely
associated with a particular new file in the set of new files created by
the file processing means.
23. An automated multiple file assembly system according to claim 21,
wherein each of new files in the set of new files created by the file
processing means is uniquely associated with a particular primary file in
the subset of primary files.
24. An automated multiple file assembly system according to claim 21,
wherein each of new files in the set of new files created by the file
processing means corresponds one-to-one with a particularly primary file
in the subset of primary files.
25. An automated multiple file assembly system according to claim 1,
wherein each of the plurality of primary files is unique.
26. An automated multiple document assembly system comprising:
means for storing a plurality of primary documents into at least one
storage area, where each primary document contains one of at least two
types of data fields, and where at least one of the types of data fields
is a constant value data field type and where at least a second one of the
types of data fields is a variable data field type, and where at least one
of the plurality of primary documents contains at least one data field of
the variable data field type;
document selection means responsive to an external input for enabling
selection, from the plurality of primary documents stored by the means for
storing, of a subset of the primary documents to be used for document
assembly;
variable data field compilation means responsive to the document selection
means for creating a set of nonredundant variable data elements and
associating each element of the set of nonredundant variable data elements
with one or more respective variable data fields in one or more of the
primary documents comprising the subset of primary documents;
variable data entry prompting means for prompting provision of document
completion data elements associated with each of the nonredundant variable
data elements;
variable data entry means for enabling document completion data elements
corresponding to the nonredundant variable data elements to be provided in
response to the variable data entry prompting means;
document completion instruction means for creating a set of instructions
for creating a set of new documents from the subset of primary documents,
where the set of instructions contains at least one instruction for
substituting at least one document completion data element in place of a
particular corresponding variable data field in at least one of the new
documents comprising the set of new documents; and
document processing means for executing the set of instructions created by
the document completion instruction means to create the set of new
documents from subset of primary documents.
27. An automated multiple document assembly system according to claim 26,
wherein the variable data entry prompting means includes means for
generating a form for data entry, where the form for data entry provides a
user of the automated multiple document assembly system with an
opportunity to supply the document completion data elements associated
with each of the nonredundant variable data elements.
28. An automated multiple document assembly system according to claim 27,
wherein the means for generating a form for data entry includes means for
printing the form for data entry.
29. An automated multiple document assembly system according to claim 28,
wherein the means for generating a form for data entry includes means for
displaying the form to a user, wherein the means for displaying operates
in conjunction with the variable data entry means.
30. An automated multiple document assembly system according to claim 29,
further including means for printing any document contained in the
plurality of primary documents, the subset of primary documents or the set
of new documents.
31. An automated multiple document assembly system according to claim 30,
wherein the document processing means includes means for controlling the
printing means to link and sequentially print each new document.
32. An automated multiple document assembly system according to claim 31,
wherein the means for controlling the printing means includes a data entry
means for entering an instruction to initiate the sequential printing of
each of the new documents.
33. An automated multiple document assembly system according to claim 32,
wherein the data entry means for entering an instruction to initiate the
sequential printing of each of the new documents is activated by a single
user input.
34. An automated multiple document assembly system according to claim 33,
wherein the data entry means for entering an instruction to initiate the
sequential printing of each of the new documents is a keyboard, and
wherein the single user input is a depression of a single key on the
keyboard.
35. An automated multiple document assembly system according to claim 28,
further including means for storing into at least one new document storage
area subsets of new documents created by the document processing means.
36. An automated multiple document assembly system according to claim 35,
wherein means for storing into at least one new document storage area
subsets of new documents created by the document processing means includes
means for designating each of the subsets of new documents by a unique
reference name.
37. An automated multiple document assembly system according to claim 36,
wherein the means for designating each of the subsets of new documents by
a unique reference name includes means for accessing each subset of new
documents by the unique reference name by which such subset of new files
is designated.
38. An automated multiple document assembly system according to claim 37,
wherein the external document query input is provided by a user of the
automated multiple document assembly system through a data entry means
associated with the document selection means.
39. An automated multiple document assembly system according to claim 27,
wherein the means for storing the plurality of primary documents includes
organizing means for organizing the plurality of primary documents into a
library of documents, wherein the library of documents is further
organized by the organizing means into a plurality of volumes with each of
the volumes organized into a plurality of chapters each chapter containing
at least one of the primary documents.
40. An automated multiple document assembly system according to claim 39,
wherein the organizing means includes means for generating a table of
contents of a chapter.
41. An automated multiple document assembly system according to claim 40,
wherein the document selection means includes means for accessing the
index document associating each chapter with a description of each primary
document contained in that chapter and for building a menu that provides
the description of a particular primary document associated with an
external document query input that is associated with that particular
primary document.
42. An automated multiple document assembly system according to claim 39,
wherein the organizing means includes a means for storing an index
document associating each chapter with a description of each primary
document contained in that chapter.
43. An automated multiple document assembly system according to claim 26,
wherein the selection means includes means for associating with each
primary document of the subset of primary documents a document identifying
name.
44. An automated multiple document assembly system according to claim 43,
wherein the subset of primary documents has associated therewith a subset
document list containing each document identifying name associated with
each primary document contained in the subset of primary documents.
45. An automated multiple document assembly system according to claim 44,
further including means for storing a plurality of subset document lists
associated with previously selected subsets of primary documents, wherein
the external input to which the document selection means is responsive
directs the document selection means to select, as the subset of primary
documents to be used for document assembly, the subset of primary
documents associated with a particular subset document list.
46. An automated multiple document assembly system according to claim 26,
wherein each of the plurality of primary documents is unique.
47. An automated multiple document assembly system according to claim 26,
wherein the number of primary documents in the subset of primary documents
is equal to the number of new documents in the set of new documents
created by the document processing means.
48. An automated multiple document assembly system according to claim 26,
wherein each of new documents in the the set of new documents created by
the document processing means corresponds one-to-one with a particular
primary document in the subset of primary documents.
49. A method for automated assembly of multiple documents comprising the
steps of:
storing a plurality of primary documents into at least one storage area,
where each primary document contains one of at least two types of data
fields, and where at least one of the types of data fields is a constant
value data field type and where at least a second one of the types of data
fields is a variable data field type, and where at least one of the
plurality of primary documents contains at least one data field of the
variable data field type;
selecting from the plurality of primary documents a subset of primary
documents to be used for document assembly;
creating a set of nonredundant variable data elements and associating each
element of the set of nonredundant variable data elements with one or more
respective variable data fields in one or more of the primary documents
comprising the subset of primary documents;
providing document completion data elements corresponding to the
nonredundant variable data elements;
creating a set of instructions for creating a set of new documents from the
subset of primary documents, where the set of instructions contains at
least one instruction for substituting in at least one of the new
documents comprising the set of new documents at least one document
completion data element in the place of a particular corresponding
variable data field; and
executing the set of instructions created through the previous step to
create the set of new documents that correspond to the subset of primary
documents specified during the selecting step.
50. A method according to claim 49, wherein the providing step includes a
step for generating a form for data entry for a user of the method to
supply document completion data elements associated with each of the
nonredundant variable data elements.
51. A method according to claim 50, wherein the generating step includes a
printing step for the printing of the form for data entry.
52. A method according to claim 51, wherein the generating step includes
the step of displaying the form to a user.
53. A method according to claim 49, wherein the step for storing the
plurality of primary documents includes a step organizing the plurality of
primary documents into a library of documents, wherein the library of
documents is further organized in the organizing steps into a plurality of
volumes with each of the volumes organized into a plurality of chapters
each chapter containing at least one of the primary documents.
54. A method according to claim 53, wherein the organizing step includes
the step of storing an index document associating each chapter with a
description of each primary document contained in that chapter.
55. A method according to claim 49, further including a step for storing
into at least one new document storage area subsets of new documents
created as a result of the execution step.
56. A method for automated assembly of multiple files comprising the steps
of:
storing a plurality of primary files into at least one storage area, where
each primary file contains one of at least two types of data fields, and
where at least one of the types of data fields is a constant value data
field type and where at least a second one of the types of data fields is
a variable data field type, and where at least one of the plurality of
primary files contains at least one data field of the variable data field
type;
selecting from the plurality of primary files a subset of primary files to
be used for file assembly;
creating a set of nonredundant variable data elements and associating each
element of the set of nonredundant variable data elements with one or more
respective variable data fields in one or more of the primary files
comprising the subset of primary files;
providing file completion data elements corresponding to the nonredundant
variable data elements;
creating a set of instructions for creating a set of new files from the
subset of primary files, where the set of instructions contains at least
one instruction for substituting in at least one of the new files
comprising the set of new files at least one file completion data element
in the place of a particular corresponding variable data field; and
executing the set of instructions created through the previous step to
create the set of new files that correspond to the subset of primary files
specified during the selecting step.
57. A method according to claim 56, wherein after the executing step, a
step of printing each of the new files.
58. A method according to claim 56, wherein the printing step includes a
step for storing subsets of the new files and further includes a step of
printing a particular subset of new files.
59. A multiple file assembly data processing system comprising:
at least one storage area for storage of a plurality of primary files,
where each primary file contains one of at least two types of data fields,
and where at least one of the types of data fields is a constant value
data field type and where at least a second one of the types of data
fields is a variable data field type, and where at least one of the
plurality of primary files contains at least one data field of the
variable data field type;
a file selector responsive to an external input for enabling selection,
from the plurality of primary files, of a subset of the primary files to
be used for file assembly;
a variable data field extractor responsive to the file selector for
creating a set of nonredundant variable data elements and associating each
element of the set of nonredundant variable data elements with one or more
respective variable data fields in one or more of the primary files
comprising the subset of primary files;
a variable data entry prompter, for prompting the supply of file completion
data elements associated with each of the nonredundant variable data
elements;
a variable data entry device for enabling file completion data elements
corresponding to the nonredundant variable data elements to be provided in
response to the variable data entry prompter;
a file completion instructor, for creating a set of instructions for
creating a set of new files from the subset of primary files, where the
set of instructions contains at least one instruction for substituting at
least one file completion data element in the place of a particular
corresponding variable data field in at least one of the new files
comprising the set of new files; and
a file processor for executing the set of instructions created by the file
completion instructor to create the set of new files from the subset of
primary files.
60. A multiple file assembly data processing system according to claim 59,
wherein the new files created are compatible with a word processing
program.
61. A multiple file assembly data processing system according to claim 59,
wherein the new files created are documents that contain only text.
62. A multiple file assembly data processing system according to claim 59,
wherein the file processor includes a printing processor that, in response
to at least one print command, prints any subset of the new files created
by the file processor.
Description
FIELD OF THE INVENTION
This invention relates generally to data processing systems having word
processing capabilities and designed for composing documents, letters,
files or the like. More particularly, the invention relates to a data
processing method and apparatus that allows a user to pick and assemble
numerous documents (or files) while collecting required variable field
information for each of the documents and eliminating duplicate
information. The system enables a user in a single data entry operation to
prepare each of the documents at substantially the same time by
distributing information entered to all the selected documents or files.
BACKGROUND AND SUMMARY OF THE INVENTION
Word processing systems have now become an indispensable tool in virtually
every office setting. Such word processing systems allow a user to
efficiently create and revise documents of all types such as personal
letters, legal contracts, corporate by-laws, etc.
Many of these word processing systems support the storage of frequently
used documents which may be individually accessed and completed with data
tailored to a particular user. Likewise, many word processing systems
permit a user to complete a common form letter with data relating to
numerous different individuals, as evidenced by the multitude of
personalized "junk" mail which is received by nearly everyone on a daily
basis. The merge option in presently available word processing systems
permit such standard form letters to be generated.
While presently available word processing systems include a document
merging capability, the merging capability is limited. For example, the
word processing system, WordPerfect, in addition to its standard word
processing document creation and revision features, allows a user to merge
documents through the use of a primary and secondary merge file. In this
regard, in WordPerfect, through the use of a "secondary" merge file, a
series of form documents can be generated using personalized data relating
to a series of individuals stored in a "primary" merge file. However, in
WordPerfect, if a different type of form document needs to be created, a
new secondary merge file must be independently created and supplied with
data.
In many commercial settings, there is a need for a series of unique
documents or files to be prepared and assembled for a single individual,
partnership, or corporation. Presently available word processing systems
require each such document to be independently prepared. Moreover, present
word processing systems are devoid of any mechanism for aiding a user in
efficiently assembling and managing multiple documents, even those which
are frequently used.
The present invention permits a user to integrate numerous substantially
unrelated documents (or files) while supplying such documents with
required variable field information. The present invention permits these
documents to be prepared and assembled with optimum efficiency and with
minimum errors.
For example, a lawyer may be required to prepare a set of distinct
documents all relating to a common party or parties, e.g., an employment
agreement, an employee confidentiality and invention agreement, a
non-compete agreement, and a cover letter for an employee of a particular
corporation. In the present invention, each of the documents is stored as
a form document having standard "boilerplate" language and variable field
information which must be tailored to a particular user.
In accordance with an exemplary embodiment of the present invention, a user
is only required to enter common variable information once for each of the
documents selected from a library of documents. Upon entering, for
example, his name, address, and other information only once, such
information is printed on each of the employment agreement, employee
confidentiality and invention agreement, the non-compete agreement as well
as a cover letter and envelopes addressed to the new employee.
The present invention is an interactive, menu-driven system which uses
prompt windows in which, for example, documents are selected and entry
formats are presented to prompt a user to enter common variable
information relating to numerous documents. The documents are stored in a
library which is organized into a series of volumes. For example, one
volume may be dedicated solely to legal documents.
Each volume is broken down further into a series of chapters where, for
example, one chapter in the legal volume may relate to commercial law
matters, another chapter may relate to real property related matters. Each
chapter, in turn, may store a series of specific documents falling within
the body of law to which the chapter is directed.
Each of the documents includes a series of field names that are required to
have data inserted therein to complete the document. Each of these stored
documents may be revised, edited, and manipulated in accordance with a
conventional word processing system which is resident in the system. For
example, in the exemplary embodiment of the present invention to be
described in detail below, each of the stored documents or files may be
edited using the commercially available WordPerfect word processing
system.
BRIEF DESCRIPTION OF THE DRAWINGS
These as well as other features of this invention will be better
appreciated by reading the following detailed description of the preferred
embodiment of the present invention taken in conjunction with the
accompanying drawings of which:
FIG. 1 is a schematic diagram of the hardware of an exemplary embodiment of
the present invention;
FIG. 2 shows an exemplary document library structure;
FIG. 3 is a schematic representation of the manner in documents are
created;
FIGS. 4A, 4B, 5A, 5B, 6A and 6B are a flowchart which delineates the
sequence of operations performed by the system's computer to perform
multiple document assembly operations in accordance with the present
invention;
FIGS. 7A, 7B, 8A and 8B are a flowchart delineating the sequence of
operations in the "form" subroutine;
FIGS. 9A and 9B are a flowchart delineating the sequence of operations
performed by the "scrform" subroutine;
FIG. 10 is a schematic representation of the set and configuration file;
FIG. 11 is a schematic representation of a file utilized to create a volume
menu;
FIG. 12 is a schematic representation of a file utilized to create a
chapter menu;
FIG. 13 is a schematic representation of the index file;
FIG. 14 is a schematic representation of a variable file;
FIG. 15 is an exemplary document select menu;
FIG. 16 is an exemplary first field data entry screen;
FIG. 17 is an exemplary second field data entry screen;
FIG. 18 is an exemplary screen display where a user can edit or modify a
volume;
FIG. 19 is an exemplary document description screen;
FIG. 20 is an exemplary document description screen showing variable fields
and associated descriptions; and
FIG. 21 is an exemplary reference file report.
DETAILED DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a schematic block diagram of an exemplary embodiment of a
multiple document assembly data processing system in accordance with the
present invention. In the detailed description which follows (or in the
associated drawings), any reference to the OverDrive system should be
construed as a reference to a multiple document assembly data processing
system in accordance with an exemplary embodiment of the present
invention. The heart of the data processing system is microcomputer 10
which may, by way of example only, be a commercially available IBM PC or
the like.
Coupled to microcomputer 10 is a keyboard 12, which may be, for example, a
Keytronics 5150. Keyboard 12 is used by the operator to key in data to
create documents and to control system operation by selecting options
during interactive operations. The microcomputer 10 is also coupled to a
display terminal 14, which may be a Samsung CD1452M extended graphics
adapter which provides a color display.
Documents generated on the system, as well as worksheets that are utilized
in the construction of such documents, are printed by a printer 16, which
may, for example be a HP Laser Jet Series 2 laser printer.
The system also includes main memory 18, which may, for example, be a
semiconductor dynamic random access memory having 640K bytes of storage
capacity. The system further includes a hard disk 20, which by way of
example only, has 10 Mega bytes of storage capacity. The system also
includes a floppy disk 22.
Each of these components are interfaced with microcomputer 10 via
conventional interface cards as will be appreciated by those skilled in
the art. In this regard, the system includes a hard disk controller 21
associated with hard disk 20 and a floppy disk controller 23 associated
with floppy disk 22. A conventional display controller 15, e.g., an
extended graphic video card 15, is associated with display 14. The system
also includes a parallel port 17 associated with printer 16.
The microcomputer's operating system, which may, for example, be the MS DOS
operating system (which is typically associated with an IBM PC),is
initially stored on hard disk 20 and is then loaded for execution into
main memory 18 upon turning the power on. Also resident on hard disk 20 is
a commercially available word processing software system for supporting
conventional word processing operations on documents generated by the
system. As noted above, by way of example only, the WordPerfect word
processing system is utilized in an exemplary embodiment of the present
invention.
A library of form documents is also resident on hard disk 20. The library
of documents, which is generally shown in FIG. 2, is organized and
accessible by volume, chapter, document, field or variables or paragraph.
By way of example only, the library, as shown in FIG. 2 includes a maximum
of five volumes. Each volume includes up to five chapters. Each chapter
stores up to fifty documents to thereby permit a maximum of up to 1,250
documents per library. The organization of documents in this fashion
permits documents to be meaningfully organized by subject matter and
allows for rapid access of any individual document. The documents stored
in the library system of FIG. 2 are referred to as the primary merge
documents in the system.
As shown in FIG. 2, the library includes five volumes 30-34. Each volume
has five associated chapters, such as chapters 35-39 associated with
volume 1. Volume 1 may, for example, be dedicated to legal related
documents and chapters 35-39 may be directed to personnel related legal
documents, real estate legal documents, wills and trusts, commercial legal
documents and corporate legal documents, respectively.
In the first chapter relating to personnel related legal matters may be
documents such as an offer of employment, an employment agreement, an
employee confidentiality and invention agreement, etc. Also associated
with each chapter is an index file 40 defining each document name and a
description of the contents of the document. The description of the
document provides a brief comment defining the basic nature of the
document. For example, if document 101 is an offer of employment, the
description might indicate that the document is a letter setting forth
agreed upon terms of employment.
The field names in a document defining the variable data that must be
individually tailored are also accessible, e.g., name of prospective
employee, address related data, job title, annual salary, etc.
Additionally, a document summary having comment fields may be associated
with each document. Such a summary may be utilized to inform an operator
when to use a document while providing information relating to the need to
modify the document under special circumstances.
Turning back to FIG. 1, also stored on hard disk 20 is the system software
(which is described below in conjunction which associated flowcharts)
which controls microcomputer 10 to operate in accordance with the present
invention. This system software is transferred to main memory from the
hard disk 20 during system operation as will be appreciated by those
skilled in the art. Other files which are stored on hard disk 20 are
described below in conjunction with the description of the flowcharts.
Resident in main memory 18 is a conventional command interpreter and
loading routine. This routine permits an operator to identify a file of
system software on a hard disk 20, retrieve the file, transfer it to main
memory 18 and execute the associated program.
In the detailed description of the flowcharts which follows, reference is
made to a wide variety of menus and display screens which are presented to
a user. The present invention utilizes commercially available menu and
display screen generating application tools which are not described in
detail herein to place a window on the screen and insert predetermined
text in a predetermined portion of the window. For example, the
commercially available product known as Vitamin C is an exemplary
development tool which may be utilized to generate such screens.
Prior to discussing the details of the software that controls microcomputer
10, some of the basic features of the present system will be first
described. The present system permits multiple selected documents to be
prepared at the same time in response to a single operator entry of
variable data common to each document.
The present system permits a user to select and assemble a wide range of
organized documents while allowing an individual document to be composed
using any combination of frequently used paragraphs. Additionally, the
system links and prints all documents in sequence while utilizing common
name and address to print out addressed envelopes.
As noted above, the system drives a library of, for example, up to 1,250
documents and forms, including those which are operated generated and
organizes such documents into volumes and chapters. The system includes a
comprehensive report generating system that includes a dynamically updated
library table of contents.
Using a conventional word processing system such as WordPerfect, the system
allows a user to select, enter, and assemble documents. The documents may
be reviewed by the user on display 14 during this process and may be
further customized and edited using the word processing functions.
This system incorporates a document review function which is referenced in
the flowcharts below as function F8 to allow a user to review any of the
documents stored in the system library. Documents may be selected using
the review function and printed with the variable field names inserted
into the selected documents. The review feature scans the stored field
information for the documents selected by the user and creates merge files
using the field names instead of the variable information normally entered
within a data entry window. Thus, a document may be printed using the
review function with field names such as "EMPLOYEE", "CORP NAME", etc., so
that a user is assisted as to the correct field data to be entered.
The present system relies on three files which are utilized together to
assemble documents. These files are the WordPerfect primary document
files, the assembly/print macros created by the present system (as will be
explained further below) and the field information files (the secondary
merge file) created from the data entered into the present system's entry
window. The text or form of the document remains constant during the
document assembly process and user defined merge only file information is
changed each time the document is assembled and used.
As generally indicated in FIG. 3, data is entered into the systems entry
window 52. Significantly, this data is distributed to the various
documents previously selected by the user for assembly as will be
explained further below.
A WordPerfect primary document 50 is shown in FIG. 3. FIG. 3 also shows the
macro 54 created by the system which controls the merging of documents 50
and the data 52 to thereby result in an assembled document 56.
It is noted that a macro is relatively brief program that performs routine
tasks in the system. A series of commonly used keystrokes are stored and
activated during the systems assembling and printing of documents. Macros
are executed either from a menu or by typing in [Alt] and a letter. For
example, [Alt] O brings up the systems macro menu which will be discussed
further below. The system uses macros to chain, link and print documents
simply by pressing one key.
Most standard documents are assembled by merging field information created
from the system's entry window with the stored WordPerfect primary
documents. In addition, the system allows for the assembly of documents
from a collection of building blocks, such as paragraphs or optional
provisions. The building block method of document assembly provides the
user the flexibility to construct a document by selecting various
different blocks of information stored as separate documents. The building
blocks inserted may be of a variable file size (a separate document
inserted into the document) and may include insertion of field information
as well as, for example, paragraphs to assemble a single document.
This building block method provides the user with the option to specify
various provisions or paragraphs at the time of data entry using the entry
window. Instead of entering variable data, the user types the name of the
document that contains the block or optional provision. The entire
contents of that document is then inserted into the primary document. If
the field is left blank, the systems resident word processing system
WordPerfect ignores the option and prints the document without using any
additional provisions. In order to operate in this mode, the field
definition associated with the data entry window must be completed with
data type "B" informing the system that the block provisions are being
utilized.
Turning now to the flowcharts in FIGS. 4 through 9, these flowcharts
delineate the sequence of operations that micro-computer 10 is controlled
to perform during the operation of an exemplary embodiment of the present
invention. Turning first to FIG. 4A, upon power up, after conventional IBM
PC system initiating operations are performed (100), the system's main
menu is accessed and displayed for the user (102). The main menu offers
the user a choice between the following five options: 1. select documents,
2. select reference, 3. library manager, 4. printing library reports or 5.
exiting system. Each of these options will be explained in detail below in
the context of describing the operations which are performed upon user
selection.
After the main menu is displayed at 102, the system as indicated at
terminal I/O block 104, enters a wait state awaiting an operator input at
keyboard 12. The system enters such a wait state after each menu is
displayed (even though only this initial wait state 104 is reflecting in
the flowcharts).
After the user has made a selection, a check is made to see whether the
select documents option has been chosen (106). After the "select document"
option or any of the other options is selected, the system clears from
memory previously selected documents no longer required for current
operation.
After the "select documents" option has been selected, a configuration file
is read into main memory (108). This file is referred to as the set up.cfg
file and is shown in FIG. 10.
Upon the user making any of the selections indicated on the main menu, the
set up.cfg file read into main memory to inform the system as to certain
fundamental system configuration features. Also system Global System
Memory is cleared which stores document selection information. In this
regard, the set up.cfg file may, be way of example only, include as shown
in FIG. 10, a sub-directory indicating where in the memory system the
system software program file is located. Additionally, this file includes
a sub-directory identifying where the word processing program file is
located as well as an indication as to the particular version of the word
processing program that is currently being utilized. Additionally, the
configuration file includes a sub-directory identifying where each of the
volumes described above are located. Finally, the configuration file
includes an indication as to whether the printer is utilizing continuous
form paper or individual sheet paper.
While such system data is required when first installing the multiple
integrated document assembly System of the present invention, it is also
required when volumes are added to the library. If the location of any of
the files described above are modified then the system must be informed of
such a change.
As noted above, the system configuration file includes information relating
to the word processing version which is currently being used. For example,
the current system operates with a WordPerfect word processing system.
However, the macro language associated with WordPerfect version 5 is
different than in version 4.X. However, through the use of the system
configuration file, the system automatically uses the appropriate macros
based upon the word processing version data in the set up.cfg file.
With respect to the printing option, the system can be set up for manual
printing. However, if no entry is made in this field of the system
configuration file, the system defaults to continuous form paper.
Additionally, upon the selection of the "select documents" option other
files from disk memory 20 are read in to the main memory 18. Certain of
these files are utilized by a "build menu" subroutine (110) to build
volume and chapter menus. In this regard, as shown in FIG. 11, a
"USER.DEF" file is utilized to create a volume menu. This file includes
fifteen volume related entries stored in five groups of three lines. Each
group relates to one of the five volumes in the system.
As shown in FIG. 11, for each of the five volumes, the first entry is a
menu selection item which, for example, identifies the volume of a "legal"
volume. The second line associated with each volume identifies the menu
that it calls. For example, the menu called by the volume 1 entry in the
USER.DEF file is the chapter menu associated with volume 1. The third line
associated with each volume is information to be displayed in the prompt
window.
Five additional files USER1.DEF through USER2.DEF are loaded into main
memory 18. Each of these files is constructed for example, as shown in
FIG. 12 which shows the USER1.DEF file. Each of these files is directed to
a respective chapter and is constructed, in a similar fashion to the
previously discussed USER.DEF file described above.
The first line in each of the files as shown in FIG. 12 include a menu
selection item which identifies a chapter, for example, Wills and Trusts.
The second line defines a four character chapter index that uniquely
defines a particular chapter. For example, under the volume, "LEGAL", and
he chapter, Wills and Trusts, the four character chapter index in the
second line of "USER1.DEF" file may include the four characters "WILL".
The third entry in the file shown in FIG. 12 is the information to be
displayed in the prompt window which is associated with that chapter.
By virtue of the files shown in FIGS. 11 and 12, the present system
utilizes the above mentioned Vitamin C window and screen capabilities to
allow the user to select documents and an associated description in any of
the 25 chapters. The data stored in these files may be modified by the
user so that different menus may be created for new or modified volumes
and chapters may be created or modified. Such modifications may be made by
utilizing the library manager option of the main menu which will be
described further below.
The system additionally requires a series of index files to build the menus
displayed to the user. For each chapter, as shown in FIG. 13 an index file
records the document name followed by a document description for up to,
for example, fifty documents. In this regard, the document name consists
of the four character chapter index identifying the chapter name, followed
by three digits identifying the document. The document description may,
for example, be up to sixty characters long.
A variable file is also used in the menu building process and is shown in
FIG. 14. The variable file exists for each chapter in the system. A
variable file for each chapter is accessed by the four digit indicator
uniquely identifying each of the twenty-five chapters in the system,
followed by "VAR", e.g., "CORP.VAR".
The variable file identifies the variable field information associated with
each of the documents. For every document in the system, the variable file
must include the same number of variable fields as contained in the
document.
As shown in FIG. 14, the initial entry in the variable file for each
document is a document name (which as noted above may comprise a chapter
index followed by a three digit document identifier). Following the
document name, a picture format field is utilized that defines the format
in which the variable field information is entered on the entry screen,
e.g., by entering numerical or textual data.
After the picture format field, the variable file includes a function field
which, for example, may indicate whether a check need to be made to
determine whether a date specified in a given document is a valid date. If
no function is associated with a given entry in the file, data reflecting
that "no function is indicated" is placed in this field.
The prompt window shown in FIG. 14, may for example, be up to fifty seven
(57) characters to be displayed as prompt, window prompt. The variable
file also includes information to be displayed as an entry window prompt
record which is associated with a field in the variable file and prompts
the user as to the nature of the information which must be entered for a
particular field.
The structure shown for FIELD 1 in FIG. 14 for a given document is repeated
for each of the fields 2 to N in the document. The same file structure is
repeated for each of the documents in the system.
Turning to FIG. 20, this figure shows a data entry screen for a document
identified as COMM101 in FIG. 20 shows for each of the eleven fields in
the document the data type, the number of characters which may be inserted
in a given field, followed by a prompt window for each of the fields and
an entry window prompt at the bottom of the screen.
Turning back to FIG. 4A, the document selection menus are constructed at
block 110 by loading of the volume and chapter menu data files shown in
FIGS. 11 and 12 into main memory. The user upon reviewing displayed volume
and chapter menu selects a volume and a chapter. After the user has
selected the chapter, the routine shown at 110, then loads the IDX file as
shown in FIG. 13 into main memory for the selected chapter. FIG. 15 shows
an exemplary document select menu which is generated by the system which
corresponds to the index file shown in FIG. 13. The screen identifies a
volume, chapter, and identifies a document by a chapter index (e.g., COMM)
and a three digit number. A document description is also included.
Documents may be selected by moving the cursor to a document in FIG. 15
and hitting the enter key.
The build menu routine 110 in FIG. 4A thus utilizes the volume, chapter,
and index files shown in FIGS. 11 through 13 to allow a user to select a
series of documents. The user is able to mark documents that have been
selected, as well as display a representation of selected documents to
review the selections.
Once a document is selected, the document name is loaded into an array in
memory which identifies those documents which have been selected. Keyboard
12 shown in FIG. 1 preferably includes a function key which initiates the
accessing of this array so that the user can initiate a display of the
document names selected. After the documents have been selected, a further
function key serves to load a conventional word processing routine (e.g.,
WordPerfect) into main memory along with a summary file for the documents
selected. By virtue of the above described processing in block 110, the
system, identifies each of the documents selected to which additional
variable field information needs to be merged.
As indicated at block 112, after the menus have been constructed, a prompt
window is displayed to allow the user to select entry form, worksheet, or
document review option (which will be described in detail below). The
prompt window appears at the bottom of the screen at which point the user
is ready to create an entry window via function key F7.
A print out of the entry form may be obtained by selecting the "print
worksheet" option which as indicated at block 112, is accessed by hitting
the shift and the F7 (SF7) function key. By receiving a copy of the
worksheet, a user can fill it out off-line and have the entry form keyed
in by another party.
By selecting the review function fields names are automatically merged with
the document instead of the variable information. The review function is
actuated by hitting function key F8 and is designed to printout field
associated prompts so that a user can clearly identify the precise data
that is required to be in a particular field.
Exemplary first and second entry screens are shown in FIGS. 16 and 17.
Information is entered into each field shown in the precise format that it
will appear in the assembled documents. The entered alpha-numeric
characters may be edited in accordance with the field processing system
loaded into main memory at block 110. After information has been entered
into a field, use of the enter key or the down arrow key will move the
cursor to the next field. At the bottom of the screen shown in FIGS. 16
and 17 are prompt windows which provide the user with additional
information as to what needs to be inserted in the field currently being
operated on.
After the prompt window is displayed at block 112, subsequent processing is
dependent upon which option is selected by the user. However, as shown, in
processing blocks 116, 122, and 128, regardless of which option is
selected, "form" sub-routine is executed.
The "form" subroutine extracts variable information from the chapter
variable file for documents which have been selected by a user. The
routine keeps track of the number of documents that have been selected and
organizes the number of documents selected by chapter. After sorting the
documents by chapter, variable information is read in from the files and
stored in predetermined global memory locations. Thereafter, comparisons
are made to determine whether a field is a unique field or a duplicate
field. In this manner, variable field information from different documents
is analyzed to find the unique fields which are stored in memory to create
an entry form which relieves the user from having to enter duplicate
information common to a number of the documents selected. Such processing
also permits a user who does not require an entry form to be displayed to
have a worksheet printed out or to perform a review function as described
above. Thus, the form routine by keeping track of those documents which
have a variable fields in common with other documents, insures that the
variable is supplied to all the necessary documents even though the user
entered the variable only once.
FIGS. 7A, 7B, 8A, and 8B are a detailed flowchart of the "form" subroutine.
As noted above, this subroutine is called upon the operator choosing any
of the options displayed in the prompt window at block 112 in FIG. 4A.
Upon entry into the subroutine (500), a check is made to determine whether
the number of documents selected by the user is greater than 20 documents.
If so, then the maximum number of documents which may be selected by the
user has been exceeded and the routine returns to the calling subroutine
to have the user make another selection (501).
If the number of documents is not greater than 20, then a check is made to
determine whether the current document being processed is greater than the
number of documents selected (504). If so, the loop is exited and a check
is made at block 520 to determine whether the chapter index is greater
than 25, the maximum number of chapters permissible.
If the document being processed in the loop is not greater than the number
of selected documents, then the selected documents are sorted by chapter.
At block 506, in order to find out the selected document's chapter, the
first four letters of the current document name are copied into a
character array (referred to as TESTS in block 506). As indicated at block
508, a check is then made to determine whether the chapter index is
greater than 25 to determine whether all of the chapters have been tested.
If the chapter index is greater than 25, then the loop is exited to block
520. If the chapter index is less than 25, then a comparison is made at
block 510 to compare the current document name with current chapter index
code to determine if a given document is within a particular chapter. If
the current document name is not equal to the current chapter index code
as determined at block 512, then the chapter index is incremented to go to
the next chapter and the next chapter index code is selected (514). The
routine thereafter branches back to block 508 to repeat the steps
indicated at blocks 508, 510, and 512.
Upon finding a match at block 512, the current document name is copied to a
character array which indexed by chapter (i.e, 1-25) and by the number of
documents selected in the current chapter (1-20) as indicated at block
516. After the copying operation at block 516, the counters associated
with the current loop are appropriately incremented. In this regard, the
document index and the number of documents selected per chapter are
incremented (518). In this fashion, all the documents selected by the user
are sorted by chapter while keeping track of the number of documents
selected in each chapter.
As noted with respect to FIG. 14, there is one variable information file
per chapter. By organizing documents by chapter and keeping track of the
number of documents selected per chapter, the variable file fields may be
efficiently utilized since the variable file stores all of the field
information required to build an entry window on a chapter basis.
The loop beginning at block 520 is an important processing loop in the
present invention. Based on the documents selected a "unique field" array
is created. The unique field array stores in a predetermined location in
memory all the unique variable fields in the documents selected. At the
same time, all fields which are duplicated are kept track of to enable the
system to identify those documents which have common duplicated fields. In
this fashion, a single user data entry will result in corresponding data
being inserted into each of the documents requiring such duplicated
variable information.
At block 520, at the beginning of this loop, a check is made to determine
whether the chapter index is greater than 25, which is the maximum number
of permissible chapters in an exemplary embodiment of the present system.
If so, a return is made to the prompt window at block 112 (521). If the
25th chapter has not yet been reached, a check is made to determine if the
number of documents selected in the current chapter being operated on is
greater than 0 (522). In this manner, the routine determines if there are
any documents to be processed in a given chapter. If not, then the chapter
index is incremented and the next chapter index code is selected (524) and
the routine branches back to block 520.
If the number of selected documents in the chapter is greater than 0, then
a field information file is opened for the current chapter (526). At 528,
a check is made to determine whether the counter keeping track of the
documents processed per chapter is greater than the number of documents
actually selected in the current chapter by the user.(528) If so, then the
chapter index is incremented and the next chapter index code is selected
(524) and the routine branches back to block 520. If not, then a unique
symbol is placed in front of the current document name in the current
chapter being processed (530). In this fashion, the system can uniquely
identify that an item is a document name.
Thereafter, a search is made for a document match in the field information
file shown. If a document match is not found as determined at block (534),
then the user is informed that the document is not found in the field
information file and a return is made to the prompt window at block 112 in
FIG. 4. The failure to find a document match indicates that the variable
information shown in FIG. 14 has not been stored for the document being
processed. This indicates that the document has not been entered into the
system library and its associated files and therefore cannot be found.
If a document match is found, then as shown in FIG. 8A the field
information pertaining to the document is copied from the variable file
(as shown in FIG. 14) to a "current field" area in memory. Additionally, a
bit in memory which is utilized as a document flag is set, for example, to
a binary "1" state representing a flag "on" state (538). In this fashion,
the field information data relating to a particular document such as the
picture format, functions, status window prompt and entry window prompt
described above are loaded into memory for subsequent processing. This
data is utilized to create the entry forms that the user uses as described
above with respect to block 112 in FIG. 4.
Processing in the next loop is performed on each of the fields in a
document. The loop is exited once all of the fields in a given document
are processed. As indicated at block 540, a check is made to determine
whether the document flag is on and to determine whether the current field
being processed relates to the next document. If so, then the document
flag is turned off, the counter keeping track of the number of selected
documents in the chapter is incremented and the next document is selected
for processing (542). Thereafter, the loop is re-entered at block 528.
If the field being processed is not in the next document, and if the
document flag is on, as determined by block 540, then a check is made to
determine whether the current field is already present in the unique field
array. The current field number is compared with the number of unique
fields in the unique field array to determine whether the current field
number is greater than the number of unique fields (544). If so, the
routine branches to clock 554. If not, a comparison is made of the current
field data that is stored (as shown in FIG. 14) with the data in the
unique field array. In this regard, the picture format, the prompt window
and entry window prompts of the current field are compared to
corresponding data in the unique field array (546).
If these items are equal, as determined by the check at block 548, then the
current field being processed is already present in the unique field array
and a pointer is created which links the original document to the portion
of the unique field array where appropriate field information is stored.
Additionally, a "non-unique" flag is turned on identifying the field as
not being unique (552). The "not unique" flag being on indicates that the
field does not need to be saved in the unique field array, since it is
already present.
Turning back to the check made at block 548, if these items are not equal,
then the field number is incremented (550) and the routine branches to
block 544 until the field number is greater than the number of unique
fields. Under such conditions, the routine by-passes blocks 544 through
552.
Thereafter, a check is made at block 554 to determine whether the "not
unique" flag is on. If so, then blocks 556 and 558 are skipped and no
information is copied into the unique field array. However, if the "not
unique" flag is off, then a check is made to determine whether the number
of unique fields is greater than the maximum permissible limit (e.g., 120)
(556). If so, no further field information can be entered into the unique
field array and the "not unique" flag is turned off (560).
If the number of unique fields is not greater than 119, then the field
information which has been determined to be unique is copied into the
unique field array and the number of unique fields is incremented and a
pointer is set linking the selected document to the portion of the unique
field array where appropriate field information is stored (558).
Thereafter, a check is made to determine whether the number of unique
fields is greater than the maximum permissible limit (562). If not, then
the file pointer is moved to the next field (564) and the routine branches
to block 538 so that the next field information may be copied from the
variable file to the current field file in memory. If the check at block
562 reveals that the number of unique fields is greater than the maximum
permissible limit, then a message is printed to the user identifying the
problem with a request for a repeated document selection with less
documents selected and the routine branches back to the prompt window 112.
In summary, the "form" subroutine places in memory all the variable fields
which are in the selected documents. Whenever one or more documents is to
be merged with variable field information, it is necessary for the "form"
subroutine to be executed. The execution of the "form" routine creates a
file in memory which links variable field data with the appropriate
selected documents. The execution of the "form" subroutine sets the stage
for the user to enter user specific data.
Turning back to FIG. 4A, if the user as determined by blocks 120 or 126,
either selects the display of an entry form or the "review" option, after
the "form" subroutine is executed, the "scrform" subroutine is executed
immediately thereafter (122 and 128).
The "scrform" subroutine takes the information and files created by the
"form" subroutine and either creates an entry form (as commanded by the
selection of F7) or puts the field prompts in the merge file (if the
review function is selected). The "scrform" routine creates both the merge
files and the associated macro files which are necessary to assemble the
documents.
Upon entry of the "scrform" subroutine (600) which is shown in FIGS. (9a
and 9B, a check is made to determine if the review flag is on (602). The
review flag is set if the user selects the review function.
If the review function is selected, an entry form need not be created and
the entry form generation steps are bypassed. Instead, the field prompts
are loaded in accordance with the review function. Thus, if the review
flag is on, a check is made (604) to determine if the number of unique
fields is greater than the number of fields. If not, then the current
entry form prompts are copied to the unique field array and the number of
fields counter is incremented (606). After the number of fields counter is
incremented (606), the routine branches back to block 604 and the loop is
repeated until the number of unique fields is greater than the number the
current field being processed. Under such conditions, the routine branches
to block 610 skipping the creation of the entry form step at block 608. As
noted above, an entry form is not created if the review function has been
selected.
The copying of the current entry form prompt at block 606 serves to load a
prompt or descriptor associated with the field currently being processed.
For example, if a will is being prepared, in the field dedicated to the
testator's name, instead of data identifying the testator being inserted
into this field, the prompt "insert testator's name" is inserted. This
prompt makes clear to the user the nature of the information which must
later be inserted, thereby reducing the number of errors associated with
incorrect entry of information.
If the review function was not selected (602) and entry form is created
(604). After the entry form is created from the field information stored
as a result of the processing in the "form" subroutine (or after it has
been determined that the number of unique fields is greater than the
number of fields (604)), a check is made at block 610 to see if the
chapter index is greater than the maximum permissible number of chapters.
If so, then the routine branches to block 634, which will be described
below. If not, a check is made to determine whether the count defining the
number of the document currently being processed is greater than the
number of documents selected in the chapter currently being processed
(612). If so, then the chapter index is incremented (614) to move to the
next chapter and the routine branches back to block 610.
If the current document number is not greater than the number of documents
selected in the current chapter, then a check is made at block 616 to
determine whether the number of fields in the document has been reached
which is greater than the maximum permissible number of fields per
document to thereby finish the loop counting the number of fields per
document.
If the number of fields is not greater than 50, then the number of fields
is incremented (618). Thereafter, a check is made to determine whether the
value of a predetermined field index is equal to 0 (620). This field index
is an index in the unique field array whose value identifies the field in
another document selected that is common to the current field.
Additionally, if the field index is equal to zero, for example, for field
number 10, that indicates that there is not a field number 10 in the
document.
Thus, the check at 620 results in a determination as to how many fields are
in the document. If the field index is not equal to 0, thereby indicating
that there may still be remaining fields in the document, the routine
branches to block 616.
If the field index is equal to 0, then the document number counter is
incremented and files are opened for writing into memory the secondary
merge file that includes the data entered by the user on the entry form.
Additionally, as indicated at block 622, a file is written containing the
macros controlling the printing and merging of files required to assemble
individual documents.
These macros identify the primary and secondary files to be merged, as well
as the instructions for merging. Such macro instructions enable a user to
initiate a merge operation by hitting, for example, a single keystroke,
which causes the accessing of the macros to initiate such operations.
These files are identified by document number 1 merge file through document
number 20 merge file and document number 1 macro file through document
number 20 macro file (since only a maximum of 20 documents may be selected
by the user at one time). A file is also maintained to equate a document
number (1 through 20) with the seven digit name of the document described
above so that the user can verify that the documents being merged are the
proper documents.
After the processing at 622, in which the document merge and document macro
files are opened, a check is made to determine whether a index which is
stepped from 1 through the maximum permissible number of fields is greater
than the actual number of fields in the documents (which had been
determined previously in the loop defined by block 616, 618, 620) (624).
If this local index is greater than the number of fields, then a check is
made to determine if both a variable "edit" is equal to "null" and the
variable "pick" is equal to "block" (626). If the variable "edit" equals
"null" the operator failed to request any editing functions. If the
variable "pic" is equal to "block", then the operator selected a block
macro in which paragraphs or various provisions may be specified for
insertion into the document at the time of data entry. If both "edit" is
equal to "null" and "pic" is equal to "block", then the output of the edit
file operation is initiated at block 630. Otherwise, "[ ]" is inserted
into the unique field array (edit).
At block 630, the information typed in by the operator is outputted to the
merge file. By outputting "edit" to the merge file in block 630, either
the information entered by the user or the prompt fields (if the review
function has been selected) are placed in the merge file. Also, in order
to satisfy the requirements of the resident word processing system
(WordPerfect), at the end of each field a special character (i.e., (shift
6) R which is generated by shift -6) is output to the merge file to denote
the end of a field. Additionally, the index referred to above at block 624
is incremented and the routine branches back to block 624 to repeat the
check as to whether the index is greater than the number of fields as
described above.
If the check at block 624 indicates that the index is greater than the
number of fields then the routine branches to block 632. At block 632, a
special control character is output (i.e., (shift 6) E which is generated
by shift -6) to a merge file to indicate that the end of the merge file
has been reached. At this point, the macros associated with the merge file
are output to a macro file for the current document.
After block 632, the routine begins processing the next document at block
612 described above. This routine is ultimately exited when the decision
block 612 reveals that the document number is greater than the number of
documents selected in the current chapter at which point the chapter index
is incremented (614) and a further check is made as to whether the chapter
index is greater than 25 (610). If the chapter index is greater than 25,
the routine is exited after outputting chain print macros (634) which
serve to control the sequential printing of each of the documents selected
by an operator in response to an operator keystroke requesting the
printing of documents. After outputting the chain print macros, the sub
routine returns control to the calling routine.
Turning back to FIG. 4A, if the operator selected the print worksheet
option, as indicated in block 116, the "form" subroutine is executed.
Thereafter, a routine is executed which prints the entry form worksheet
utilizing the results of the processing of the "form" subroutine (e.g.,
the unique field array). The printing of the worksheet results in the
printing of the name of the documents selected and each of the fields that
must be supplied with information for the selected combination of
documents.
After printing the worksheet, routines are executed at block 118, which
result in the saving of the documents which have been selected so that
these documents may be called by a reference name without going through a
build menu routine previously described at block 110. Thus, if a user
selects a predetermined set of documents, such predetermined set of
documents may be accessed via the use of a reference name chosen to refer
to that set of documents. These documents, as indicated at block 118 may
be saved at the user's option with our without the data that has been
entered into the variable fields in the documents. Thereafter, a return is
made to the main menu.
It is noted that the "refentry" routine shown at block 118 initially checks
to determine whether the reference entered to represent the set of
selected documents currently is in existence. If so, the operator is given
an opportunity to overwrite the previous reference selection. The
reference refsave routine shown at block 118 then performs the saving
function described above.
If the check at block 114 reveals that the print worksheet function has not
been selected, a check is made at 120 to determine if a request has been
made for the entry form via function key F7. If so, then as described
below the form routine is executed, followed by the scrform routine to
thereby result in the creation of the data entry form, as well as the
macro file for the selected documents (122). Once the data entry form is
created and completed by the user via keyboard entries, the reference
entry and reference save routines are executed as described above at block
118, after which there is a return to the main menu (124). The save
operation in block 124, if the operator so chooses, results in the saving
of the documents with the entered field data.
If the check at block 120 reveals that the entry form option was not
selected, then a check is made at 126 to determine whether the review
function has been selected. If so, a review flag is turned on. If the
review function has been selected, as described above, the form and
scrform routines are executed resulting in the creation of macros tailored
to implementing the review function (128). In this regard, the entry field
prompts are associated with a variable document field as described above.
Thereafter, the reference entry and reference save routines are executed
to perform the functions described above. The execution of these routines
may, if the user chooses, result in the saving of the reference entry
prompts in the documents variable fields. Thereafter, the routine returns
the user back to the main menu (130).
Turning back to block 126, if the check indicates that the review function
has also not been selected then a holding loop is entered awaiting the
operator to make one of the selections indicated in the prompt window at
block 112. When the operator makes his selection, the processing as
indicated in blocks 118, 124, 130 ultimately returns to display the main
menu at block 102.
If the check at block 106 indicates that the "select documents" options was
not selected, a check is made at decision block 150 to determine if the
"select reference" option has been selected. If so, the set up and
configuration file is read into memory as described in detail above with
respect to block 106 (152).
The "refpick" routine is then executed as shown at block 154. This routine
creates a file which enables the user to select a previously entered
reference name to thereby access all of the documents chosen in a prior
select documents session. In this fashion, the user is not required to
manually select each of the documents previously selected.
The refpick routine creates a file of all the files that have an extension
"ref" indicating that the user has requested that his selection of
documents, (e.g., "Corp 101", "Corp 102", and "Corp 103") be saved along
with the related data for the fields therein in accordance with the
processing in blocks 118, 124, and 130 described above. This file is then
used to create a menu selection set for all the reference files.
Each of these reference files lists the collection of documents selected
and a designated reference file name. The reference files are displayed
for the user who, upon viewing his reference file, presses enter to
thereby retrieve the reference file and load it into memory. Thereafter, a
prompt window 156 is generated to set the stage for processing operations
very similar to those described above, with respect to the "select
document" processing.
As indicated at block 156, a prompt window is generated which is similar to
the window described above at block 112. In the prompt window shown at
156, however, the operator is given a choice of using the same group of
documents selected in a prior session, either with or without the data
which was entered during the previous session. In this regard, if the
operator wants to use completely new data in the new session, the function
key F7 should be selected. Alternatively, if the operator wants to
retrieve the prior data selected then the operator hits the Shift key
followed by striking the F10 key (SF10).
As noted above, the processing that takes place in blocks 158-180 is nearly
identical to the processing previously described above and accordingly
will only be briefly described hereinafter.
Turning to block 158, the routine checks to determine whether the operator
chose the print worksheet option (158) (which is the same printwork sheet
option discussed above). If so, a data indicator is set to 1 indicating
that reference data must be loaded and a flag is set equal to zero. As
indicated at block 160, data is loaded from the appropriate reference file
and the form routine and a routine which results in the printing of the
worksheet are executed. Thereafter, the reference entry and reference save
routines are executed precisely as described above with respect to block
118 (162).
If the operator did not choose the print worksheet option, a check is made
to determine whether the "retrieve data" option was selected (164). If so,
the data indicator is set to 1 indicating that data must be provided and
the flag field is set equal to 1 indicating that the data previously
entered with respect to the selected prior session is accessed and loaded
(164). Thereafter, reference file data is loaded and the form and the
scrform routines described above are executed to create a data entry form
with the previously selected data intact, well as the required macros.
(166). Thereafter, the reference entry and reference save routines are
executed as described above, at for example block 118.
If the retrieve data option, was not selected a check is made at 170 to
determine whether the "new data" option has been selected. If so, the data
indicator is set to zero. Thereafter, the reference file is loaded without
the field data and the form and scrform routines are executed to create a
data entry form (with the required macros) in which the user can enter
completely new data (172). Thereafter, the reference entry and reference
save routines are executed as described above, in regard to block 124
(174).
If the "new data" option was not selected, a check is made at 176 to
determine whether the review option had been selected. If so, the data
indicator is set to zero and the flag indicator is set to 1. Thereafter,
the reference file is loaded without data and the appropriate field names
are entered in accordance with the review function described above. The
form and scrform routines are then executed which create the macros with
field data as described above in regard to block 128 (178). Finally, the
reference entry and reference save routines are executed (180).
If the check at 176 reveals that the review function had also not been
selected then the system goes into a hold mode awaiting for an operator
selection. Any selection by the operator at blocks 162, 168, 174, or 180
ultimately returns the operator to the main menu.
Focussing back on the main menu, it is now presumed that the operator
chooses the library manager option. If so, as shown in FIG. 5A, the check
at 190 triggers the reading in of the set up and configuration file at 192
as was previously described in conjunction with 108.
The library manager is a group of routines which allows a user to customize
the system menus, index files (as shown in FIG. 13), and variable files
(shown in FIG. 14). The library manager also allows for new documents to
be added to the library.
The library manager menu shown at 194 allows a user to update or modify a
system library which as described above includes, for example, a maximum
of five volumes, where each volume contains up to five chapters and each
chapter contains up to fifty documents. From the menu shown at 194, a user
may add an entire volume, chapter or simply a document. When adding new
volumes, the system configuration can be changed to modify the manner in
which documents are located.
Presuming that the "Volume and Chapter Heading" option is chosen as
indicated by the check at block 196, the user is able to create or modify
a volume and/or chapter. Upon selecting the volume and chapter heading
option, a screen such as shown in FIG. 18 is displayed. As shown in FIG.
18, a prompt is displayed asking for the number of the volume to add or
modify.
FIG. 18 shows that two volumes have already been created; legal and sample
forms. The "Legal" volume, for example, may contain a number of prepared
legal agreements. The volume "Sample Forms" may contain cover letters and
preprinted forms, for example, relating to airbills and/or envelopes.
Thus, the user may use the documents in these volumes or create new ones
as shown in FIG. 18. Volumes 3-5 are left open, for example, for the user
to add any standard forms and documents specific to a particular
organization.
The "Document Name and Description" allows a user to add or modify document
names and descriptions in the library. Upon entering option number 2 as
determined by block 200, a volume select menu appears for the user to key
in the appropriate volume. Upon entering the name of the volume, a list of
the chapters in the volumes is displayed by entering a chapter, a list of
document names and descriptions within a selected chapter will appear,
such as, for example, shown in FIG. 19. These document descriptions if
modified, likewise correspondingly changes the index file shown in FIG.
13.
It is further noted that in addition to the document description shown in
FIG. 19, the system also includes a document note pad window which is a
word processor associated function which enables a user to enter
information regarding special notes or descriptions beyond the mere
identification of the document shown in FIG. 19. The document note pad
window serves to display a text file that is under the same name as the
document selected with a "sum" extension added and allows for extensive
comments to be added regarding the document.
The "Document Field Information" option of the library manager allows the
user to modify the field information of the type described in FIG. 14. As
should be apparent from the above description, an agreement or form that
is used in document assembly consists of standard form paragraphs and
associated variable field locations. These fields may change depending on
the parties involved. Each document must have a set field definitions
which corresponds to merge codes located in the WordPerfect document file
that is in a merge ready format. This field information is required as
previously described in order for the entry window to be created. These
fields also must correspond to the primary merge document.
By selecting an appropriate volume and chapter and entering the number of
the document, these variable fields may be displayed such as shown in FIG.
20. Presuming that the field variables have already been created, a list
of field definitions for the selected documents may be displayed as shown
in FIG. 20. Changes to such data may be made by the user. If during data
entry, a particular field is left blank the system will place brackets in
the merge file to alert the user that an entry was missed if the field
data type is not "B" for block. As described in detail above in
conjunction with the form subroutine, commonly used fields are repeated
throughout related documents. The system automatically checks for such
field duplicates so that the operator will only have to enter a common
field once. In order for the system to accomplish this however, it is
important that the fields are created with exactly the same verbiage as
the related documents.
The "New Document Worksheet" option of the library manager allows a user to
receive a print out of an essentially blank version of the data entry
screen shown in FIG. 20 so the user can fill in the actual field data
offline. Such a worksheet is used when preparing the document for assembly
into the system's word processing package WordPerfect.
If library manager option 5 is selected as determined at 212, the set up
and configuration file described in conjunction with block 108 and shown
in FIG. 10 is displayed. Using this option a user may edit and modify the
information shown in FIG. 10. As shown in block 194 the user is also
provided with the option of exiting the main menu.
Turning now to decision block 196, if the "Volume and Chapter Heading"
option is selected as shown in block 198, a routine is executed (showvol)
which causes the display of the "Volume" screen shown in FIG. 18. The
displayed information can then be edited. The "create menu" routine,
referred to in block 198 performs the same function, except that it
displays the five chapters in a selected volume and permits editing of the
chapters.
If the "Volume and Chapter Heading" option was not selected, a check is
made to determine whether the Document Name and Description option was
selected (200). If so, a routine is executed which places the chapter
index file on the screen (which is shown in FIG. 13) so that it may be
edited.
If the Document and Description option was not chosen, a check is made at
204 to determine whether the document field information option is
selected. If so, a routine is executed (creatvar) at block 206 which
responds to an operator entry of volume, chapter and specific document
document information, to displays the appropriate variable file (see FIG.
14) on the screen so that the user may appropriately edit such field
information.
A check is then made at 208 to determine if the New Document Worksheet
option was selected. If so, a routine is executed at block 210 to printout
a new document worksheet as described above.
If the user did not select the New Document worksheet option at block 208,
a check is made at 212 to determine whether the system configuration
option was selected. If so, a routine is executed (214) which serves to
display the set up and configuration file shown in FIG. 10 to allow for
the user to edit the system configuration file as described above with
respect to FIG. 10.
If the user did not choose the system configuration option, a check is made
at 213 to determine whether the user selected to exit back to the main
menu. If so, a return is made to the main menu (215). If not, the system
is set to a wait state to await an operator's option selection.
Upon return to he main menu presuming that the user selects option 4, a
check at block 220 initiates the read in of a set up and configuration
file described above in conjunction with block 108 in FIGS. 4A and 10.
Thereafter, the "Library Reports" menu shown at 224 is displayed for the
user.
If the user chooses option 1 as indicated at block 226, a routine is
executed that results in a print out of a table of contents for all the
chapters. This report includes a list of all the documents in the library
by volume and chapter. It is formed by printing out all the index files,
such as the index files shown in FIG. 13 (228).
If the table of contents option 1 is not chosen, a check is made at block
230 to determine whether a chapter table of contents option has been
selected. If so, a selected chapter table of contents is printed by
printing out the index files for a particular chapter (232).
If option 2 was not selected, a check is made at block 234 to determine
whether the Field Information Report (option 3) was selected. If so, the
user gets a print out of all the field definitions for each document
within a selected chapter (236). Such a report is generated by accessing
the variable file field information for a particular chapter as shown in
FIG. 14. A list of fields appears on one page per document in the selected
chapter. This report is useful for managing common fields within related
documents in a chapter.
If option 3 is not selected then a check is made to determine whether the
Field Information Report of option 4 was selected at 238. If so, the user
receives a print out of all the field definitions for a selected document
(240). This report is generated by accessing the variable file such as
shown in FIG. 14 for a particular document.
If the operator did not select option 4, a check is made at block 242 to
determine whether the Library Reference option was selected. This report
which is generated at 244 lists all the reference files shown in the
system library. An exemplary reference file report is shown in FIG. 21.
If option 5 was not selected, a check is made at 246 to determine if an
individual reference report option has been requested. If so, a reference
file select menu appears allowing the user to highlight an appropriate
reference file name, and thereafter press enter which will result in the
print out of an individual reference file (248).
If option 6 is not selected, then a check is made to determine whether the
operator requested a return to the main menu (250). If so, the routine
initiates a display of the main menu (252). If not, the system enters into
a wait state awaiting the user to select an option.
If the check at block 220 reveals that choice 4 was not selected, a
determination is made as to whether the direct document enter function
(SF10) has been selected (260). If so, the set up and configuration file
is read into memory as described above in conjunction with FIG. 4A and
FIG. 10. A direct document enter function is initiated by function key F10
while hitting the shift key. This feature allows the user to perform
either the "document selection" option 1 or the "select reference" option
2 directly from the main menu without selecting the document names by
using options 1 and 2.
In this regard, for frequently utilized documents a user may remember the
document numbers and using this feature may type in the document numbers
to select documents. At block 264, the user enters a document or a
reference by name.
A check is then made at 266 to determine whether the operator's entry
refers to a reference name which exists. If not, then the prompt window
shown in block 268 is displayed for the user. It should be noted that the
prompt window in block 268 is identical to the prompt window of block 112
in FIG. 4A under option 1. This menu was accessed directly without having
to go through the build menu routine described above in conjunction with
block 110 (since the operator knew the document name).
The processing which takes place if the SF7 option is selected (as
determined at block 270) and the subsequent processing in blocks 272 and
282 is identical to the previously described operations in blocks 114,
116, and 118 described above with respect to FIG. 4A. Similarly if choice
F7 is selected as indicated at block 274, the processing at block 274 and
the processing at 276 and 282 is identical to the corresponding blocks
described above in FIG. 4, (120, 122, 124). Finally, the operations
described associated with blocks 278, 280, and 282 are identical to that
previously described with respect to FIG. 4 block 126, 128, 130 and
accordingly are not described in detail herein.
Turning back to decision block 266, if the reference does exist, then the
prompt window shown at block 284 is displayed for the user. This prompt
window is identical to the prompt window previously described above at 156
in FIG. 4B. Similarly, the option processing shown in blocks 286-302 is
identical to the processing associated with choice 2 of the main menu and
described in detail in blocks 158-180 above in conjunction with FIG. 4B.
If the direct document enter option is not selected as determined by the
check at block 260, then a check is made at block 304 to determine whether
the user chose to exit the system. If not, the system enters a wait state
for the user to select one of the main menu options 1-5 or select the
direct document enter function. If the user does choose to exit the system
the system is exited as indicated at block 360.
While the flowcharts described in detail above are sufficient to enable a
programmer of ordinary skill to make and use the subject matter defined in
the appending claims, the appendix which follows includes a source listing
of the routines referenced in FIGS. 4A, 4B, 5A, and 5B. It is noted that
the appendix which follows includes a listing of the form subroutine
described above in FIGS. 7A, 7B, 7C, and 7D and a listing of the scrform
routine described above in FIGS. 9A and 9B. The routines included in the
appendix are listed in the Appendix Table of Contents which follows.
##SPC1##
While the invention has been described in connection with what is presently
considered to be the most practical and preferred embodiment, it is to be
understood that the invention is not to be limited to the disclosed
embodiment, but on the and equivalent arrangements included within the
contrary, is intended to cover various modifications spirit and scope of
the appended claims.
Top