METHOD FOR MAKING COMMON BLANK FORM FOR A PLURALITY OF CARD IMAGES IN A DATA PROCESSING SYSTEM

Abstract: In a method for making a common blank form for a plurality of card images (21, 22, ..., 21′, 22′, ...) belonging to a "box" (1, 1′) in a data processing system, fixed information and field indicating information are written into a mode image buffer (83). The content of the mode image buffer is displayed on a display unit (87). The field indicating informa­ tion written into the mode image buffer is analyzed to make field definition information tables (T₃, T₆), and a field name for each field is detected to make a field name table (T₇). By sorting and merging the contents of the field definition information tables and the field name table, a blank form is made.

Description: The present invention relates to a method for making a blank form common for a plurality of card images in a data processing system in which a card image is displayed on a display unit for processing of content thereof. Description of the Prior Art In general offices, office workers store information in physical card systems. Progress in office automation, however, has led to proposals for the use of electronic card systems based on card images. In such electronic card systems, information can be speedily processed by word processing. That is, a card image can be displayed on a display unit and the necessary information added thereon. In such systems, identical form data are preferably not stored for each card along with the individual card data, since this would enormously increase the amount of stored data. Therefore, cards having common form data are desirably grouped into so-called "boxes". Note that if each card format has to be made by a data specification statement including data name, data length, and data attributes such as character data and numeric data, considerable work is created for the worker. It is desirable to provide a method for making a common blank form for a plurality of card images grouped into a "box", in which the preparation of a blank form is made simple and the defined blank form is visually determined. An article entitled "The System for Business Automation (SBA): a unified application development system" by S. Peter de Jong, in Information Processing 80, IFIP, 1980, pages 469 to 473, North Holland Publishing Co., discloses a system which employs a Query-by-Example relational database language (QBE). QBE is said to be a two dimensional language consisting of tables and boxes, with which a screen manager deals directly. Fig. 1 of the article gives an example of a table (INVENTORY) and boxes (the COMMAND box and the CONDITION box) in relation to QBE. The article also refers to the SBA system and says that, unlike QBE, SBA does not contain a preferred set of objects. It is said that the SBA system is constructed out of abstract objects called BOXes. Each box is independent and can execute concurrently. Each box contains the operations necessary to support the object and the object's data. It is said that the SBA box is a general container which can represent data, programs, people, locations, etc. The SBA box is said to have four sections:- IDENTIFIER, INPUT, OUTPUT and CONTENTS. An article "Query-by-Example: The invocation and definition of tables and forms", from Proceedings of the International Conference on very large databases, Boston, Mass., U.S.A., September 22, 1975, pages 1 to 24, discloses a relational database which can be defined and queried using the Query-by-Example (QBE) relational query language. In this database a relation is basically a table with columns which correspond to respective different attributes (e.g. name, salary, manager, department) associated with each entry in the table. Each row in the table corresponds to a different entry. The data in each column, i.e. the data about each attribute, is constrained to conform to the data field format specified for the column (e.g. field size, field type, etc.). Each column, i.e. each attribute, is given a name (e.g. "name", "salary", etc.). Thus entries having a common set of attributes are grouped into a so-called table. To define a table the operator constructs a skeleton of the table, with columns and column names. The operator then defines the formats of the data fields corresponding to each column. The definitions are accomplished by entering symbols, which indicate the length and type of each field example. A form definition can be constructed, for presenting data from the database together with constant elements (e.g. unvarying text labels). A form is first graphically constructed with all the constant elements and their locations. Then, example elements are entered in the form in place of the variables (i.e. the data relating to the different attributes of entries in the database from which the form is to take data). The user must then define a new table to link the variables in the form to the database. According to the present invention, there is provided a method for making a blank form common for a plurality of card images, wherein card images having a common blank form are grouped into a so-called box in a data processing system having a keyboard, a mode image buffer and a display unit for displaying the content of said mode image buffer thereon, comprising the steps of:- generating via the keyboard by an operator fixed information symbols defining a field name and field indicating information symbols for defining coordinates and parameters of fields, in which characters or numerals may be inserted, of a blank form; automatically writing the fixed information and the field indicating information into the mode image buffer symbol per symbol such that the buffer content represents an image of the blank form; and further comprising the steps of:- automatically analyzing the field indicating information written into the mode image buffer so as to create a character and a numeric field definition information table defining the coordinates and parameters of each character and numeric field respectively; automatically detecting for each field of the field definition information tables a field name from the fixed information written into said mode images buffer in the vicinity of each field so as to make and store a field name table; and automatically making the blank form for display by sorting and merging the contents of the character and the numeric field definition tables into a single stored field definition table according to the start coordinates and rows and columns used by each field and by using both said single stored field definition table and said stored field name table. In an embodiment of the invention, fixed information such as letters and frame lines and field indicating information for item data are written into a mode image buffer and simultaneously displayed on a display unit. The field indicating information is analyzed so as to make a field definition table, and a field name for each field is detected so as to make a field name table. The contents of the field definition table, and the field name table are sorted and merged so as to make a blank form. Reference will now be be, by way of example, to the accompanying drawings, wherein: Figs. 1 and 2 are diagrams of examples of blank forms to which the present invention may be applied: Figs. 3 and 4 are diagrams of examples of "form boxes" to which the present invention be applied: Fig. 5 is a diagram of a mode image for making the blank form of Fig. 1; Fig. 6A is a diagram of another mode image; Fig. 6B is a diagram of another blank form made by the mode image of Fig. 6A; Fig. 7A is a diagram of still another mode image; Fig. 7B is a diagram of still another blank form made by the mode image of Fig. 7A; Fig. 8 is a block diagram of a data processing system embodying the present invention; Figs. 9 through 20 are flowcharts of the operation of the system of Fig. 8; Fig. 21A is a diagram of an example of a character field definition table used in a step of Fig. 20; Fig. 21B is a flowchart of the operation of the system of Fig. 8 for making the table of Fig. 21A; Fig. 21C is a diagram explaining a step of Fig. 21B; Fig. 22 is a diagram of an example of a numeric field definition table used a step of Fig. 20; Fig. 23 is a diagram of an example of an independent field definition table used a step of Fig. 20; Fig. 24A is a diagram of an example of a start/end table used in a step of Fig. 20; Fig. 24B is a diagram of an example of a row table used in a step of Fig. 20; Fig. 24C is a diagram of an example of a numeric field definition table used in a step of Fig. 20; Fig. 25A is a detailed flowchart of a step of Fig. 20; Figs. 25B, 25C, and 25D are diagrams explaining steps of Fig. 25A; and Fig. 25E is a diagram of an example of a field name table used in a step of Fig. 20. In an embodiment of the invention, information having a predetermined format is stored as a card image in a data processing system. During processing, this card image is displayed on a display unit. A card image is formed by common form data, i.e., blank form data, and individual card data. The common blank form data and individual card data are stored separately in memory units or floppy disks and are merged and displayed on the display unit as occasion demands. In Fig. 1 and 2, which illustrate examples of blank forms, "......" indicates a "character field", in which letters and other characters may be inserted, and indicates a "numeric field", in which numerals may be inserted. The number of card images having a common format as illustrated in Fig. 1 or 2 is generally large, therefore, the concept of a "box" is introduced. Figures 3 and 4 illustrate examples of boxes for use with the present invention. In the figures, numerals 1 and 1' designate boxes, and numerals 21, 22, ---, 21', 22', --- designate card images. In order to process a group of card images as a box, the following tables (or memory units) are prepared. i) Box profile table for storing the total length of fields, and the like. ii) Field definition information table for storing start coordinates of fields, attributes such as the presence or absence of a comma, and the like. iii) Field name table for storing names of fields. iv) Card data table for storing card data which will be written into the above-mentioned fields with a page number. A card image is made by combining the contents of the above-mentioned tables. In an embodiment of the present invention, when making a character field, the field marks "......" do not have to be inserted. Only a character field start mark " " and a character field end mark " " are necessary, as illustrated in Fig. 5, since such marks are translated by a program. In addition, as illustrated in Figs. 6A and 6B, a frame line surrounding each field is not always necessary. When a mode image as illustrated in Fig. 6A is determined, analysis is automatically performed so that a blank form as illustrated in Fig. 6B is displayed on the display unit for confirmation. Note that, in Fig. 6B, a character field is represented by marks "......". Also in an embodiment of the invention, as illustrated in Fig. 7A, a table start mark " " can be added to the head of a first row of fields and a table end mark "▴" to the head of a second row of fields, whereupon fields having the same attributes as the first row are repeated, as shown in Fig. 7B. Such fields are defined as "repeated fields", while other fields are defined as "independent fields". In Fig. 8, which illustrates a data processing system embodying the present invention, reference numeral 81 designates a microprocessor unit (MPU); 82 a random access memory (RAM) for storing temporary data such as the above-mentioned tables; 83 a mode image buffer (60 rows x 96 columns) for storing mode image data for making a blank form; 84 a read-only memory (ROM) for storing programs, constants, and the like; 85 a keyboard; 86 a keyboard control circuit; 87 a display unit (36 rows x 48 columns); 88 an image buffer for storing the content of the display unit 87; 89 a character generator; 90 a display control circuit; 91 floppy disks; 92 a floppy disk control circuit; 93 an address bus; 94 a data bus; and 95 a clock generator for supplying clock signals to the MPU 81 and the like. The operation of the data processing system of Fig. 8 will now be explained with reference to Figs. 9 through 20. First, at step 901, an initialization is performed. That is, the mode image buffer 83 is cleared. Next, at step 902, a key or keys are pushed. As a result, the next operation will be performed in accordance with the pushed keys. At step 903, the MPU 81 determines whether or not a " " key is pushed. If pushed, control is transferred to step 1001 of Fig. 10, in which the " " code is written into a location of the mode image buffer 83 corresponding to the location of a cursor (not shown) which is displayed on the display 87. Further, at step 1002, " " is displayed at the location of the cursor on the display 87. Then, control returns to step 902 of Fig. 9. If the determination at step 903 is negative, control is transferred to step 904, in which the MPU 81 determines whether or not a " key is pushed. If pushed, control is transferred to step 1101 of Fig. 11, in which the " " code is written into a location of the mode image buffer 83 corresponding to the location of the cursor. Further, at step 1102, " " is displayed at the location of the cursor on the display 87. Then, control returns to step 902 of Fig. 9. If the determination at step 904 is negative, control is transferred to step 905, in which the MPU 81 determines whether or not a " " key is pushed. If pushed, control is transferred to step 1201 of Fig. 12, in which the " " code is written into a location of the mode image buffer 83 corresponding to the location of the cursor. Further, at step 1202, " " is displayed at the location of the cursor on the display unit 87. At step 1203, the cursor is moved to the next location. Then, control returns to step 902 of Fig. 9. If the determination at step 905 is negative, control is transferred to step 906. In this particular embodiment, there is provided a Japanese language processing function, wherein words are typed in by the phonetic "hiragana" cursive syllabary and then, when necessary, "transformed" into the corresponding ideographic "kanji" characters. In step 906, the MPU 81 determines whether or not "hiragana" keys are pushed. If pushed, at step 906', the MPU 81 processes a sequence of "hiragana". Then, control is transferred to step 907, which determines whether or not a transformation key is pushed. If the determination at step 907 is negative, control is transferred to step 908, which determines whether or not a non-transformation key is pushed. If the transformation key is pushed, control is transferred from step 907 to step 1301, in which the MPU 81 performs a "hiragana"-to-"kanji" transformation upon the "hiragana" inputted into the image buffer 88. As a result, the codes of transformed "kanji" are written into the mode image buffer 83. Simultaneously, the "kanji" are displayed on the display unit 87. Then, control returns to step 902 of Fig. 9. The "hiragana"-to-"kanji" transformation will now be explained briefly. Note that, before pushing the transformation key, the written "hiragana" is displayed with a high brightness on the display unit 87. Then, when the transformation key is pushed, a corresponding word ("kanji") is searched from a dictionary floppy disk of the floppy disks 91 in accordance with the inputted "hiragana". When a corresponding word is detected, the word is displayed with a low brightness on the display unit 87 and, simultaneously, the "hiragana" disappears from the display unit 87. Then, when a confirmation key is pushed, the code of the corresponding word is written into the mode image buffer 83 and the cursor is moved to a next location of the display unit 87. Note that the above-mentioned special marks, such as " " and "▴", are inputted by using the "hiragana"-to-"kanji" transformation function. Returning to Fig. 9, when a non-transformation key is pushed, control is transferred from step 908 to step 1401 of Fig. 14, in which the MPU 81 writes the codes of the "hiragana" inputted to the image buffer 88 into the mode image buffer 83. In addition, at step 1402, the "hiragana" are displayed with a low brightness on the display unit 87. Then, control returns to step 902 of Fig. 9. Note that, when both determinations at steps 907 and 908 are negative, control returns to step 902. However, in this case, other "hiragana" keys will be pushed. This ends the Japanese language processing function. If the determination at step 906 is negative, control is transferred to step 909, in which the MPU 81 determines whether or not alphanumeric keys (and/or "katakana" (another Japanese syllabary keys)) are pushed. If so, control is transferred to step 1501 of Fig. 15 in which the MPU 81 writes the corresponding codes into the mode image buffer 83. Then, at step 1502, these alphanumeric (and/or katakana) characters are displayed on the display 87. Then, at step 1503, the cursor is moved to a next location of the display unit 87, thereby returning control to step 902 of Fig. 9. If the determination at step 909 is negative, control is transferred to step 910, in which the MPU 81 determines whether or not a next row key is pushed. If pushed, control is transferred to step 1601 of Fig. 16 in which the MPU 81 performs an up-scrolling operation upon the image buffer 88, i.e., the content of the display unit 87. Then, control returns to step 902 of Fig. 9. If the determination at step 910 is negative, control is transferred to step 911, in which the MPU 81 determines whether or not a previous row key is pushed. If so, control is transferred to step 1701 of Fig. 17, in which the MPU 81 performs a down-scrolling operation upon the image buffer 88, i.e., the content of the display 87. Then, control returns to step 902 of Fig. 9. If the determination at step 911 is negative, control is transferred to step 912, in which the MPU 81 determines whether or not a frame line key is pushed. If pushed, control is transferred to step 1801 of Fig. 18, in which the MPU 81 reads the present location of the cursor on the display unit 87. Then, at step 1802, the MPU 81 searches for a frame line code in accordance with the direction of the cursor and the present frame line code. At step 1803, the MPU 81 writes a searched frame line code into the mode image buffer 83. At step 1804, the searched frame line is displayed on the display unit 87. Next, at step 1805, the cursor is moved to a next location of the display unit 87 by pushing a cursor key. Thus, the above-mentioned steps 1801 through 1804 are repeated. Finally, control returns to step 902 of Fig. 9. If the determination at step 912 is negative, control is transferred to step 913 in which the MPU 81 determines whether or not the cursor key is pushed. If pushed, control is transferred to step 1901 of Fig. 19, in which the cursor is moved. Thus, control returns to step 902 of Fig. 9. If the determination at step 913 is negative, control is transferred to step 914, in which an execution key is pushed. If pushed, control is transferred to step 2001 of Fig. 20. At step 2001, the MPU 81 performs analysis of the data of the mode image buffer 83 so as to make various tables, i.e., an independent field definition table, and a repeated field definition table. That is, the MPU 81 searches for variable information such as character data and numeric data from the mode image buffer 83 so as to make the independent field definition and the repeated field definition table. Then, at step 2002, a field name for each field is detected from the fixed information, so as to make a field name table. Then, at step 2003, confirmation is made in accordance with the display unit 87. As a result, when error occurs, the operator performs an appropriate correcting operation. However, when no error occurs, at step 2004, the execution key is pushed, and, as a result, at step 2005, the content of each table is moved from the RAM 82 to the floppy disks 91, thereby completing this routine. Returning to Fig. 9, if the determination at step 914 is negative, control is transferred to step 915, in which the MPU 81 determines whether or not an end key is pushed. If pushed, control is transferred to step 916, in which an initial menu having a plurality of instructions is displayed on the display unit 87. If not, control returns to step 902. The analysis step 2001 of Fig. 20 will now be explained in more detail. Before making the independent field definition table, a character field definition table and a numeric definition table are prepared. An example of the character field definiton table is given in Fig. 21A. This table T₁ is made by the process of the flowchart of Fig. 21B, which will be explained below. At step 2101, the MPU 81 determines whether or not there is a character field start mark " ". If there is, at step 2102, the MPU 81 stores the coordinates, such as (12, 1), in the corresponding location of the table of Fig. 21A, which is provided in the RAM 82 of Fig. 8. In this case, a space entry pointer P₁ points to a second entry. Then, at step 2103, the pointer P₁ is counted up. If the determination at step 2101 is negative, control is transferred to step 2104, in which the MPU 81 determines whether or not there is a character field end mark " ". If there is, at step 2105, the space entry pointer P₁ is caused to point to a first entry. By steps 2106 and 2111, the space entry pointer P₁ points to a first incomplete entry. After that, at step 2107, the MPU 81 determines whether or not the location of " " is reasonable. That is, in the same entry, the location of " " must be to the right side of " " and lower than or equal to of " ". For example, in the second entry of Fig. 21A, X₂ > 12 and Y₂ ≧ 1 must be satisfied. If the determination at step 2107 is negative, control is transferred to step 2111, which counts up the content of the space entry pointer P₁ , while if the determination at step 2107 is affirmative, control is transferred to step 2108. At step 2108, the MPU 81 determines whether or not any adjacent character fields intersect. Such an intersection is illustrated in Fig. 21C. If the determination at step 2108 is affirmative, control is transferred to step 2110 so that the space entry pointer P₁ is counted up. Otherwise, at step 2109, the MPU 81 writes the coordinates of " " into the character field table of Fig. 20. Then, at step 2110, the complete flag of the corresponding entry is changed from "0" to "1". An example of the numeric field definition table T₂ is given in Fig. 22. That is, when a numeric field such as is searched, the MPU 81 writes start coordinates, length, the presence or absence of commas, and decimal places into the locations of the numeric field table T₂ indicated by a space entry pointer P₂. After one entry is completed, the space entry pointer P₂ is counted up and the MPU 81 again searches another numeric field. The contents of character field definition table T₁ and the numeric field definition table T₂ are sorted and merged into an independent field definition table T₃ as illustrated in Fig. 23. Before making the repeated field definition table, a start/end table T₄ of Fig. 24A and a repeated row table T₅ of Fig. 24B are made. That is, when a table start mark " " is searched, the MPU 81 writes the coordinates thereof into the corresponding location of the table T₄ of Fig. 24A. When a table end mark "▴" is searched, the MPU 81 writes the coordinates thereof into the corresponding location of the table T₄. At this time, the MPU 81 writes the row numbers between the two marks into the table T₅ of Fig. 24B. Then, the contents of the start/end table T₄ and the row table T₅ are merged into the repeated field definition table T₆. In this case, the content of the character field definition table T₁ or the numeric field definition table T₂ belonging to the table start mark " " is also merged into the repeated field definition table T₆. In Fig. 24C, a Y-direction attribute list corresponds to the table T₅ of Fig. 24B, and an X-direction attribute list corresponds to the content of the table T₁ or T₂ belonging to the table start mark " ". The detection of a field name for each field at step 2002 of Fig. 20 will now be explained in more detail with reference to Fig. 25. First, at step 2501, the MPU 81 determines whether or not a field name is located within the fixed information surrounded by a frame line on the upper side of each field. If so, at step 2506, the MPU 81 writes a field name into a field name table T₇ as illustrated in Fig. 25E. In this case, the relationship between a field and its name is illustrated in Fig. 25B. If the determination at step 2501 is negative, control is transferred to step 2502, in which the MPU 81 determines whether or not a field name is located with the fixed information surrounded by a frame line on the left side of each field. If so, control is transferred to step 2506. In this case, the relationship between a field and its name is illustrated in Fig. 25C. If the determination at step 2502 is negative, control is transferred to step 2503, in which the MPU 81 determines whether or not a colon is located on the left side of each field. If so, control is transferred to step 2504, in which the MPU 81 determines whether or not a field name is located on the left side of the colon. If so, control is transferred to step 2506. In this case, the relationship between a field and its name is illustrated in Fig. 25D. If the determination at step 2503 or 2504 is negative, control is transferred to step 2505 in which the MPU 81 gives the start coordinates of each field as the name thereof. The names of repeated fields are defined by adding the row numbers (see Fig. 24B) to the name of the corresponding independent fields. When a card image is made by using the above-mentioned blank form, the data of the blank form is transferred from the floppy disk 92 to the RAM 83 of Fig. 8, and simultaneously, the part of the blank form is displayed on the display unit 87. In this state, card data is written into a character or numeric field of the display unit 87 in which the cursor is located. In this case, once a piece of card data is written into a character or numeric field, the cursor is automatically moved to a next character or numeric field.

Claims: A method for making a blank form common for a plurality of card images, wherein card images having a common blank form are grouped into a so-called box in a data processing system having a keyboard (85), a mode image buffer (83) and a display unit (87) for displaying the content of said mode image buffer thereon, comprising the steps of:- generating (902-915) via the keyboard by an operator fixed information symbols defining a field name and field indicating information symbols for defining coordinates and parameters of fields, in which characters or numerals may be inserted, of a blank form; automatically writing (1001, 1101, 1201, 1401, 1501, 1803) the fixed information and the field indicating information into the mode image buffer symbol per symbol such that the buffer content represents an image of the blank form; and further comprising the steps of:- automatically analyzing (2101-2111) the field indicating information written into the mode image buffer so as to create a character and a numeric field definition information table (T1, T2) defining the coordinates and parameters of each character and numeric field respectively; automatically detecting (2501-2506) for each field of the field definition information tables a field name from the fixed information written into said mode image buffer in the vicinity of each field so as to make and store a field name table (T7); and automatically making the blank form for display by sorting (T4, T5) and merging (T6) the contents of the character and the numeric field definition tables into a single stored field definition table (T3) according to the start coordinates and rows and columns used by each field and by using both said single stored field definition table and said stored field name table. A method as set forth in claim 1, wherein the writing step comprises the step of writing a field start mark and a field end mark for one character field into the mode image buffer so as to form a rectangular area for the character field. A method as set forth in claim 1, wherein said writing step comprises the step of writing numeric marks for one numeric field into said mode image buffer. A method as set forth in claim 1, wherein the writing step comprises the step of writing a table start mark and a table end mark for repeating a line of fields following the table start mark from the table start mark to the table end mark. A method as set forth in claim 1, further comprising the step of performing a "hiragana"-to-"kanji" transformation upon the fixed information. A method as set forth in claim 1, wherein said detecting step comprises the steps of:-determining whether or not the field name is located within the fixed information on the upper side of each field; determining whether or not the field name is located within the fixed information on the left side of each field when no field name is located on the upper side of each field; determining whether or not the field name associated with a colon on the right side thereof is located at the left side of each field when no field name is located at the left side of each field; and giving the coordinates of each field as a field name when no field name associated with a colon is located on the left side of each field.

Inventors: IKEGAMI, YOSHIKI, ISHIMARU, MITSUTOSHI, SATO, YASUAKI
Applicants: FUJITSU LIMITED
Application year: 1983
Main classification: G06F15
IPC codes: G06F17, G06Q10