The invention is more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which:
Like reference numerals refer to corresponding parts throughout the several views of the drawings.
A memory 110 (e.g., a volatile memory loading data from the storage device 106) stores a report server 112, report design tools 114, and distributable mobile communication device reports 116. The report server 112 supplies standard report serving functionality. In one embodiment, report design tools 114 facilitate the creation of distributable mobile communication device reports 116 in accordance with the invention.
Mobile communication devices 128-A and 128-B independently access one or more distributable mobile communication device reports 116. Each mobile device has a client application 130 to facilitate requesting, viewing and manipulating report documents. In one embodiment, the client application is downloaded from the server 101 using the same type of network architecture used to deliver the distributable mobile communication device reports 116.
Link 118 supports the flow of data packets that describe reports provided by the report server 112 and requests from the client application 130A, 130B for specific reports. Reports are passed through the wireless network provider 124 to the mobile communication device 128-A, 128-B where the client application 130-A, 130-B facilitates viewing the report and requesting refreshed or different report content. When a request is made from the mobile communication device, it is passed back through the network to the system 100 containing the report server 112.
The network configuration and executable modules stored in memory 110 are exemplary. It should be appreciated that the functions of the modules may be combined. In addition, the functions of the modules need not be performed on a single machine. Instead, the functions may be distributed across a network, if desired. It is the functions of the invention that are significant, not where they are performed or the specific manner in which they are performed.
The report is available on a server accessible to mobile communication devices 208. Depending on the network configuration, this server may be accessed indirectly through additional servers, transmission protocols, networks, and the like. A user using a mobile communication device requests a report 210. This request may be either explicit, a request for all available reports, or based on a preference configuration. The user is able to select a report from the server 212. The report is displayed on the user's mobile communication device 214.
Optionally, the report is augmented with specific navigation features to produce an augmented report document 306. In an embodiment, this occurs within the client reporting application. The report is displayed 308. The user provides input to navigate, change the report being viewed, change the view on the report, change parameters for the report, or change display options and the like 310. The display of the report reflects user input 312. In the case of changes that require a data refresh, a new request is sent to the server to request the document. In other cases, processing occurs on the mobile communication device.
In one embodiment of the invention, when the client application detects data packet loss it will try a series of parameter changes to fix the problem. In normal operation, the call will return the entire document. If normal document access does not work because of degraded network conditions, then the client application switches to packet mode and tries a decreasing series of packet sizes on its server requests until access succeeds or fails. The server varies the delivered packet sizes in response to the input from the client. When it switches to packet mode, the client application starts with a default size modifiable by the user in a “Server Settings” window. Upon switching to packet mode, the client application starts with the default packet size and then, if this first packet-based call fails, the client application decrements the packet size requested by one kilobyte and tries again, repeating the procedure until a call succeeds or the packet size reaches one kilobyte in length. If the network call fails at a one kilobyte data packet size, the client application presents an error message.
Keys on the mobile control device are enabled as hotkeys when viewing a report document. In one embodiment, the hotkey shortcuts have values as follows: Key 1=Show/Hide cell data and zoom status—pressing key #1 toggles on or off the Show Current Cell Value display line at the bottom of the screen in the status bar. Key 2=Fit Report to Full screen—pressing key #2 removes all titles and menus from the display and makes the entire device screen available for report viewing and navigation. Key 3: Lock Row & Column Headers—pressing key #3 locks the table headers to make them always visible as a user scrolls within the table. Key 4: Previous Page—pressing key #4 opens the previous report page. This menu item appears only in multi page reports. Key 5: 100% Rendering—pressing key # 5 sets the zoom to be 100% which means that 1 pixel on the original report will be represented by one pixel rendered on the mobile device. Key 6: Next Page—pressing key #6 opens the next report page. This menu item appears only in multi page reports. Key 7: Zoom-out—pressing key #7 will incrementally zoom OUT from the current view. Key 8: Fit to screen—pressing key #8 will set the zoom view so that the viewed report fits entirely within the mobile device screen.
Reports that are not designed for mobile devices may become quite small in which case their cells are replaced by “###”. In this case, users can still navigate a report and see cell values by pressing key #1 above. Key 9: Zoom-in—pressing key #9 will incrementally zoom in from the current view.
An embodiment of the present invention relates to a computer storage product with a computer-readable medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions, such as executing a query against a database.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.