WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for representing bordered areas of a generic form with records    
United States Patent5208906   
Link to this pagehttp://www.wikipatents.com/5208906.html
Inventor(s)Morgan; Michael W. (Camarillo, CA)
AbstractAn apparatus and method for incorporating a topological two-dimensional partitioning procedure for dynamically creating, revising, storing, displaying and printing generic forms. The generic form contains a plurality of bordered areas. Each of the bordered areas may be included within a larger bordered area, and each of the bordered areas may contain a plurality of nonoverlapping smaller bordered areas, text or graphics. The text includes none, one or more lines of characters and the smaller bordered areas are arranged either vertically or horizontally with relation to each other. Each of the bordered areas of the form is associated with a record which defines the characteristics of the associated bordered area. The record indicates the larger bordered area, if any, which contains the bordered area and the record also indicates the plurality of smaller bordered areas, if any, which are included in the bordered area. The record may also contain information on whether the smaller bordered areas are arranged horizontally or vertically within the bordered area.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5208906
Method and apparatus for representing bordered areas of a generic form

     with records - US Patent 5208906 Drawing
Method and apparatus for representing bordered areas of a generic form with records
Inventor     Morgan; Michael W. (Camarillo, CA)
Owner/Assignee     Chipsoft CA, Corp. (San Diego, CA)
Patent assignment
All assignments
Publication Date     May 4, 1993
Application Number     07/586,256
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 21, 1990
US Classification     715/520 715/506 715/508 715/518 715/521
Int'l Classification     G06F 015/20
Examiner     Herndon; Heather R.
Assistant Examiner    
Attorney/Law Firm     Irell & Manella
Address
Parent Case     RELATED APPLICATIONS This application is a divisional application of patent application having Ser. No. 292,611, filed Dec. 30, 1988, which is still pending, the priority of which is claimed and the entire disclosure of which is incorporated herein by reference. This application is filed concurrently with divisional application having Ser. No. 586,546.
Priority Data    
USPTO Field of Search     364/518 364/521 364/523 340/721 340/723 395/157 395/158 395/160 395/148 395/149
Patent Tags     representing bordered areas generic form records
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4962475
Hernandez
715/515
Oct,1990

[0 after 0 votes]
4962465
Saito
345/467
Oct,1990

[0 after 0 votes]
4829294
Iwami
715/803
May,1989

[0 after 0 votes]
4823108
Pope
715/806
Apr,1989

[0 after 0 votes]
4788538
Klein
345/418
Nov,1988

[0 after 0 votes]
4736308
Heckel
715/781
Apr,1988

[0 after 0 votes]
4658366
Posh
715/507
Apr,1987

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


I claim:

1. In a computer system having a display screen and a memory for storing data, a method for effectively representing a generic form, said representation intended to allow dynamic alteration of said generic form, said generic form characterized as a two-dimensional space comprising a plurality of non-overlapping bordered areas, each of said bordered areas including none, one or more non-overlapping smaller bordered areas or text, said text comprising none, one, or more lines of characters, each of said smaller bordered areas included within an associated larger bordered area in said bordered areas, said method comprising the steps of:

storing a plurality of records defining structure of said generic form, each of said records associated with at least one of said bordered areas and including information with respect to said at least one bordered area,

establishing interlinking indications in said records for identifying structural relationships between said plurality of records, said interlinking indications for identifying whether one of said bordered areas includes any of said smaller bordered areas and whether one of said bordered areas is included in any of said associated larger bordered areas.

2. The method of claim 1 further including the step of determining whether said included smaller bordered areas are arranged horizontally or vertically within said associated larger bordered area in accordance with said information in said records.

3. The method of claim 2 wherein said method further includes the step of:

operative when said smaller bordered area is included in said associated larger bordered area and said smaller bordered area is arranged horizontally in relation to other smaller bordered areas included within said associated larger bordered area, determining which of said other smaller bordered areas within said associated larger bordered area are immediately adjacent to said associated smaller bordered area in accordance with said information in said records.

4. The method of claim 2 wherein said method further includes the step of:

operative when said smaller bordered area is included in said associated larger bordered area and said smaller bordered area is arranged vertically in relation to other smaller bordered areas included within said associated larger bordered area, determining which of said other smaller bordered areas within said associated larger bordered area are immediately above and below said smaller bordered area.

5. The method of claim 1 further including the step of:

operative when said associated larger bordered area includes a plurality of said smaller bordered areas, determining a quantity of said plurality of smaller bordered areas included within said associated larger bordered area in accordance with said information in said records.

6. The method of claim 1 further including the step of determining a width of one of said bordered areas in accordance with said information in said records.

7. The method of claim 1 further including the step of determining a height of one of said bordered areas in accordance with said information in said records.

8. The method of claim 1 further including the step of determining a location of one of said bordered areas within said generic form in accordance with said information in said records.

9. The method of claim 8 wherein each of said plurality of bordered areas are rectangular in shape and each of said rectangular bordered areas is defined by two pairs of coordinates, each of said coordinate pairs defining said location within said generic form, one of said pairs of coordinates for identifying said location of top/left corner of said rectangular area and another pair of coordinates for identifying said location of bottom/right corner of said rectangular area, and said method including the step of determining said coordinate values for said coordinate pairs.

10. The method of claim 9 wherein each of said plurality of bordered areas are rectangular in shape and each said rectangular bordered area defined by two pairs of coordinates, each of said coordinate pairs defining said location within said generic form, one of said pairs of coordinates for identifying said location of top/right corner of said rectangular area and another pair of coordinates for identifying said location of bottom/left corner of said rectangular area, and said method including the step of determining said coordinate values for said coordinate pairs.

11. The method of claim 1 wherein said computer system includes an output means, said output means including a display means and a printer means and each of said plurality of bordered areas is defined by a nonprintable border and said method including the step of determining whether said border is to be displayed on said display means in accordance with said information in said records.

12. The method of claim 11 wherein each of said plurality of bordered areas is also defined by a printable border and said method further including the step of determining whether each of said printable borders is to be displayed and printed by said display means and said printer means.

13. The method of claim 12 wherein said step further includes the step of defining one or more attributes of said border.

14. The method of claim 13 wherein said one or more attributes includes a thickness, a color, and a style and said step for defining said attributes includes the step of defining said thickness, said color and said style of said border.

15. The method of claim 1 wherein each of said included smaller bordered areas is with an ordinal position within said associated larger bordered area, and said method including the step of identifying at least one of the first and the last said included smaller bordered area in said associated larger bordered area.

16. The method of claim 5 further including the steps of:

storing a plurality of text records, and

operative when any of said bordered areas contains none of said smaller bordered areas, pointing to a text record, said text record for storing one or more characteristics of said text included within said any of said bordered areas.

17. The method of claim 16 wherein said text record includes a pointer to said text and said method further including the step of pointing to said text which is included within said any of said bordered areas.

18. The method of claim 16 wherein said step further includes the step of determining a height of each of said none, one or more lines of characters in accordance with said text records.

19. The method of claim 16 wherein said step further includes the step of determining a total number of said characters included within said any of said bordered areas in accordance with said text records.

20. The method of claim 16 wherein said step further includes the step of determining a character style of one or more said characters in accordance with said text records.

21. The method of claim 16 wherein said step further includes the step of determining a font type of one or more of said characters in accordance with said text records.

22. The method of claim 16 wherein said step further includes the step of determining a font size of one or more of said characters in accordance with said text records.

23. The method of claim 16 wherein said method further includes the steps of determining a quantity of said none, one or more lines of characters of said text in accordance with said text record.

24. The method of claim 16 wherein said step further includes the step of determining a position of each first character of each of said none, one or more lines of characters in accordance with said text records.

25. The method of claim 16 wherein said step further includes the step of determining a special justification of said text within said any of said bordered areas.

26. The method of claim 25 including the step of justifying said text to a right, left, top, bottom or middle border of said any of said bordered areas.

27. The method of claim 1 further comprising the step of:

determining one or more additional characteristics of said bordered areas needed for said dynamic alteration of said generic form in accordance with said information in said records.

28. A computer apparatus for effectively representing a generic form, said representation intended to allow dynamic alteration of said generic form, said generic form characterized as a two-dimensional space comprising a plurality of non-overlapping bordered areas, each of said bordered areas including none, one or more non-overlapping smaller bordered areas or text, said text comprising none, one, or more lines of characters, each of said smaller bordered areas included within an associated larger bordered area in said bordered areas, said computer apparatus comprising:

means for storing a plurality of records defining structure of said generic form, each of said records being associated with at least one of said bordered areas and including information of said at least one of said bordered areas,

means for interlinking said plurality of records, said interlinking means including means for identifying whether one of said bordered areas includes any of said smaller bordered areas, and whether one of said bordered areas is included in any of said associated larger bordered areas.

29. The computer apparatus of claim 28 further comprising means for determining whether said included smaller bordered areas are arranged horizontally or vertically within said associated larger bordered area.

30. The computer apparatus of claim 29 further comprising:

when said smaller bordered area is included in said associated larger bordered area and said smaller bordered area is arranged horizontally in relation to other smaller bordered areas included within said associated larger bordered area, means for determining which of said other smaller bordered areas within said associated larger bordered area are immediately adjacent to said associated smaller bordered area.

31. The computer apparatus of claim 29 further comprising:

when said smaller bordered area is included in said associated larger bordered area and said smaller bordered area is arranged vertically in relation to other smaller bordered areas included within said associated larger bordered area, means for determining which of said other smaller bordered areas within said larger bordered area are immediately above and below said smaller bordered area in accordance with said information in said records.

32. The computer apparatus of claim 28 further comprising:

when said associated larger bordered area includes a plurality of smaller bordered areas, means for determining a quantity of said plurality of smaller bordered areas included within said associated larger bordered area in accordance with said information in said records.

33. The computer apparatus of claim 28 further comprising means for determining a width of one of said bordered areas in accordance with said information in said records.

34. The computer apparatus of claim 28 further comprising means for determining a height of one of said bordered areas.

35. The computer apparatus of claim 28 further comprising means for determining a location of one of said bordered areas within said generic form in accordance with said information in said records.

36. The computer apparatus of claim 35 wherein each of said plurality of bordered areas are rectangular in shape and each of said rectangular bordered areas is defined by two pairs of coordinates, each of said coordinate pairs defining said location within said form, one of said pairs of coordinates for identifying said location of top/left corner of said rectangular area and another pair of coordinates for identifying said location of bottom/right corner of said rectangular area, and said apparatus further comprising means for determining said coordinate values for said coordinate pairs in accordance with the information in said records.

37. The computer apparatus of claim 36 wherein each of said plurality of bordered areas are rectangular in shape and each said rectangular bordered area defined by two pairs of coordinates, each of said coordinate pairs defining said location within said form, one of said pairs of coordinates for identifying said location of top/right corner of said rectangular area and another pair of coordinates for identifying said location of bottom/left corner of said rectangular area, and said apparatus further comprising means for determining said coordinate values for said coordinate pairs.

38. The computer apparatus of claim 28 wherein said computer system includes an output means, said output means including a display means and a printer means and each of said plurality of bordered areas is defined by a nonprintable border and said apparatus further comprising means for determining whether said border is to be displayed on said display means in accordance with said information in said records.

39. The computer apparatus of claim 38 wherein each of said plurality of bordered areas is also defined by a printable border and said apparatus further comprising means for determining whether each of said printable border is to be displayed and printed by said display means and said printer means in accordance with said information in said records.

40. The computer apparatus of claim 39 further comprising means for defining one or more attributes of said border.

41. The computer apparatus of claim 40 wherein said one or more attributes includes a thickness, a color, and a style and said means for defining said attributes further comprising means for defining said thickness, said color and said style of said border.

42. The computer apparatus of claim 28 wherein each of said included smaller bordered areas is with an ordinal position within said associated larger border area, and said apparatus further comprising means for identifying at least one of the first and the last said included smaller bordered area in said associated larger bordered area in accordance with said information in said records.

43. The computer apparatus of claim 28 further comprising:

means for storing a plurality of text records, and

when any of said bordered areas contains none of said smaller bordered areas, means for pointing to a text record, said text record for defining one or more characteristics of said text included within said any of said bordered areas.

44. The computer apparatus of claim 43 wherein said text record includes a pointer to said text and said apparatus further comprises means for pointing to said text which is included within said any of said bordered areas.

45. The computer apparatus of claim 43 further comprising means for determining a height of each of said none, one or more lines of characters.

46. The computer apparatus of claim 43 further comprising means for determining a total number of said characters included within said any of said bordered areas.

47. The computer apparatus of claim 43 further comprising means for determining a character style of one or more said characters.

48. The computer apparatus of claim 43 further comprising means for determining a font type of one or more of said characters.

49. The computer apparatus of claim 43 further comprising means for determining a font size of one or more of said characters.

50. The computer apparatus of claim 43 further including means for determining a quantity of said none, one or more lines of characters of said text.

51. The computer apparatus of claim 43 further comprising means for determining a position of each first character of each of said none, one or more lines of characters.

52. The computer apparatus of claim 43 further comprising means for determining a special justification of said text within said any of said bordered areas.

53. The computer apparatus of claim 52 further comprising means for justifying said text to a right, left, top, bottom or middle border of said any of said bordered areas.

54. The apparatus of claim 28 further comprising the step of:

means for determining one or more additional characteristics of said bordered areas needed for said dynamic alteration of said generic form in accordance with said information in said records.

55. A method for using a computer system for representing a generic form, said representation intended to allow dynamic alteration of said generic form, said generic form characterized as a two-dimensional space comprising a plurality of non-overlapping bordered areas, each of said bordered areas including none, one or more non-overlapping smaller bordered areas or text, said text comprising none, one, or more lines of characters, each of said smaller bordered areas included within an associated larger bordered area in said bordered areas, said method comprising the steps of:

building a hierarchical structure for said generic form in said computer system, said building step including:

storing a plurality of records defining said hierarchical structure, each of said records being associated with one of said bordered areas or text, said hierarchical structure including a record for a top level bordered area of said generic form and records for one or more lower level bordered areas or text of said generic form,

establishing interlinking indications in said records for identifying said hierarchical structural relationships between said bordered areas, said interlinking indications identifying whether one of said bordered areas includes any of said smaller bordered areas and whether one of said bordered areas is included in any of said associated larger bordered areas,

whereby said bordered areas and said text can be effectively represented by said computer system from said top level bordered area to said lower level bordered areas and text of said generic form.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

An apparatus and method are disclosed for incorporating a topological two dimensional partitioning procedure for dynamically creating, revising, storing, printing and displaying generic forms.

BACKGROUND OF THE INVENTION

In the past decade a growing interest has evolved for using computers for generating forms. Forms have been and always will represent a communications metaphor that document many different types of transactions. Whether transactions happen with or without computers, forms are everywhere. Most forms are preprinted, created and supplied by external form suppliers. The Business Forms Management Association estimates that businesses spend between $6 and $8 billion dollars a year to create and print preprinted forms. Industry pundits estimate that businesses spend as much as twenty times that amount storing, managing and printing forms.

The process for generating a form is typically a tedious one. When the form finally receives final approval and goes on to an outside printer, it gets printed, distributed and hundreds of thousands of copies of the form are inventoried into a paper storage. Each time the form undergoes modification, the process of approval and storage starts all over again.

In an effort to economize the process of generating forms, electronic form software has been developed. Such software is another example of the personal computer's rapid displacement of functions previously done on expensive, dedicated, single-purpose types of business equipment, such as electronic publishing and business presentation graphics. Electronic forms are defined as computer-generated forms that incorporate graphics which exist independent of variable data and can be generated on demand. Electronic form software provides individuals with an alternative to using expensive phototypesetting equipment, with the additional benefit of adding speed and accuracy.

Electronic forms represent significant cost savings to businesses. When compared to the costs of designing and completing preprinted forms, electronic forms save businesses money; they require no physical space, they are easily revised (reducing waste of obsolete forms), and they often are printed on cut sheet paper. The costs of using computer-generated forms on cut sheet paper is less than purchasing preprinted forms. The cost of completing forms, estimated to be as much as twenty times the cost of the form, will be reduced by having built-in calculations and logic checking.

Although electronic forms are stored in computers, the user can do many things with electronic forms that are now done on preprinted forms; they can be filled in, approved, filed, and printed. The current packages, however, are limited in their application because these packages are really just typing programs for enabling a user to efficiently fill in and have neatly typed up a form.

Another type of form package enables a designer to design a form on screen and save it for reuse, or to scan in an existing paper form, which is then displayed on screen for completion. The advantage of these form packages is the ability to produce the electronic form to the exact specifications of the preprinted form, easing the user transition to the electronic form by providing the same "look" to the electronic form. Many of these form packages result in intelligent forms or smart forms. Intelligent forms generally imply forms that are interactive in numerical intelligence. In contrast to "dead forms", these forms will accept user entries, compute values and may even link values or amounts to other forms. The sophistication of the user entry acceptance (i.e. formatting, error checking, etc.) and the sophistication of computation and linking may vary considerably across different form packages.

A significant design issue in form generation with regard to these existing packages is the level of flexibility that the package has in editing or revising the form after a layout has been created. Stated differently, even if a form package has tackled the complex issues of computations, linking, interfacing with the database, etc., the ability of the package to edit or revise the layout of the form is a pressing issue in determining the value of an electronic form generation package. The issue boils down to whether a form once created can be easily changed, for example, by deleting a field, making a field smaller, making a field larger, moving a field, all while the rest of the form automatically adjusts to accommodate the change.

To date, no package has incorporated a concept of "graphics intelligence" to enable a system to dynamically adjust and accommodate for changes in the form. Graphics intelligence is a type of intelligence in form creation which enables all of the elements within a form to "understand" their positional relationships vis-a-vis each other. Hence, changes made to element size, text font, text size, placement, shape, etc., may cause other portions of the form to readjust, stretch, move over, or realign to positionally accommodate the change while maintaining the overall integrity or "basic look" of the form. By contrast, in existing form packages, when certain changes in layout are made, subsequent manual adjustments of other individual elements in the form may be required to fit the new design. Without incorporating graphics intelligence, such changes to the graphic layout of the form require a designer to redraw portions of the form and in some circumstances to redraw the entire form.

SUMMARY OF THE INVENTION

The present invention provides a method and apparatus that reduces or eliminates the disadvantages of prior methods for changing the graphic layout of a form referred to above.

Briefly the present invention includes an apparatus and method for incorporating a topological two dimensional partitioning procedure for using a computer for dynamically creating, revising, storing, displaying and printing generic forms. For the first time, changes to the graphical layout of a form, particularly a complex form, do not necessarily require designer intervention in order to redraw portions of the form and, in some circumstance, the entire form. Particularly, the present invention provides a method and apparatus for maintaining the integrity of the form (i.e. information integrity and structural integrity) by readjusting, stretching, realigning, etc. bordered areas within the form in order to accommodate changes made to bordered area size, text font, text size, placement, shape, etc.

The preferred embodiment of the invention includes an apparatus and method for dynamically altering a generic form in a computer. The form can be characterized as a two-dimensional space partitioned into a plurality of bordered areas. One or more bordered areas include text. The text includes none, one or more lines of characters and each character of the text has adjustable font attributes. The adjustable font attributes include font type, font style, and font size. The method of the preferred embodiment for dynamically altering the form occurs in the following two steps.

First, for one or more bordered areas of the form, the size of the one or more bordered areas is altered by changing the adjustable height and/or the adjustable width of the one or more bordered areas so that the adjusted one or more bordered areas overlap one or more other bordered areas of the form. For the bordered areas having one or more lines of text, the font attributes of the text may also be changed so that the text overlaps into one or more other bordered areas of the form.

Second, for one or more bordered areas of the form, the adjustable height and/or the adjustable width and/or the adjustable font attributes of the text are dynamically altered (i.e. increased or decreased) in order to ensure that overlapping does not occur.

In the preferred embodiment the step of dynamically altering the adjustable height and/or the adjustable width and/or the adjustable font attributes includes the step of aligning the borders of at least two of the bordered areas so that the borders maintain alignment regardless of what happens as a result of the step of dynamic altering. This step typically includes aligning the borders of the at least two bordered areas in a vertical direction or a horizontal direction.

The present invention also includes another embodiment method for representing a generic form in a computer. The form comprises a plurality of bordered areas. The bordered area is considered to be the fundamental structural unit within the form and it contains other smaller bordered areas, text or the graphics. The text consists of one or more characters, and the graphics includes any two dimensional drawings (i.e. lines, arrows, circles, polygons, fills, pictures, etc.). For purposes of describing the preferred embodiment of the present invention, bordered areas shall be limited to containing text or other bordered areas, but it should not be limited thereto Each of the bordered areas may also be included within a larger bordered area. Each of the bordered areas of the form is associated with a record which defines the characteristics of the associated bordered area. The method for representing a generic form comprises the following two steps. For each of the associated records of the bordered areas of the form, the first step includes indicating the larger bordered area, if any, which contains the bordered area, and the second step includes indicating the plurality of smaller bordered areas, if any, which are included within the bordered area.

Furthermore, the method may also include the step of indicating within the associated record of the bordered area whether the included smaller bordered areas are arranged horizontally or vertically. The orientation of the bordered areas is important for enabling the preferred embodiment to properly accommodate changes in the size of each bordered area.

The preferred embodiment also includes a method and apparatus in a computer for calculating the size of one or more bordered areas within a generic form. The size of each of the bordered areas is represented by a width and a height. Each of the bordered areas may be included in a larger bordered area and each bordered area includes a plurality of smaller nonoverlapping bordered areas or text. Text consists of none, one or more lines of characters. The method for calculating the size of the bordered area occurs in the following steps.

The width of one of the bordered areas (the currently processed bordered area) of the generic form is obtained. Then a determination is made as to whether the bordered area includes a plurality of smaller bordered areas or whether the bordered area includes text. When the bordered area includes text, the next step includes determining the height of the bordered area by determining the cumulative height of the none, one or more lines of characters. When the bordered area includes the plurality of smaller bordered areas, the next step includes determining whether the included smaller bordered areas are arranged within the bordered area horizontally or vertically. When the included smaller bordered areas are arranged horizontally, the next step includes determining the height of each of the included smaller bordered areas, determining which of the determined heights is the maximum height and determining the width of each of the included smaller bordered areas. When the included smaller bordered areas are arranged vertically, the next step includes determining the height of each of the included bordered areas and determining the cumulative height of all of the included bordered areas. The widths of the vertically arranged included smaller border areas are equal to or less than the width obtained for the currently processed bordered area.

The steps for determining the height of each of the included smaller bordered areas further include the step of performing of the steps of the above method one or more times to determine the size of each of these smaller included bordered areas. This process continues until all of the bordered areas within the form and their smaller included bordered areas (descendants) have been sized.

Additionally, the preferred embodiment of the invention includes a method and an apparatus in a computer for placing the contents of each bordered area of a generic form. The contents of the bordered area includes a plurality of nonoverlapping smaller bordered areas or none, one or more lines of text. The bordered area has top, bottom, left and right boundary locations and the bordered area may be included within a larger bordered area. The smaller included bordered areas (if any) also have top, bottom, left and right boundary locations. The method for determining the location of the contents the bordered area occurs in the following steps.

The locations of the top, bottom, left and right boundaries of the bordered area whose contents need to be located are obtained. Then a determination is made as to whether the bordered area includes the plurality of smaller bordered areas or text. When the bordered area includes text, then a determination is made as to whether the text should be aligned to the top, middle or bottom boundaries of the bordered area. When the bordered area includes smaller bordered areas, then a determination is made as to whether the smaller bordered areas are arranged within the bordered area horizontally or vertically. Assuming that the bordered area contains horizontally arranged smaller bordered areas, the location of the left and right boundaries for each of the included smaller bordered areas are determined. The location of the top boundary for each of the included smaller bordered areas are aligned (adjusted) to the top boundary of the bordered area. The location of the bottom boundary for each of the included smaller bordered areas are aligned to the bottom boundary of the bordered area. When the bordered area contains vertically arranged bordered areas, the location of the top and bottom boundaries for each of the included smaller bordered areas are determined. The location of the left boundary of each of the included smaller bordered areas are aligned to the left boundary of the bordered area, and the location of the right boundary for each of the included smaller bordered areas are aligned to the right boundary of the bordered area.

The displayed form is typically represented by a plurality of pixels which are selectively enabled or disabled on a display. Each pixel identifies an X,Y coordinate address. In the preferred embodiment, each of the bordered areas within the generic form is rectangular in shape and each of the bordered areas is represented by two pairs of X,Y coordinate addresses. One of the pairs of the X,Y coordinate addresses represents the location of one corner of the rectangular bordered area and the other represents the opposite corner of the rectangular bordered area. The method for placing the contents for each bordered area of the generic form further contains the step of, assigning the locations of the bordered areas of the generic form their X,Y coordinate addresses. In this way, the locations of the top, bottom, left and right boundaries for the bordered areas are defined.

Lastly, the preferred embodiment of the invention also includes an apparatus and method for displaying and printing the generic form according to the locations determined for each of the bordered areas of the generic form.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram representation of a computer system 2 for creating, revising, storing, displaying and printing generic forms in accordance with the present invention;

FIG. 2 depicts a bordered area having three elements (portions) and demonstrates reconfiguration without graphics intelligence;

FIG. 3 depicts the same bordered area having three elements as shown in FIG. 2 and demonstrates reconfiguration with graphics intelligence and without horizontal constraints;

FIG. 4 depicts the bordered area having three elements as shown in both FIG. 2 and FIG. 3 and demonstrates reconfiguration with graphics intelligence and with horizontal constraints;

FIG. 5A depicts a typical form as displayed on the screen display means (5 FIG. 1) of the computer system 2 (FIG. 1);

FIG. 5B depicts a menu item requested by a user of computer system 2 (FIG. 1) for changing font size of a portion of the form text (the "Caption Text" i.e., columns 44 and 46, FIG. 5A) from 9 points to 15 points;

FIG. 6A depicts the form as shown in FIGS. 5A and 5B with the font size increased to 15 points resulting in rewrapping of text and the vertical length of the resulting form scrolled off the top and bottom of the screen;

FIG. 6B depicts the form of FIG. 6A with the numbering field moved to left, forcing text to the wrap and the vertical length to readjust in order to accommodate for the reduced horizontal width;

FIG. 7A depicts the form of FIG. 6B with the right border of the numbering field moved to the right, extending the horizontal width of the numbering field and the numbers are recentered.

FIG. 7B depicts the form of FIG. 7A with the left border of the numbering field moved further to the right, causing text to automatically unwrap to fill the additional horizontal space and causing the form to shrink vertically;

FIG. 8A depicts a form similar to FIGS. 5A-7B, which is further divided) into rectangular bordered areas;

FIG. 8B shows a hierarchial tree structure representation of the top portion of the form as shown in FIG. 8A;

FIG. 8C is a table representation of the top portion of the form as shown in FIGS. 8A and 8B, indicating whether the bordered area includes smaller bordered areas (or descendants) or text;

FIG. 9 depicts a flow block diagram of the RESIZE/REDRAW Routine performed by the computer system 2 (FIG. 1) for resizing and redrawing generic forms;

FIG. 10 depicts a flow block diagram of the FITFORM Routine referenced during the RESIZE/REFORM Routine (FIG. 9) for determining the size and placement of the root bordered area of the form and all of its descendants;

FIG. 11 is a flow block diagram of the DRAWFORM Routine referenced during the RESIZE/REFORM Routine (FIG. 9) for displaying the resized form and all of its descendant bordered areas on display screen 5 (FIG. 1);

FIG. 12 is a flow block diagram of the PLACEFORM Routine referenced during the FITFORM Routine (FIG. 10) for determining the location or placement of the root bordered area of a form and all of its descendants;

FIG. 13A is a flow block diagram of the FITCELL Routine referenced during the FITFORM Routine (FIG. 10) for resizing a bordered area of a form;

FIG. 13B is a flow block diagram of the COMPUTE SIZE FOR TEXT CELL Routine referenced during the FITCELL Routine (FIG. 13A) for calculating the size of a bordered area containing text;

FIG. 13C is a flow block diagram of the COMPUTE SIZE FOR VERTICAL CELL Routine referenced during the FITCELL Routine (FIG. 13A) for determining the size of a bordered area which contains vertically arranged descendants;

FIG. 13D is a flow block diagram of the COMPUTE SIZE FOR HORIZONTAL CELL Routine referenced during the FITCELL Routine (FIG. 13A) for determining the size of a bordered area which contains horizontally arranged descendants;

FIG. 13E is a flow block diagram of the REAPPORTION CHILDRENS' WIDTH Routine referenced during the COMPUTE SIZE FOR HORIZONTAL CELL Routine (FIG. 13D) for apportioning the total width available among each of the descendants;

FIG. 14A depicts a "blown-up" version of the upper lefthand corner of the form shown in FIG. 8A;

FIG. 14B is a table representation of the form shown in FIG. 14A along with old and new widths, heights, rectangular coordinates and the type of contents of each bordered area;

FIGS. 15A, 15B and 15C depict a results table for showing the contents of a stack and the currently processed bordered area according a detailed example of FITCELL Routine Set (FIGS. 13A-F);

FIG. 16A is a flow block diagram of the PLACECELL Routine referenced by the PLACEFORM Routine (FIG. 12) for calculating the boundary locations for the contents of the bordered area currently processed;

FIG. 16B is a flow block diagram of the PLACE TEXT CELL Routine referenced during the PLACECELL Routine (FIG. 16A) for determining the displayable area and the text drawing area for the text of the currently processed bordered area;

FIG. 16C is a flow block diagram of the PLACE HORIZONTAL CELL Routine referenced during the PLACECELL ROUTINE (FIG. 16A) for determining the left and right boundary locations for each of the horizontally arranged children associated with the currently processed bordered area;

FIG. 16D is a flow block diagram of the PLACE VERTICAL CELL Routine referenced during the PLACECELL ROUTINE (FIG. 16A) for determining the top and bottom locations for each vertically arranged child within the currently processed bordered area;

FIG. 16E is a flow block diagram of the DETERMINE VERTICAL ALIGNMENT Routine referenced during the PLACE VERTICAL CELL Routine (FIG. 16E) for determining the vertical location of the top-most border of the first vertically arranged child within the currently processed bordered area;

FIG. 16F is a flow block diagram of the JUSTIFIED Routine referenced during the DETERMINE VERTICAL ALIGNMENT Routine (FIG. 16E) and the PLACE TEXT CELL Routine (FIG. 16B) for calculating the starting