← Back to Patent Explorer
US5815149A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for generating code for modifying existing event routines for controls on a form

Assignee: Unisys Corp
•
Filing: 1997-02-19
•
Granted: 1998-09-29
•
Expires: 2017-02-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The disclosed invention is a method for generating code in a maintainable form and in performing needed maintenance for the same. This method is useful in a computing system having at least one server and a multiplicity of clients coupled thereto by means of a network. The server includes a CPU executing legacy programs and at least one storage device for storing forms of the legacy program. The generated code implements the host forms while allowing for additional logic to be added. The method of this invention operates in at least one of the clients for generating code for modifying existing event routines for controls on the forms. Moreover, the code generated by the method of this invention is separated from additional logic added by a programmer, and this programmer-added logic is retained even as the generated code is revised.

Inventors

  • 👤 Eugene Otto Mutschler, III
  • 👤 Joseph Peter Stefaniak
  • 👤 Bao Quoc Vu

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 20:17
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/30; G06F8/40; G06F8/41; G06F8/42; G06F8/427; G06F9/00; G06F9/06; G06F9/44; G06F9/451

Claims Analysis

Total Claims: 31
Claim 1
Independent Claim 509 words
In a computing system having at least one server and a multiplicity of clients coupled thereto by means of a network, said server having a CPU executing legacy programs and at least one storage device coupled thereto, said storage device being disposed for storing forms of said legacy program, a method operating in at least one of said clients for generating code for modifying existing event routines for controls on said forms, said method comprising the steps of: a. displaying on a screen of said at least one client a list of available applications; b. in response to a user's selection of an application, obtaining and displaying a list of application forms stored in said storage device; c. in response to a user's selection of a drive and a directory, displaying a list of client builder projects; d. in response to a user's selection of a specific client builder project, parsing application portion of said specific client builder project to obtain a list of client builder forms therefrom; e. displaying a list of client builder forms in said specific client builder project; f. in response a user's selection of one of said list of client builder forms, parsing said selected client builder form; g. storing client builder control and event routine information obtained in the parsing of step f hereof; h. determining from the parsing of step f hereof that said selected client builder form does not contain a table associating controls of said selected client builder form and data fields of any application form; i. in response to a user's selection of one of said list of application forms, associating said application form with said selected client builder form; j. displaying a first list of controls on said selected client builder form as found by the parsing in step f hereof, displaying a second list, which is empty and will contain data names from said associated application form, that will be associated with members of said first list and displaying a third list of data names from said associated application form to be assigned to said second list; k. establishing and removing links between controls on said selected client builder form and data names from said associated application form as items are moved by a user from said second and said third lists in accordance with step j hereof; l. accepting and storing changes and additions for controls of said selected client builder form associated with data names of said associated application form; m. generating a new client builder program based on information stored in steps g and l hereof and on said links established in step k hereof and marking parts of said new client builder program added as a result of the execution of steps k and l hereof; and, n. inserting a table in said new client builder program generated in the preceding step containing information necessary to determine in a future parse of said new client builder program the association between the controls of said selected client builder form and said associated application form.
Claim 2
Dependent Claim 509 words
In a computing system having at least one server and a multiplicity of clients coupled thereto by means of a network, said server having a CPU executing legacy programs and at least one storage device coupled thereto, said storage device being disposed for storing forms of said legacy program, a method operating in at least one of said clients for generating code for modifying existing event routines for controls on said forms, said method comprising the steps of: a. displaying on a screen of said at least one client a list of available applications; b. in response to a user's selection of an application, obtaining and displaying a list of application forms stored in said storage device; c. in response to a user's selection of a drive and a directory, displaying a list of client builder projects; d. in response to a user's selection of a specific client builder project, parsing application portion of said specific client builder project to obtain a list of client builder forms therefrom; e. displaying a list of client builder forms in said specific client builder project; f. in response a user's selection of one of said list of client builder forms, parsing said selected client builder form; g. storing client builder control and event routine information obtained in the parsing of step f hereof; h. determining from the parsing of step f hereof that said selected client builder form does not contain a table associating controls of said selected client builder form and data fields of any application form; i. in response to a user's selection of one of said list of application forms, associating said application form with said selected client builder form; j. displaying a first list of controls on said selected client builder form as found by the parsing in step f hereof, displaying a second list, which is empty and will contain data names from said associated application form, that will be associated with members of said first list and displaying a third list of data names from said associated application form to be assigned to said second list; k. establishing and removing links between controls on said selected client builder form and data names from said associated application form as items are moved by a user from said second and said third lists in accordance with step j hereof; l. accepting and storing changes and additions for controls of said selected client builder form associated with data names of said associated application form; m. generating a new client builder program based on information stored in steps g and l hereof and on said links established in step k hereof and marking parts of said new client builder program added as a result of the execution of steps k and l hereof; and, n. inserting a table in said new client builder program generated in the preceding step containing information necessary to determine in a future parse of said new client builder program the association between the controls of said selected client builder form and said associated application form.
Claim 3
Dependent Claim 357 words
A method as in claim 1, when said parsing step of claim 1 step f determines that said selected client builder form contains a table associating controls of said selected client builder form and data fields of an application form, said steps i and j of claim 1 are replaced by the following steps: a. parsing a form section of said table to find a name of an application form with which said selected client builder form is associated and storing the name of said associated application form; b. disabling ("graying out") said list of available application forms so that no other application form can be selected to be associated with said selected client builder form as in step i of claim 1; c. further parsing said form section of said table to find and store a unique identifier to be used in said code generation step m of claim 1; d. parsing each entry of a control section of said table and storing a name of a control of said selected client builder form that it contains and a data name of said associated application form with which said control name is associated or a distinguished data name indicating that said control name is not associated with any data name of said associated application form; e. further parsing each of said entries parsed in the preceding step and storing additional information concerning said control name, depending on type of said control name; f. parsing each entry of a help section of said table to find and store a name of a data name of said associated application form and associated text from said help section used to describe it; g. displaying a first list of controls on said selected client builder form that were found by said parsing step f of claim 1, displaying a second list, which contains data names found in step d hereof that are associated with a control on said first list and displaying a third list of data names from said associated application form which were not found in step d to be associated with a control on said first list.
Claim 4
Dependent Claim 109 words
A method as in claim 2, for each element of said second list created as a result of the execution of step g of claim 2, said step of generating a new client builder program further comprises the step of generating client builder global declarations, giving each of said global declarations a name that 1) identifies it as having been generated by the method of the present invention; and, 2) is different from any other client builder global declaration hereby generated by virtue of incorporating into its name said unique identifier obtained in step c of claim 2, and then copying said declaration to said new client builder program.
Claim 5
Dependent Claim 69 words
A method as in claim 2, and for each element of said second list created as a result of the execution of step g of claim 2, wherein said step of generating a new client builder program further comprises the step of generating code for client builder subroutines which perform tasks other than handling events and placing said generated code into elements of the list of client builder subroutines.
Claim 6
Dependent Claim 30 words
A method as in claim 4, for each element of said list of client builder events further including the step of copying said subroutine to said new client builder program.
Claim 7
Dependent Claim 84 words
A method as in claim 4, wherein said step of placing generated code for a subroutine into an element of a list of client builder subroutines further comprises the steps of: a. searching said list of client builder subroutines for a subroutine with the same name as said subroutine; b. determining that said searching step finds no existing subroutine with the same name as the code to be placed; and c. placing said subroutine at the end of said list of client builder subroutines.
Claim 8
Dependent Claim 90 words
A method as in claim 6 wherein said step of searching finds an existing subroutine further comprises the steps of: a. examining said existing subroutine for the presence of code markers such as would have been placed in said subroutine during a previous execution of said code generation step m of claim 1 at some previous time; b. determining that said code markers do not exist; c. inserting a sequence including one of said code markers, said generated code and a second of said code markers into said existing subroutine.
Claim 9
Dependent Claim 36 words
A method as in claim 7 wherein said step of examining said existing subroutine determines that said existing subroutine contains code markers further comprising the step of placing said generated code between said existing code markers.
Claim 10
Dependent Claim 63 words
A method as in claim 2, for each element of said second list created as a result of the execution of step g of claim 2, said step of generating a new client builder program further includes the steps of generating code for client builder subroutines that handle events, and placing said generated code into elements of said list of client builder events.
Claim 11
Dependent Claim 30 words
A method as in claim 9, for each subroutine on said list of client builder events further including the step of copying said subroutine to said new client builder program.
Claim 12
Dependent Claim 84 words
A method as in claim 9, wherein said step of placing generated code for a subroutine into an element of a list of client builder events further comprises the steps of: a. searching said list of client builder events for a subroutine with the same name as said subroutine; b. determining that said searching step finds no existing subroutine with the same name as the code to be placed; and c. placing said subroutine at the end of said list of client builder events.
Claim 13
Dependent Claim 90 words
A method as in claim 11 wherein said step of searching finds an existing subroutine further comprises the steps of: a. examining said existing subroutine for the presence of code markers such as would have been placed in said subroutine during a previous execution of said code generation step m of claim 1 at some previous time; b. determining that said code markers do not exist; c. inserting a sequence including one of said code markers, said generated code and a second of said code markers into said existing subroutine.
Claim 14
Dependent Claim 36 words
A method as in claim 12 wherein said step of examining said existing subroutine determines that said existing subroutine contains code markers further comprising the step of placing said generated code between said existing code markers.
Claim 15
Dependent Claim 63 words
A method as in claim 1 wherein said step of storing information obtained in parsing said selected client builder form further comprises the step of storing original source code obtained by said parsing step f of claim 1 which is determined to be code that defines the characteristics of a control on said selected client builder form in a list of control definitions.
Claim 16
Dependent Claim 46 words
A method as in claim 14, and for each element of the control definition list stored therein, said step of generating said new client builder program further comprises the step of copying said stored source code for said control definition to said new client builder program.
Claim 17
Dependent Claim 92 words
A method as in claim 1 wherein said step of storing information obtained in parsing said selected client builder form further comprises the step of storing original source code obtained by said parsing step f of claim 1 which is determined to be code that is a global data declaration for said selected client builder form in a list of global data declarations on the condition that it does not have a special name as generated by an invocation of said code generation step m of claim 1 at some previous time.
Claim 18
Dependent Claim 46 words
A method as in claim 16, and for each element of the global declaration list stored therein, said step of generating a new client builder program further comprises the step of copying said stored source code for said global declaration to said new client builder program.
Claim 19
Dependent Claim 130 words
A method as in claim 1 wherein said step of storing information obtained in parsing said selected client builder form further comprises the steps of: a. storing original source code obtained by said parsing step f of claim 1, which is determined to be a subroutine that does not handle an event for a control on said selected client builder form in a list of subroutine definitions; and, b. as subroutines are stored in the preceding step, examining each of said subroutines for the presence of a pair of code markers as generated in an invocation of said code generation step m of claim 1 at some previous time and, should said code markers be found, removing any source code between said markers, while leaving said markers in said subroutine.
Claim 20
Dependent Claim 132 words
A method as in claim 1 wherein said step of storing information obtained in parsing said selected client builder form further comprises the steps of: a. storing original source code obtained by said parsing step f of claim 1 that is determined to be a subroutine which handles an event for a control on said selected client builder form in a list of client builder events; and, b. as event subroutines are stored in the preceding step, examining each of said event subroutines for the presence of a pair of code markers as generated in an invocation of the code generation step m of claim 1 at some previous time and, should said code markers be found, removing any source code between said markers, while leaving said markers in said event routine.
Claim 21
Dependent Claim 118 words
A method as in claim 1 and for each element of said second list created as a result of the execution of step j of claim 1, wherein said step of generating a new client builder program further comprises the step of generating client builder global declarations, giving each of said global declarations a name that 1) identifies it as having been generated by the method of the present invention; and, 2) is different from any other client builder global declaration hereby generated by virtue of incorporating into its name a unique identifier obtained from one based on a monotonically increasing function, such as the current time, and then copying said declaration to said new client builder program.
Claim 22
Dependent Claim 30 words
A method as in claim 20, for each element of said list of client builder events further including the step of copying said subroutine to said new client builder program.
Claim 23
Dependent Claim 69 words
A method as in claim 1, and for each element of said second list created as a result of the execution of step j of claim 1, wherein said step of generating a new client builder program further comprises the step of generating code for client builder subroutines which perform tasks other than handling events and placing said generated code into elements of the list of client builder subroutines.
Claim 24
Dependent Claim 82 words
A method as in claim 22, wherein said step of placing generated code for a subroutine into an element of a list of client builder subroutines further comprises the steps of: a. searching said list of client builder subroutines for a subroutine with the same name as said subroutine; b. determining that said searching step finds no existing subroutine with the same name as the code to be placed; and c. placing said subroutine at the end of said list of subroutines.
Claim 25
Dependent Claim 90 words
A method as in claim 23 wherein said step of searching finds an existing subroutine further comprises the steps of: a. examining said existing subroutine for the presence of code markers such as would have been placed in said subroutine during a previous execution of said code generation step m of claim 1 at some previous time; b. determining that said code markers do not exist; c. inserting a sequence including one of said code markers, said generated code and a second of said code markers into said existing subroutine.
Claim 26
Dependent Claim 36 words
A method as in claim 24 wherein said step of examining said existing subroutine determines that said existing subroutine contains code markers further comprising the step of placing said generated code between said existing code markers.
Claim 27
Dependent Claim 65 words
A method as in claim 1, and for each element of said second list created as a result of the execution of step j of claim 1, wherein said step of generating a new client builder program further comprises the step of generating code for client builder subroutines that handle events, and placing said generated code into elements of said list of client builder events.
Claim 28
Dependent Claim 30 words
A method as in claim 26, for each subroutine on said list of client builder events, further including the step of copying said subroutine to said new client builder program.
Claim 29
Dependent Claim 84 words
A method as in claim 26, wherein said step of placing generated code for a subroutine into an element of a list of client builder events further comprises the steps of: a. searching said list of client builder events for a subroutine with the same name as said subroutine; b. determining that said searching step finds no existing subroutine with the same name as the code to be placed; and c. placing said subroutine at the end of said list of client builder events.
Claim 30
Dependent Claim 90 words
A method as in claim 28 wherein said step of searching finds an existing subroutine further comprises the steps of: a. examining said existing subroutine for the presence of code markers such as would have been placed in said subroutine during a previous execution of said code generation step m of claim 1 at some previous time; b. determining that said code markers do not exist; c. inserting a sequence including one of said code markers, said generated code and a second of said code markers into said existing subroutine.
Claim 31
Dependent Claim 36 words
A method as in claim 29 wherein said step of examining said existing subroutine determines that said existing subroutine contains code markers further comprising the step of placing said generated code between said existing code markers.

References Cited (Backward Citations)

US5699310A Cited
US5696914A Cited
US5699518A Cited
US5687373A Cited
US5668997A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-09-28 2002-03-30 2002-09-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-09-28 2006-03-30 2006-09-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-09-28 2010-03-30 2010-09-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag