One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
According to one embodiment, the present invention provides reports that can be used for input as well as output. A report is displayed. User input is received in connection with the displayed report. Based on the user input, transactions are added, deleted, and/or modified and the displayed report is updated accordingly.
The invention is described herein in the context of a personal financial software application that includes the capability of generating reports based on transactions and other financial data. For example, the functionality described herein can be implemented as a feature of a software application such as Quicken, available from Intuit Inc. The transactions and other data can be user-entered or can be received from another source, or can be a combination of both. Although the invention is described in such a context, one skilled in the art will recognize that the techniques and principles described herein have wide applicability in other contexts as well. For example, the present invention can be implemented in web-based applications, websites, locally-run software applications, or any combination thereof.
Accordingly, the specifics of the exemplary embodiments described herein are intended to be illustrative and are not intended to limit the scope of the invention.
Furthermore, the particular arrangements of elements in screen shots and reports shown here are illustrative of one embodiment and are not intended to limit the scope of the present invention.
The user computer 205 is of conventional design, and includes a processor, an addressable memory, and other conventional features (not illustrated) such as a display, local memory, input/output ports, and a network interface. In other embodiments one or more of the components of the user computer 205 may be located remotely and accessed via a network. The network may be a wired or wireless network. Examples of the network include public networks, private networks, Internet, an intranet, a cellular network, or a combination thereof, or other system or method enabling digital communication between two or more computing systems.
The network interface and a network communication protocol provide access to a network and other computers, such as other user computers or third party computers, along with access to the Internet, via a TCP/IP type connection, or to other network embodiments, such as a LAN, a WAN, a MAN, a wired or wireless network, a private network, a virtual private network, or other networks. In various embodiments the user computer 205 may be implemented on a computer running a Microsoft operating system, Mac OS, various flavors of Linux, UNIX, Palm OS, and/or other operating systems.
The third party computers, if present, also may be computer systems, similar to the user computer described above. For example, one embodiment of a third party computer is a financial institution computer system, which provides transactions processing and clearing functionality for user software. The financial institution could be a securities brokerage company, a bank or credit union, a credit card company, or financial institutions. In this embodiment, the user software application 220 described herein may be a financial management software package capable of communicating with the financial institution computer system to access information from pre-existing user accounts (e.g., obtain account balances to determine available funds), and provide payment instructions for making payments to vendors.
The user computer 205 includes a software application 220, data store 225, and data cache 230. The software application 220 includes a number of executable code portions and data files. These include code for creating and supporting a user interface 240 according to one embodiment of the present invention, as well a report module 245 for generating interactive reports according to the techniques described herein. In other embodiments, the software application 220 can also be implemented as a stand-alone application outside of a financial management software package.
Data store 225 includes stored transactions 226. In one embodiment, transactions 226 are stored locally at user computer 205. In another embodiment, transactions 226 are stored at some other location, such as for example a remote server associated with a financial institution or other entity. In such an embodiment, report module 245 retrieves transaction data from the remote source as needed for generating reports 229, and transmits modified transaction data back to the remote source when appropriate. Such communications can take place using known network communication protocols across any known communication medium.
The software application 220 is responsible for orchestrating the processes performed according to the methods of the present invention. The software application 220 includes report module 245 for generating interactive reports 229 according to one embodiment of the present invention.
The report module 245 enables the system 200 to generate and present interactive reports 229 that are presented to user 232 via output device 228. In one embodiment, report module 245 operates within the context of user interface 240. The report module 245 is one means for generating interactive reports according to the present invention.
The above-described software portions need not be discrete software modules. The software configuration shown is meant only by way of example; other configurations are contemplated by and within the scope of the present invention.
The software application 220 may be provided to the user computer 205 on a computer readable media, such as a CD-ROM, diskette, or by electronic communication over a network from a third party computer or other distributors of software, for installation and execution thereon. Alternatively, the software application 220, data store 225, and data cache 230 can be hosted on a server computer, and accessed over a network, using for example a browser interface to the software application 220.
The data store 225 may be a relational database or any other type of database that stores the data used by the software application 220, for example account information in the financial management application embodiment referenced above. The data store 225 may be accessible by the software application 220 through the user interface 240. Some data from the data store 225 may be added to the data cache 230 upon initialization of the software application 220. The software application 220 and the data store 225 may be stored and operated on a single computer or on separate computer systems communicating with each other through a network.
The data cache 230 is a standard cache of small, fast memory holding recently accessed data. The data cache 230 may include, for example, transaction data to be used by report module 245 according to one embodiment of the present invention.
One skilled in the art will recognize that the system architecture illustrated in
Referring now to
Report module 245 receives 101 a request for a report. For example, user 232 may activate a command that invokes a report request. Alternatively, a report may be generated automatically based on certain actions or transaction entries by the user. Parameters and characteristics for the report may be specified explicitly, or based on defaults, or they may be determined automatically based on the context in which the report was requested.
Most reports present transaction data of some kind. Accordingly, upon receiving the report request, report module 245 retrieves 102 transaction data for the report. In some cases, such transaction data can be obtained from stored transactions 226 at data store 225 located locally or remotely with respect to user computer 205. Transaction data may also be retrieved from cache 230 if it is available there.
Based on the specified parameters and retrieved transaction data, report module 245 generates 103 a report. The report is displayed 104 for user 232, for example via UI 240.
According to the techniques of the present invention, the displayed report is an interactive report 229. Thus, in addition to providing information to user 232, interactive report 229 provides a mechanism for receiving input from user 232 via input device 227. Report module 245 receives 105 user input in connection with the displayed interactive report 229. For example, the received input may indicate that the user would like to add a transaction, edit an existing transaction, or delete a transaction.
Based on the user input, report module 245 modifies transaction data. The displayed interactive report 229 is updated 107 accordingly, and the modified transaction data is stored 108, for example in stored transactions 226 area of data store 225.
Referring now to
The user can specify whether spending details section 302 should include transactions for all payees or some subset of payees by making the appropriate selection from payee menu 304. One skilled in the art will recognize that other types of information can be provided in spending details section 302.
The user can select a transaction 306A that is displayed in spending details section 302, and can make changes to the selected transaction 306A. For example, the user can change a date, payee, memo, or amount for transaction 306A, by selecting the transaction 306A, typing the changes, and pressing Enter or Return. The user can delete a selected transaction 306A by hitting a delete key; in one embodiment the user can make multiple selections and delete all selected transactions 306 with one keystroke. In one embodiment, the user can add a new transaction 306 by interacting with spending details section 302.
Referring now to
One skilled in the art will recognize that other mechanisms and user interfaces can be used for adding new transactions in the context of interactive report 229.
Referring now to
Referring now to
Referring now to
Referring now to
In the example, the user wishes to change the category of transaction 306A to a category other than groceries. One mechanism for doing so is to drag transaction 306A to a bar graph 301 representing the desired category. In the context of an interactive report 229 as provided by the present invention, such a user action causes the dragged transaction 306A to be recategorized.
In
Accordingly, as shown in
The techniques of the present invention can also be implemented in connection with other types of reports, including any other type of graphical and/or non-graphical (tabular and/or text-based) report.
The present invention thus allows a user to make changes to transactions, and/or to add and delete transactions, directly from a displayed report. This saves time and effort, since the user does not have to return to a transaction register or other entry/edit screen and then re-run the report to see the results of his or her changes. The interactive report of the present invention thus provides an efficient mechanism for presenting transaction data to the user and receiving transaction input from the user.
The present invention has been described in particular detail with respect to one possible embodiment. Those of skill in the art will appreciate that the invention may be practiced in other embodiments. First, the particular naming of the components, capitalization of terms, the attributes, data structures, or any other programming or structural aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, formats, or protocols. Further, the system may be implemented via a combination of hardware and software, as described, or entirely in hardware elements. Also, the particular division of functionality between the various system components described herein is merely exemplary, and not mandatory; functions performed by a single system component may instead be performed by multiple components, and functions performed by multiple components may instead be performed by a single component.
Some portions of above description present the features of the present invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules or by functional names, without loss of generality.
Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Certain aspects of the present invention include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the present invention could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.
The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
The algorithms and operations presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent to those of skill in the, along with equivalent variations. In addition, the present invention is not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any references to specific languages are provided for invention of enablement and best mode of the present invention.
The present invention is well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.
Finally, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.