US8301668B1 - Expression builder - Google Patents

Expression builder Download PDF

Info

Publication number
US8301668B1
US8301668B1 US12/105,936 US10593608A US8301668B1 US 8301668 B1 US8301668 B1 US 8301668B1 US 10593608 A US10593608 A US 10593608A US 8301668 B1 US8301668 B1 US 8301668B1
Authority
US
United States
Prior art keywords
expression
suggestions
list
input
receiving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US12/105,936
Inventor
Wenbin He
Wenfeng Li
Jun Zhai
Petter Ivmark
Gauri Tikekar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Open Text Holdings Inc
Original Assignee
Actuate Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Actuate Corp filed Critical Actuate Corp
Priority to US12/105,936 priority Critical patent/US8301668B1/en
Assigned to ACTUATE CORPORATION reassignment ACTUATE CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HE, WENBIN, IVMARK, PETTER, LI, WENFENG, TIKEKAR, GAURI, ZHAI, JUN
Application granted granted Critical
Publication of US8301668B1 publication Critical patent/US8301668B1/en
Assigned to ACTUATE CORPORATION, ACTUATE INTERNATIONAL CORPORATION, XENOS IP PARTNERSHIP reassignment ACTUATE CORPORATION RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: WELLS FARGO CAPITAL FINANCE LLC
Assigned to OPEN TEXT CORPORATION reassignment OPEN TEXT CORPORATION OFFICER'S CERTIFICATE Assignors: ACTUATE CORPORATION
Assigned to OPEN TEXT HOLDINGS, INC. reassignment OPEN TEXT HOLDINGS, INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: ACTUATE CORPORATION
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation

Definitions

  • An expression may be defined as a symbol or combination of symbols that represents a quantity or a relationship between quantities. Thus, an expression can be used to generate a numerical value. However, an expression need not be a mathematical expression. For instance, an expression may be a symbol or combination of symbols that represents any value or relationship between values. In other words, the values need not be numerical.
  • a user completing an expression via a software application must enter each symbol, quantity, or value.
  • the user must be aware of the symbols, quantities, or values that can be included in the expression.
  • the user may be required to have access to or remember a large number of symbols, quantities, or values that are permitted within the context in which the expression is used. This is even more problematic when the user has never used the application, or rarely uses the application.
  • methods and apparatus for providing information for use in constructing an expression are disclosed. This is accomplished using a software application that enables a user to generate or modify an expression within the context of the expression.
  • the software application may be any web-based application that enables a user to enter an expression.
  • an expression may be constructed in order to generate or modify a report.
  • Input from a user is received within an expression.
  • a list of one or more suggestions is provided in response to the input.
  • a selection of one of the suggestions in the list is received.
  • the expression is then built to include the selection.
  • the list of suggestions includes one or more functions or operators.
  • a function or operator By selecting a function or operator, the user may be presented with a list of suggestions as to the parameters or types of parameters that can be selected or entered. For instance, the user may be presented with a list of data fields that can be selected.
  • the list of suggestions is pertinent to the context in which the suggestions are provided. For instance, a user may wish to add a column to a report. When the user enters an expression in association with the added column, a list of data fields that can be used in constructing an expression (e.g., those data fields that are already present in the report) may be presented for selection by the user. In this manner, the suggestions that are provided to the user may be limited to those that are pertinent to the data in the report.
  • the invention pertains to a system operable to perform and/or initiate any of the disclosed methods.
  • the system includes one or more processors and one or more memories. At least one of the memories and processors are adapted to provide at least some of the above-described method operations.
  • the invention pertains to a computer program product for performing the disclosed methods.
  • the computer program product has at least one computer readable medium and computer program instructions stored within at least one of the computer readable product configured to perform at least some of the above described method operations.
  • the invention pertains to data structures used to perform the disclosed methods.
  • FIG. 1 is an example of a screen shot of an expression builder that can be used to modify or generate a report.
  • FIG. 2 is an example of a graphical user interface that can be used to add a column to a report.
  • FIG. 3 is an example of a list of suggestions that can be presented in response to user input.
  • FIG. 4 is an example of a list of suggestions that can be presented in response to additional user input.
  • FIG. 5 is an example of a list of suggested parameters that can be presented in response to the selection of a function.
  • FIG. 6 is an example of a list of available data fields that can be presented as possible selections as a parameter.
  • FIG. 7 is an example of a validate option that can be used to validate an expression.
  • FIG. 8 is an example of an error message that can be presented when the expression is not valid.
  • an expression builder provides a list of one or more suggestions to enable the user to complete the expression.
  • the suggestions that are provided can include functions, operators (e.g., AND, OR, NOT), parameters (or parameter types), and/or data items (or data types) that are possible within the context in which the expression is used.
  • an expression builder is used to build an expression within the context of a report via an application such as a web-based application.
  • an expression can be used in association with a column of the report (e.g., to add a column to the report).
  • the suggestions that are provided can therefore include data fields that can be used to construct an expression (e.g., data fields in the report).
  • the list of suggestions can also be dependent upon other items in the expression. For instance, the type of data fields that are presented may be dependent upon the parameter types of a function or operator that has been selected. In this manner, suggestions are provided within the context of the report in which the expression is being generated.
  • FIG. 1 is an example of a screen shot of an expression builder 102 that can be used to modify or generate a report.
  • the expression builder 102 is represented by a dialog box that is presented during the generation of a report 104 .
  • the user may, for example, initiate the expression builder 102 to add a new column to the report 104 .
  • FIG. 2 is an example of a graphical user interface that can be used to add a column to a report.
  • the expression builder 102 can be accessed by submitting information in two different input fields, where the first input field enables the user to identify a column via a column label 106 and the second input field enables the user to enter an expression as shown at 108 . Once completed, the expression can be used to generate a value in each field of the column 106 .
  • the user may type in one or more letters in the input field 108 .
  • the expression builder 102 can provide a list of one or more suggestions.
  • the suggestions can include one or more functions or operators.
  • the use of a symbol such as “[” can be used to designate a data column, such as [price], [LastName], [FirstName], or [OrderQty]. In other words, the use of the symbol “[” can indicate a request for suggestions for data fields.
  • a Validate option 110 can be selected to validate the expression. Validation may include determining whether the expression is syntactically correct. If the expression is not valid, an error message may be displayed. Alternatively, if the expression is valid, an appropriate message may be displayed.
  • the user may select an Apply option 112 .
  • an Apply option 112 By executing the expression, a single value can be generated in the column designated by the column 106 . In this manner, an expression may be generated or modified.
  • FIG. 3 is an example of a list of suggestions that can be presented in response to user input.
  • the user types in “s” into the input field 108 .
  • a list of suggestions is provided at 114 .
  • the list of suggestions includes a list of functions starting with the letter “s” that has been entered by the user. The user can then select one of the functions (or operators) from the list. This can be accomplished, for example, by using the mouse, the up/down key, or the enter key.
  • the list of suggestions is provided external to the expression.
  • the list of suggestions can also be provided internal to the expression.
  • the list of suggestions can be provided in another format, such as a menu or drop-down menu.
  • FIG. 4 is an example of a list of suggestions that can be presented in response to additional user input.
  • the user enters “se” into the input field 108 .
  • a list of suggestions starting with “se” is provided at 116 .
  • a list of functions is provided at 116 .
  • the list of functions includes “SEARCH(pattern, str)” and “SEARCH(pattern, str, startPosition).”
  • the function “SEARCH” may operate on one or more parameters and/or data items. More particularly, the function may specify the parameter(s), data item(s), and/or data type(s) that are to be entered or selected by the user.
  • FIG. 5 is an example of a list of suggested parameters that can be presented in response to the selection of a function.
  • the user selects the “search(,)” function, which can then be shown in the input field 108 .
  • the expression builder may then provide a list of one or more parameters, parameter types, data items, and/or data types that can be selected or entered by the user.
  • the user may request that suggestions be provided.
  • the user may request that suggestions be provided in another manner.
  • a suggestion box 118 showing the parameters (e.g., parameter types or data types) that the function takes can be provided, shown as “SEARCH(pattern, str).
  • a list of suggestions indicates the parameter(s) or parameter type(s) that can be selected or entered by the user for inclusion in the expression. Moreover, the parameter at the current cursor position may be highlighted (e.g., bold), as shown at 120 . In this manner, the suggestions that are provided are associated with the function that was previously selected.
  • FIG. 6 is an example of a list of available data fields that can be presented as possible selections as a parameter.
  • the user places the cursor at the location of the parameter for which a list of available data fields is requested. More particularly, as shown, the user places the cursor at the location of the second parameter of the function, as shown at 108 . Again, the parameter at the current cursor position may be highlighted (e.g., bold), as shown at 121 .
  • a symbol such as “[” at the location of the cursor, a list of one or more available data items can be presented. More particularly, as shown at 122 , a list of one or more data fields that are available for selection is presented.
  • the user can continue to type one or more letters to reduce the list size, or the user can select a data field from the list.
  • the data fields are those that can be used to construct an expression (e.g., data fields that are pertinent to the report).
  • the data fields are those that are already present in the report. In this manner, a list of available data items or data types that may be entered or selected in association with a particular parameter of a function or operator can be presented.
  • FIG. 7 is an example of a validate option that can be used to validate an expression. More particularly, the user can select the Validate option 110 .
  • validation may include checking that the number of parameters present and/or the data types of the parameters are correct with respect to the selected function (or operator). Since the parameters of the function are valid in this example, the expression is valid. Validation can also include checking that the data types of any other data items in the expression are valid. A message indicating that the expression is valid can then be presented at 124 .
  • the user changes the first parameter of the function shown at 108 from “Aus” to the number “1.” Therefore, the first parameter is no longer a string as required by the SEARCH function. As a result, an appropriate error message may be presented.
  • An example of an error message that can be presented when the expression is not valid is shown at 126 . More particularly, in this example, the error message indicates that the argument data types for the method (i.e., function) are invalid, and indicates the correct structure of the method (i.e., function).
  • the user can add the expression to a report by selecting the Apply option 112 .
  • the expression can be used to generate a numerical value.
  • the expression can be used to generate a value that need not be numerical.
  • the expression can generate a string value or other data type.
  • the report that is generated may be any type of report.
  • the report may be a spreadsheet report, simple listing report, tabular report, grouped listing report, a crosstab report, etc.
  • the functions, operators, and possible parameters and parameter types associated with the functions/operators may be stored in one or more data structures accessible to the expression builder.
  • the data structures may include one or more files, databases such as relational databases, etc.
  • the embodiments of the invention also relate to an apparatus for performing these operations.
  • This apparatus may be specially constructed for the required purposes, or it may be a general purpose computer or network of computers selectively activated or reconfigured by a computer program stored on a machine readable medium.
  • the processes presented herein are not inherently related to any particular computer or other apparatus.
  • various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given below.
  • the present invention relates to machine-readable media on which are stored program instructions for performing operations on a computer.
  • Such media includes by way of example magnetic disks, magnetic tape, optically readable media such as CD ROMs, semiconductor memory such as PCMCIA cards, etc.
  • the medium may take the form of a portable item such as a small disk, diskette, cassette, etc., or it may take the form of a relatively larger or immobile item such as a hard disk drive or RAM provided in a computer.
  • a computer system may include a server and one or more clients.
  • software providing the disclosed functionality is provided on the server and can be accessed through the various clients.
  • the server and/or clients in accordance with the disclosed embodiments may include a central processing unit (CPU), input/output (I/O) circuitry, and memory—which may be read only memory (ROM) and/or random access memory (RAM).
  • the server and/or clients may also optionally include a display, a mass storage unit, a keyboard, and a clock.
  • the CPU is one or more microprocessor chips selected from complex instruction set computer (CISC) microprocessors, reduced instruction set computer (RISC) microprocessors, or other available microprocessors.
  • the CPU may be coupled to a memory by a bi-directional data bus, but may also be coupled by a unidirectional data bus in the case of ROM.
  • the memory may also be coupled to the CPU by appropriate control and address busses, as is well known to those skilled in the art.
  • the CPU may be coupled to the I/O circuitry by a bi-directional data bus to permit data transfers with peripheral devices.
  • I/O circuitry may include a number of latches, registers and direct memory access (DMA) controllers.
  • the purpose of the I/O circuitry is to provide an interface between CPU and such peripheral devices as display assembly, mass storage (e.g., disks), keyboard, and clients/server(s).
  • the display assembly of a server or client may receive data from the I/O circuitry via the bus and displays that data on a suitable screen.
  • Mass storage can be coupled to I/O circuitry by a bi-directional data bus. Generally, mass storage will be a hard disk drive, a tape drive, or some other long-term storage device. It may be used to store data structures, possible functions or operators, data fields, programs for accessing or generating expressions or reports, etc.
  • the keyboard may communicate with the CPU via data bus and I/O circuitry.
  • other types of input devices can also be used in conjunction with the disclosed embodiments.
  • a computer mouse, a track ball, a track pad, or a pen-based tablet can be used to manipulate a pointer on a display screen.
  • a clock may comprise a real-time clock to provide real-time information to the system.
  • the clock can simply provide regular pulses to, for example, an interrupt port of the CPU, which can count the pulses to provide the time function.
  • the clock may be coupled to the CPU by a data bus.
  • the clients may include terminals, personal computers, workstations, minicomputers, and mainframes.
  • any data processing devices that can access the expression builder on server are clients.
  • the clients may be manufactured by different vendors and may also run different operating systems such as MS-DOS, Microsoft Windows, Microsoft NT, various forms of UNIX, OS/2, MAC OS and others.
  • Clients are connected to I/O circuitry via bi-directional lines.
  • Bidirectional lines may be any suitable media such as coaxial cable, twisted pair wiring, fiber optic line, radio channels, and the like.
  • the network resulting from the interconnection of the lines may assume a variety of topologies, including ring, bus, star, and may include a collection of smaller networks linked by gateways and bridges.
  • the server may run different operating systems such as MS-DOS, Microsoft Windows, Microsoft NT, UNIX, VMS, OS/2, MAC OS and others. The clients need not use the same operating system as the server.

Abstract

In accordance with one aspect of the invention, methods and apparatus for providing information for use in generating or modifying an expression are disclosed. Input from a user is received within an expression. A list of one or more suggestions is provided in response to the input. A selection of one of the suggestions in the list is received. The expression is then built to include the selection.

Description

RELATED APPLICATIONS
This application claims priority from Provisional Application No. 60/937,578, entitled “EXPRESSION BUILDER,” filed on Jun. 27, 2007, by He et al, which is incorporated herein for all purposes in its entirety.
BACKGROUND OF THE INVENTION
An expression may be defined as a symbol or combination of symbols that represents a quantity or a relationship between quantities. Thus, an expression can be used to generate a numerical value. However, an expression need not be a mathematical expression. For instance, an expression may be a symbol or combination of symbols that represents any value or relationship between values. In other words, the values need not be numerical.
Typically, a user completing an expression via a software application must enter each symbol, quantity, or value. As a result, the user must be aware of the symbols, quantities, or values that can be included in the expression. Depending upon the context in which the expression is used, the user may be required to have access to or remember a large number of symbols, quantities, or values that are permitted within the context in which the expression is used. This is even more problematic when the user has never used the application, or rarely uses the application.
In view of the above, it would be desirable to implement a more user-friendly manner of generating an expression.
SUMMARY OF THE INVENTION
In accordance with one aspect of the invention, methods and apparatus for providing information for use in constructing an expression are disclosed. This is accomplished using a software application that enables a user to generate or modify an expression within the context of the expression. The software application may be any web-based application that enables a user to enter an expression.
For instance, an expression may be constructed in order to generate or modify a report. Input from a user is received within an expression. A list of one or more suggestions is provided in response to the input. A selection of one of the suggestions in the list is received. The expression is then built to include the selection.
In accordance with another aspect of the invention, the list of suggestions includes one or more functions or operators. By selecting a function or operator, the user may be presented with a list of suggestions as to the parameters or types of parameters that can be selected or entered. For instance, the user may be presented with a list of data fields that can be selected.
In accordance with yet another aspect of the invention, the list of suggestions is pertinent to the context in which the suggestions are provided. For instance, a user may wish to add a column to a report. When the user enters an expression in association with the added column, a list of data fields that can be used in constructing an expression (e.g., those data fields that are already present in the report) may be presented for selection by the user. In this manner, the suggestions that are provided to the user may be limited to those that are pertinent to the data in the report.
In accordance with another aspect of the invention, the invention pertains to a system operable to perform and/or initiate any of the disclosed methods. The system includes one or more processors and one or more memories. At least one of the memories and processors are adapted to provide at least some of the above-described method operations. In yet a further embodiment, the invention pertains to a computer program product for performing the disclosed methods. The computer program product has at least one computer readable medium and computer program instructions stored within at least one of the computer readable product configured to perform at least some of the above described method operations. In still a further embodiment, the invention pertains to data structures used to perform the disclosed methods.
These and other features of the present invention will be presented in more detail in the following detailed description of the invention and the associated figures.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an example of a screen shot of an expression builder that can be used to modify or generate a report.
FIG. 2 is an example of a graphical user interface that can be used to add a column to a report.
FIG. 3 is an example of a list of suggestions that can be presented in response to user input.
FIG. 4 is an example of a list of suggestions that can be presented in response to additional user input.
FIG. 5 is an example of a list of suggested parameters that can be presented in response to the selection of a function.
FIG. 6 is an example of a list of available data fields that can be presented as possible selections as a parameter.
FIG. 7 is an example of a validate option that can be used to validate an expression.
FIG. 8 is an example of an error message that can be presented when the expression is not valid.
DESCRIPTION OF EMBODIMENTS OF THE INVENTION
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. It will be obvious, however, to one skilled in the art, that the disclosed embodiments may be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order not to unnecessarily obscure the disclosed embodiments.
The disclosed embodiments enable an expression to be built in an efficient manner. In one embodiment, an expression builder provides a list of one or more suggestions to enable the user to complete the expression. For instance, the suggestions that are provided can include functions, operators (e.g., AND, OR, NOT), parameters (or parameter types), and/or data items (or data types) that are possible within the context in which the expression is used.
In one embodiment, an expression builder is used to build an expression within the context of a report via an application such as a web-based application. For instance, an expression can be used in association with a column of the report (e.g., to add a column to the report). The suggestions that are provided can therefore include data fields that can be used to construct an expression (e.g., data fields in the report). The list of suggestions can also be dependent upon other items in the expression. For instance, the type of data fields that are presented may be dependent upon the parameter types of a function or operator that has been selected. In this manner, suggestions are provided within the context of the report in which the expression is being generated.
FIG. 1 is an example of a screen shot of an expression builder 102 that can be used to modify or generate a report. In this example, the expression builder 102 is represented by a dialog box that is presented during the generation of a report 104. The user may, for example, initiate the expression builder 102 to add a new column to the report 104.
FIG. 2 is an example of a graphical user interface that can be used to add a column to a report. The expression builder 102 can be accessed by submitting information in two different input fields, where the first input field enables the user to identify a column via a column label 106 and the second input field enables the user to enter an expression as shown at 108. Once completed, the expression can be used to generate a value in each field of the column 106.
In order to use the expression builder, the user may type in one or more letters in the input field 108. By typing in one or more beginning letters, the expression builder 102 can provide a list of one or more suggestions. For instance, the suggestions can include one or more functions or operators. The use of a symbol such as “[” can be used to designate a data column, such as [price], [LastName], [FirstName], or [OrderQty]. In other words, the use of the symbol “[” can indicate a request for suggestions for data fields.
Once an expression has been completed, a Validate option 110 can be selected to validate the expression. Validation may include determining whether the expression is syntactically correct. If the expression is not valid, an error message may be displayed. Alternatively, if the expression is valid, an appropriate message may be displayed.
In order to execute the expression, the user may select an Apply option 112. By executing the expression, a single value can be generated in the column designated by the column 106. In this manner, an expression may be generated or modified.
FIG. 3 is an example of a list of suggestions that can be presented in response to user input. In this example, the user types in “s” into the input field 108. In response, a list of suggestions is provided at 114. In this example, the list of suggestions includes a list of functions starting with the letter “s” that has been entered by the user. The user can then select one of the functions (or operators) from the list. This can be accomplished, for example, by using the mouse, the up/down key, or the enter key.
In this example, the list of suggestions is provided external to the expression. However, the list of suggestions can also be provided internal to the expression. Moreover, the list of suggestions can be provided in another format, such as a menu or drop-down menu.
FIG. 4 is an example of a list of suggestions that can be presented in response to additional user input. As shown in this example, the user enters “se” into the input field 108. In response, a list of suggestions starting with “se” is provided at 116. More particularly, in this example, a list of functions is provided at 116. In this example, the list of functions includes “SEARCH(pattern, str)” and “SEARCH(pattern, str, startPosition).” Thus, the function “SEARCH” may operate on one or more parameters and/or data items. More particularly, the function may specify the parameter(s), data item(s), and/or data type(s) that are to be entered or selected by the user.
FIG. 5 is an example of a list of suggested parameters that can be presented in response to the selection of a function. In this example, the user selects the “search(,)” function, which can then be shown in the input field 108. The expression builder may then provide a list of one or more parameters, parameter types, data items, and/or data types that can be selected or entered by the user. In this example, by placing the cursor inside the function, the user may request that suggestions be provided. Alternatively, the user may request that suggestions be provided in another manner. In this example, a suggestion box 118 showing the parameters (e.g., parameter types or data types) that the function takes can be provided, shown as “SEARCH(pattern, str). In this manner, a list of suggestions indicates the parameter(s) or parameter type(s) that can be selected or entered by the user for inclusion in the expression. Moreover, the parameter at the current cursor position may be highlighted (e.g., bold), as shown at 120. In this manner, the suggestions that are provided are associated with the function that was previously selected.
FIG. 6 is an example of a list of available data fields that can be presented as possible selections as a parameter. In this example, the user places the cursor at the location of the parameter for which a list of available data fields is requested. More particularly, as shown, the user places the cursor at the location of the second parameter of the function, as shown at 108. Again, the parameter at the current cursor position may be highlighted (e.g., bold), as shown at 121. In one embodiment, by typing a symbol such as “[” at the location of the cursor, a list of one or more available data items can be presented. More particularly, as shown at 122, a list of one or more data fields that are available for selection is presented. The user can continue to type one or more letters to reduce the list size, or the user can select a data field from the list. In one embodiment, the data fields are those that can be used to construct an expression (e.g., data fields that are pertinent to the report). In other words, the data fields are those that are already present in the report. In this manner, a list of available data items or data types that may be entered or selected in association with a particular parameter of a function or operator can be presented.
Once the user has identified a column (e.g., by entering a column label) at 106 and entered an expression at 108, the user can validate the expression. FIG. 7 is an example of a validate option that can be used to validate an expression. More particularly, the user can select the Validate option 110. For instance, validation may include checking that the number of parameters present and/or the data types of the parameters are correct with respect to the selected function (or operator). Since the parameters of the function are valid in this example, the expression is valid. Validation can also include checking that the data types of any other data items in the expression are valid. A message indicating that the expression is valid can then be presented at 124.
In FIG. 8, the user changes the first parameter of the function shown at 108 from “Aus” to the number “1.” Therefore, the first parameter is no longer a string as required by the SEARCH function. As a result, an appropriate error message may be presented. An example of an error message that can be presented when the expression is not valid is shown at 126. More particularly, in this example, the error message indicates that the argument data types for the method (i.e., function) are invalid, and indicates the correct structure of the method (i.e., function).
Assuming that the expression is valid, the user can add the expression to a report by selecting the Apply option 112. The expression can be used to generate a numerical value. Alternatively, the expression can be used to generate a value that need not be numerical. For instance, the expression can generate a string value or other data type.
The report that is generated may be any type of report. For instance, the report may be a spreadsheet report, simple listing report, tabular report, grouped listing report, a crosstab report, etc.
The functions, operators, and possible parameters and parameter types associated with the functions/operators may be stored in one or more data structures accessible to the expression builder. For instance, the data structures may include one or more files, databases such as relational databases, etc.
The manipulations performed are often referred to in terms, such as storing, providing, or generating. In any of the operations described herein that form part of the embodiments of the invention, these operations are machine operations. Useful machines for performing the operations of the present invention include general-purpose digital computers, networks of such computers, or other programmable systems. In all cases, there is a distinction between the method of operations in operating a computer and the method of computation itself. The disclosed embodiments relate to method steps for operating a computer in processing electrical or other physical signals to generate other desired physical signals.
The embodiments of the invention also relate to an apparatus for performing these operations. This apparatus may be specially constructed for the required purposes, or it may be a general purpose computer or network of computers selectively activated or reconfigured by a computer program stored on a machine readable medium. The processes presented herein are not inherently related to any particular computer or other apparatus. In particular, various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given below.
Still further, the present invention relates to machine-readable media on which are stored program instructions for performing operations on a computer. Such media includes by way of example magnetic disks, magnetic tape, optically readable media such as CD ROMs, semiconductor memory such as PCMCIA cards, etc. In each case, the medium may take the form of a portable item such as a small disk, diskette, cassette, etc., or it may take the form of a relatively larger or immobile item such as a hard disk drive or RAM provided in a computer.
A computer system may include a server and one or more clients. In various embodiments, software providing the disclosed functionality is provided on the server and can be accessed through the various clients. The server and/or clients in accordance with the disclosed embodiments may include a central processing unit (CPU), input/output (I/O) circuitry, and memory—which may be read only memory (ROM) and/or random access memory (RAM). The server and/or clients may also optionally include a display, a mass storage unit, a keyboard, and a clock.
In one embodiment, the CPU is one or more microprocessor chips selected from complex instruction set computer (CISC) microprocessors, reduced instruction set computer (RISC) microprocessors, or other available microprocessors. The CPU may be coupled to a memory by a bi-directional data bus, but may also be coupled by a unidirectional data bus in the case of ROM. The memory may also be coupled to the CPU by appropriate control and address busses, as is well known to those skilled in the art.
The CPU may be coupled to the I/O circuitry by a bi-directional data bus to permit data transfers with peripheral devices. I/O circuitry may include a number of latches, registers and direct memory access (DMA) controllers. The purpose of the I/O circuitry is to provide an interface between CPU and such peripheral devices as display assembly, mass storage (e.g., disks), keyboard, and clients/server(s). The display assembly of a server or client may receive data from the I/O circuitry via the bus and displays that data on a suitable screen. Mass storage can be coupled to I/O circuitry by a bi-directional data bus. Generally, mass storage will be a hard disk drive, a tape drive, or some other long-term storage device. It may be used to store data structures, possible functions or operators, data fields, programs for accessing or generating expressions or reports, etc.
The keyboard may communicate with the CPU via data bus and I/O circuitry. In addition to a keyboard, other types of input devices can also be used in conjunction with the disclosed embodiments. For example, a computer mouse, a track ball, a track pad, or a pen-based tablet can be used to manipulate a pointer on a display screen. A clock may comprise a real-time clock to provide real-time information to the system. Alternatively, the clock can simply provide regular pulses to, for example, an interrupt port of the CPU, which can count the pulses to provide the time function. The clock may be coupled to the CPU by a data bus.
The clients may include terminals, personal computers, workstations, minicomputers, and mainframes. For purposes of the disclosed embodiments of the invention, any data processing devices that can access the expression builder on server are clients. It should be understood that the clients may be manufactured by different vendors and may also run different operating systems such as MS-DOS, Microsoft Windows, Microsoft NT, various forms of UNIX, OS/2, MAC OS and others. Clients are connected to I/O circuitry via bi-directional lines. Bidirectional lines may be any suitable media such as coaxial cable, twisted pair wiring, fiber optic line, radio channels, and the like. Further, the network resulting from the interconnection of the lines may assume a variety of topologies, including ring, bus, star, and may include a collection of smaller networks linked by gateways and bridges. As with the clients, it should be understood that the server may run different operating systems such as MS-DOS, Microsoft Windows, Microsoft NT, UNIX, VMS, OS/2, MAC OS and others. The clients need not use the same operating system as the server.
It is also within the scope of the embodiments of the invention to implement the apparatus and methods described herein on a “stand-alone” computer, which does not form part of a network.
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. For instance, although the specification has described specific examples of an expression builder, other types of user interfaces may be used. Moreover, the expression builder may be used to generate an expression for purposes other than those stated.

Claims (31)

1. A computer-implemented method, comprising:
receiving by a processor input from a user within a context of an expression;
providing a list of one or more suggestions in response to the input, wherein the list of one or more suggestions indicates one or more operators that can be selected for inclusion in the expression;
receiving a selection of one of the suggestions in the list;
providing a second list of one or more suggestions in response to a selection of one of the operators, wherein the second list of suggestions is based, at least in part, on the selected operator,
wherein the second list of one or more suggestions indicates one or more parameters that can be selected or entered for inclusion in the expression;
wherein the one or more parameters include one or more data items corresponding to one or more data fields of a database; and
building the expression to include the selection such that the expression is constructed or modified.
2. The method as recited in claim 1, wherein the expression is associated with a column in a report.
3. The method as recited in claim 2, wherein the data fields include only data fields that are pertinent to the report.
4. The method as recited in claim 1, further comprising:
adding a column to the report such that the expression is associated with a column label of the column.
5. The method as recited in claim 4, further comprising:
executing the expression to generate a value in the column, wherein the data fields include only data fields that are present in the report.
6. The computer-implemented method as recited in claim 1, wherein providing a list of one or more suggestions in response to the input comprises:
providing a menu including the list of one or more suggestions.
7. The computer-implemented method as recited in claim 1, wherein providing a list of one or more suggestions in response to the input comprises:
providing a list of one or more suggestions within the expression.
8. The computer-implemented method-as recited in claim 1, wherein providing a list of one or more suggestions in response to the input comprises:
providing a list of one or more suggestions external to the expression.
9. The method as recited in claim 1, wherein receiving input from a user within a context of an expression comprises:
receiving one or more characters in an input field in which the expression is typed.
10. The method as recited in claim 9, wherein the input field is a field of the report.
11. An apparatus comprising:
a processor; and
a memory, at least one of the processor or the memory being adapted for:
receiving input from a user within a context of an expression;
providing a list of one or more suggestions in response to the input, wherein the list of one or more suggestions indicates one or more parameters that can be selected or entered for inclusion in the expression as parameters of the expression, wherein the list of one or more suggestions identifies one or more data items that can be selected for inclusion in the expression, the data items corresponding to one or more data fields of a database;
receiving a selection of one of the suggestions in the list; and
building the expression to include the selection such that the expression is constructed or modified.
12. The apparatus as recited in claim 11, wherein the data fields consist of data fields implemented in a report.
13. A computer-implemented method, comprising:
receiving by a processor input from a user within a context of an expression;
providing a list of one or more suggestions in response to the input, wherein the list of one or more suggestions indicates one or more data items that can be selected for inclusion in the expression, wherein the data items include one or more data fields of a database;
receiving a selection of one of the suggestions in the list; and
building the expression to include the selection such that the expression is constructed or modified.
14. The computer-implemented method as recited in claim 13, wherein the data fields consist of data fields that are already present in a report.
15. The computer-implemented method as recited in claim 14, further comprising:
executing the expression to generate the report.
16. A computer-implemented method, comprising:
receiving by a processor input from a user within a context of an expression, wherein receiving input from a user within a context of the expression comprises receiving one or more characters in an input field in which the expression is typed;
providing a list of one or more suggestions in response to the input;
receiving a selection of one of the suggestions in the list;
building the expression to include the selection such that the expression is constructed or modified; and
adding the expression to a report, wherein the list of one or more suggestions is dependent upon a data context of the report.
17. The computer-implemented method as recited in claim 16, further comprising:
executing the expression to modify the report.
18. The computer-implemented method as recited in claim 16, wherein the report is a spreadsheet report.
19. A computer-implemented method comprising:
receiving by a processor input from a user within a context of an expression, wherein receiving input from a user within a context of the expression comprises receiving one or more characters in an input field in which the expression is typed;
providing a list of one or more suggestions in response to the input, wherein the list of one or more suggestions indicates one or more data items that can be selected for inclusion in the expression;
receiving a selection of one of the suggestions in the list; and
building the expression to include the selection such that the expression is constructed or modified;
wherein the list of one or more suggestions is dependent upon a data context of a report.
20. The method as recited in claim 19, wherein the data items include one or more data fields, wherein the input comprises a predefined symbol that indicates a request for suggestions for data fields.
21. The method as recited in claim 20, wherein the list of suggestions comprises data fields that are pertinent to the report.
22. The method as recited in claim 20, wherein the list of suggestions consists of data fields that are implemented in the report.
23. An apparatus, comprising:
a processor; and
a memory, at least one of the processor or the memory being adapted for:
receiving input from a user within a context of the expression, wherein receiving input from a user within a context of the expression comprises receiving one or more characters in an input field in which the expression is typed;
providing a list of one or more suggestions in response to the input, wherein the list of one or more suggestions indicates one or more data items that can be selected or entered with respect to the other items in the expression;
receiving a selection of one of the suggestions in the list; and
building the expression to include the selection such that the expression is constructed or modified
wherein the list of one or more suggestions is dependent upon a data context of the expression, and wherein the list of one or more suggestions or other items within the expression include one or more operators.
24. The apparatus as recited in claim 23, at least one of the processor or the memory being adapted for perform steps further comprising:
automatically validating the expression.
25. The apparatus as recited in claim 24 wherein validating is performed in response to a user selection of a validate option.
26. The apparatus as recited in claim 24, wherein validating the expression comprises
checking that one or more data items or parameters of the expression are of the correct data type.
27. An apparatus, comprising:
a processor; and
a memory, at least one of the processor or the memory being adapted for:
receiving input from a user within a context of an expression;
automatically providing a list of one or more suggestions in response to the input,
wherein the list of one or more suggestions identifies one or more data items that can be selected or entered within the expression, the data items representing data fields of a database;
receiving a selection of one of the suggestions in the list; and
building the expression to include the selection such that the expression is constructed or modified;
wherein the list of one or more suggestions is dependent upon other items within the expression, and wherein the other items within the expression include one or more operators.
28. A non-transitory computer-readable medium storing thereon computer-readable instructions, comprising:
instructions for receiving input from a user within a context of an expression;
instructions for providing a list of one or more suggestions in response to the input,
wherein the list of one or more suggestions indicates one or more operators that can be selected for inclusion in the expression;
instructions for receiving a selection of one of the suggestions in the list; and
instructions for providing a second list of one or more suggestions in response to a selection of one of the operators;
wherein the second list of one or more suggestions identifies one or more data items that can be selected or entered for inclusion in the expression.
29. An apparatus, comprising:
means for receiving input from a user within an expression;
means for providing a list of one or more suggestions by a processor in response to the input, wherein the list of one or more suggestions indicates one or more operators that can be selected for inclusion in the expression;
means for receiving a selection of one of the suggestions in the list;
means for constructing or modifying the expression such that the expression that is presented includes the selection; and
means for providing a second list of one or more suggestions in response to a selection of one of the operators, wherein the second list of suggestions is based, at least in part, on the selected operator, wherein the second list of one or more suggestions indicates data items that can be selected or entered with respect to the other items in the expression.
30. An apparatus, comprising:
a processor; and
a memory, at least one of the processor or the memory being adapted for:
receiving input from a user within an expression;
providing a list of one or more suggestions in response to the input, wherein the list of one or more suggestions indicates one or more operators that can be selected or entered for inclusion in the expression;
receiving a selection of one of the suggestions in the list;
building the expression to include the selection such that the expression is generated or modified; and
providing a second list of one or more suggestions in response to a selection of one of the operators, wherein the second list of suggestions is based, at least in part, on the selected operator, wherein the second list of one or more suggestions indicates one or more data items that can be selected or entered with respect to the other items in the expression, wherein the data items correspond to data fields of a database.
31. A computer-readable medium storing thereon computer-readable instructions, comprising:
instructions for receiving input from a user within an expression, wherein receiving input from a user within a context of the expression comprises receiving one or more characters in an input field in which the expression is typed;
instructions for automatically providing a list of one or more suggestions in response to the input, wherein the list of one or more suggestions is dependent upon other items within the expression, and wherein the list of one or more suggestions or the other items within the expression include one or more operators;
instructions for receiving a selection of one of the suggestions in the list; and
instructions for building the expression to include the selection such that the expression is generated or modified.
US12/105,936 2007-06-27 2008-04-18 Expression builder Active 2029-12-08 US8301668B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/105,936 US8301668B1 (en) 2007-06-27 2008-04-18 Expression builder

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US93757807P 2007-06-27 2007-06-27
US12/105,936 US8301668B1 (en) 2007-06-27 2008-04-18 Expression builder

Publications (1)

Publication Number Publication Date
US8301668B1 true US8301668B1 (en) 2012-10-30

Family

ID=47045868

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/105,936 Active 2029-12-08 US8301668B1 (en) 2007-06-27 2008-04-18 Expression builder

Country Status (1)

Country Link
US (1) US8301668B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120192091A1 (en) * 2010-10-19 2012-07-26 International Business Machines Corporation Automatically Reconfiguring an Input Interface
US20140379512A1 (en) * 2008-10-07 2014-12-25 Bigmachines, Inc. System, device and method for formula management
US20150121268A1 (en) * 2013-10-30 2015-04-30 Salesforce.Com, Inc. System and method for metadata management via a user interface page
US20160292210A1 (en) * 2015-04-06 2016-10-06 Cognizant Technology Solutions India Pvt. Ltd. System and method for automatically and efficiently validating database objects
US10740413B2 (en) 2013-10-30 2020-08-11 Salesforce.Com, Inc. System and method for user information management via a user interface page
US11281439B2 (en) * 2018-07-25 2022-03-22 Avaya Inc. System and method for creating a contextualized after call workflow

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485618A (en) * 1993-12-15 1996-01-16 Borland International, Inc. Methods and interface for building command expressions in a computer system
US6671691B1 (en) * 1998-06-04 2003-12-30 International Business Machines Corporation Method and apparatus for expression building editors
US20040153995A1 (en) * 2003-02-03 2004-08-05 Jean-Pierre Polonovski Software development tool
US20050091420A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Mechanism for handling input parameters
US7103835B1 (en) * 2002-03-12 2006-09-05 Movaris, Inc. Process builder for a routable electronic document system and method for using the same
US20060294158A1 (en) * 2005-04-22 2006-12-28 Igor Tsyganskiy Methods and systems for data-focused debugging and tracing capabilities
US20070027858A1 (en) * 2005-07-29 2007-02-01 Paul Weinberg Method for generating properly formed expressions
US20070078823A1 (en) * 2005-09-30 2007-04-05 Microsoft Corporation Expression templates and object classes for multidimensional analytics expressions
US20070135949A1 (en) * 2003-10-24 2007-06-14 Microsoft Corporation Administrative Tool Environment
US20090113384A1 (en) * 2006-03-23 2009-04-30 International Business Machines Corporation System and apparatus for graphically building business rule conditions
US7725483B2 (en) * 2005-07-29 2010-05-25 Sap, Ag Method for improved processing of expression-based data
US7734625B2 (en) * 2005-07-29 2010-06-08 Sap, Ag Method for performing expression-based validation
US7836427B1 (en) * 2003-07-01 2010-11-16 Microsoft Corporation Tree-based rule composition with natural language inline editing
US20110138335A1 (en) * 2009-12-08 2011-06-09 Sybase, Inc. Thin analytics for enterprise mobile users

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5798757A (en) * 1993-12-15 1998-08-25 Borland International, Inc. Methods and interface for building command expressions in a computer system
US5485618A (en) * 1993-12-15 1996-01-16 Borland International, Inc. Methods and interface for building command expressions in a computer system
US6671691B1 (en) * 1998-06-04 2003-12-30 International Business Machines Corporation Method and apparatus for expression building editors
US7103835B1 (en) * 2002-03-12 2006-09-05 Movaris, Inc. Process builder for a routable electronic document system and method for using the same
US20040153995A1 (en) * 2003-02-03 2004-08-05 Jean-Pierre Polonovski Software development tool
US7836427B1 (en) * 2003-07-01 2010-11-16 Microsoft Corporation Tree-based rule composition with natural language inline editing
US20070135949A1 (en) * 2003-10-24 2007-06-14 Microsoft Corporation Administrative Tool Environment
US20050091420A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Mechanism for handling input parameters
US20060294158A1 (en) * 2005-04-22 2006-12-28 Igor Tsyganskiy Methods and systems for data-focused debugging and tracing capabilities
US7734625B2 (en) * 2005-07-29 2010-06-08 Sap, Ag Method for performing expression-based validation
US7725483B2 (en) * 2005-07-29 2010-05-25 Sap, Ag Method for improved processing of expression-based data
US20070027858A1 (en) * 2005-07-29 2007-02-01 Paul Weinberg Method for generating properly formed expressions
US7870162B2 (en) * 2005-07-29 2011-01-11 Sap Ag Method for generating properly formed expressions
US20070078823A1 (en) * 2005-09-30 2007-04-05 Microsoft Corporation Expression templates and object classes for multidimensional analytics expressions
US20090113384A1 (en) * 2006-03-23 2009-04-30 International Business Machines Corporation System and apparatus for graphically building business rule conditions
US20110138335A1 (en) * 2009-12-08 2011-06-09 Sybase, Inc. Thin analytics for enterprise mobile users

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
Bagui et al., Learning SQL on SQL Server 2005, Apr. 26, 2006, O'Reilly Media, Inc., p. 20, ISBN 978-0-596-10215-9. *
Baiter, Microsoft Office Access 2003 in a Snap, Aug. 9, 2004, Sams, p. 174, ISBN 978-0-672-32544-6. *
Expression Web 2 Beta, "Expression Web Blog" printed on Oct. 1, 2009 from website http://www.expression-web.net/expression-web-2-beta/ pp. 1-4.
Fitzgerald et al., Special Edition Using Crystal Reports 10, Jul. 14, 2004, Que, Chapter 4, Using the Workshop Formula Editor, ISBN 978-0-7897-3113-5. *
Google Docs Tour, Create documents, spreadsheets and presentations online printed on Oct. 1, 2009 from website http://www.google.com/google-d-s/intl/en/tour1.html 1 pg.
Liberty, Programming Visual Basic 2005, Sep. 16, 2005, O'Reilly Media, Inc., Chapter 15 section 3, ISBN 978-0-596-00949-6. *
Microsoft Office Action Online, "Using the Expression Builder" printed on Oct. 1, 2009 from website http://office.microsoft.com/en-us/access/HP051866381033 ; pp. 1-5.
SQL Prompt, Jun. 17, 2007, http://web.archive.org/web/20070617021500/http://www.red-gate.com/products/SQL-Prompt/index.htm. *
SQL Prompt, Jun. 17, 2007, http://web.archive.org/web/20070617021500/http://www.red-gate.com/products/SQL—Prompt/index.htm. *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140379512A1 (en) * 2008-10-07 2014-12-25 Bigmachines, Inc. System, device and method for formula management
US20120192091A1 (en) * 2010-10-19 2012-07-26 International Business Machines Corporation Automatically Reconfiguring an Input Interface
US10764130B2 (en) * 2010-10-19 2020-09-01 International Business Machines Corporation Automatically reconfiguring an input interface
US11206182B2 (en) 2010-10-19 2021-12-21 International Business Machines Corporation Automatically reconfiguring an input interface
US20150121268A1 (en) * 2013-10-30 2015-04-30 Salesforce.Com, Inc. System and method for metadata management via a user interface page
US10409808B2 (en) * 2013-10-30 2019-09-10 Salesforce.Com, Inc. System and method for metadata management via a user interface page
US10740413B2 (en) 2013-10-30 2020-08-11 Salesforce.Com, Inc. System and method for user information management via a user interface page
US20160292210A1 (en) * 2015-04-06 2016-10-06 Cognizant Technology Solutions India Pvt. Ltd. System and method for automatically and efficiently validating database objects
US11281439B2 (en) * 2018-07-25 2022-03-22 Avaya Inc. System and method for creating a contextualized after call workflow

Similar Documents

Publication Publication Date Title
US10198425B2 (en) Methods and apparatus for reusing report design components and templates
AU2013331476B2 (en) Specifying and applying rules to data
JP2732552B2 (en) How to generate and display search queries and search results
US8909585B2 (en) Rule-based binding
US9535726B2 (en) Reverse dependency injection in a system with dynamic code loading
US8234562B1 (en) Error checking for data entry
US8301668B1 (en) Expression builder
EP2189929A1 (en) Popup window for error correction
US7702616B1 (en) Methods and apparatus for processing a query joining tables stored at different data sources
US9471700B2 (en) System and method for monitoring changes in databases and websites
JP2019520649A (en) Process visualization platform
US7720838B1 (en) Methods and apparatus for joining tables from different data sources
US7870480B1 (en) Methods and apparatus for storing and retrieving annotations accessible by a plurality of reports
US20100287459A1 (en) Reusable business logic across user interface containers
US20080215347A1 (en) Computer system connected to electronic-commerce server and method and program for supporting input of numerical value required for performance of electronic-commerce transaction
JP2018520452A (en) Techniques for constructing generic programs using controls
EP4120207A1 (en) Methods, systems, articles of manufacture and apparatus to label text on images
JP2008083992A (en) Structured document retrieval support apparatus and program thereof
EP3411811A1 (en) Systems and methods for using entity/relationship model data to enhance user interface engine
WO2018053889A1 (en) Distributed computing framework and distributed computing method
US20080269919A1 (en) Bringing user attention to guidance information presented on a display device
CN114072787A (en) System and method for fast data entry to facilitate document review
US10203939B2 (en) Method and system for parameter model framework
US8413062B1 (en) Method and system for accessing interface design elements via a wireframe mock-up
JP2022173048A (en) Robotic process automation (rpa) comprising automatic document scrolling

Legal Events

Date Code Title Description
AS Assignment

Owner name: ACTUATE CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HE, WENBIN;LI, WENFENG;ZHAI, JUN;AND OTHERS;REEL/FRAME:020826/0451

Effective date: 20080415

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: XENOS IP PARTNERSHIP, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE LLC;REEL/FRAME:031111/0038

Effective date: 20130827

Owner name: ACTUATE CORPORATION, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE LLC;REEL/FRAME:031111/0038

Effective date: 20130827

Owner name: ACTUATE INTERNATIONAL CORPORATION, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE LLC;REEL/FRAME:031111/0038

Effective date: 20130827

AS Assignment

Owner name: OPEN TEXT CORPORATION, CANADA

Free format text: OFFICER'S CERTIFICATE;ASSIGNOR:ACTUATE CORPORATION;REEL/FRAME:036128/0131

Effective date: 20150211

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: OPEN TEXT HOLDINGS, INC., CALIFORNIA

Free format text: MERGER;ASSIGNOR:ACTUATE CORPORATION;REEL/FRAME:047152/0937

Effective date: 20180928

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8