WO2005072140A2 - Procedes et appareils servant a questionner des bases de donnees ne dependant pas de clients - Google Patents

Procedes et appareils servant a questionner des bases de donnees ne dependant pas de clients Download PDF

Info

Publication number
WO2005072140A2
WO2005072140A2 PCT/US2005/001243 US2005001243W WO2005072140A2 WO 2005072140 A2 WO2005072140 A2 WO 2005072140A2 US 2005001243 W US2005001243 W US 2005001243W WO 2005072140 A2 WO2005072140 A2 WO 2005072140A2
Authority
WO
WIPO (PCT)
Prior art keywords
report
query
font
paddi
output file
Prior art date
Application number
PCT/US2005/001243
Other languages
English (en)
Other versions
WO2005072140A3 (fr
Inventor
Caitlyn Harts
Douglas Harts
Asim Pandey
Original Assignee
Caitlyn Harts
Douglas Harts
Asim Pandey
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 Caitlyn Harts, Douglas Harts, Asim Pandey filed Critical Caitlyn Harts
Publication of WO2005072140A2 publication Critical patent/WO2005072140A2/fr
Publication of WO2005072140A3 publication Critical patent/WO2005072140A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Definitions

  • the present invention pertains to databases and querying of databases. More particularly, the present invention pertains to methods and apparatus to perform client-independent database queries utilizing an object model to generate a report definition output file.
  • RDL Report Definition Language
  • Microsoft Corporation has developed a Report Definition Language (RDL) to promote the interoperability of available report applications by defining a common schema that allows interchangeability of report definitions.
  • Microsoft Corporation has published a Report Definition Language Specification enabling developers to implement RDL in a variety of applications.
  • RDL Report Definition Language
  • the invention provides methods and apparatus that allows the implementation of a standard report definition language in the development of report applications, and specifically those report applications intended to provide client- independent database inquires.
  • the invention provides an object model configured to receive user selections and convert the user selections into a report definition output file representative of an XML expression of a report that may be processed by an XML engine to generate a report.
  • the report definition output file is preferably an RDL output file based on the Report Definition Language Specification published by Microsoft Corporation. It will be understood by those skilled in the art, however, that the invention is applicable to any type of report definition specification that provides interoperability.
  • an object model wrapper is utilized to provide an interface to the object model for the user selections. Accordingly, frequently utilized query elements can be predefined by the object model wrapper to provide a short-cut for programmers.
  • the object model wrapper effectively operates as an object model to the object model or a wrapper around the object model, whereby a single instruction or element supplied to the object model wrapper is expanded to a plurality of instructions or elements. Thus, particularly for frequently used elements, the number of entries required to be made by the programmer is reduced.
  • the object model and object model wrapper preferably constitute elements of a query model.
  • the query model further includes a base code module coupled to the object module and the object model wrapper, wherein the base code module receives user selections and provides the user selections to the object model wrapper and receives the report definition output file from the object module.
  • the query model is preferably implemented in a database query system.
  • the database query system includes an internet information server, wherein the internet information server receives user selections from and provides information to clients.
  • the query module is interfaced with the internet information server, wherein the query module includes an object model configured to receive the user selections and convert the user selections into a report definition output file representative of an XML expression of a report that may be processed by an XML engine to generate a report.
  • An XML engine is interfaced with the query module, wherein the XML engine receives a report definition output file from the query module that is processed by the XML engine to generate a report in a desired format.
  • the database query system includes a web programming tool set module interfaced with the query module, wherein the query module utilizes the web programming tool set module to generate user interface screens that are supplied to the clients via the internet information server.
  • a network is also preferably coupled to the internet information server to interface the internet information server to the clients.
  • the invention also provides a method of providing a database query that includes: receiving user selections that specify query criteria for a desired query; building a query instruction set based on the user selections; utilizing an object model to generate report definition output file representative of an XML expression of a report based on the Query instruction set; supplying the report definition file to an XML engine; and processing the report definition output file with the XML engine to produce query results in the form of a report.
  • the processing of the report definition output file with the XML engine preferably includes retrieving from a database information matching the query criteria specified by the user selections and reflected in the report definition output file.
  • the query criteria can be tested first before running the query to generate a report, by utilizing the Query instruction set to directly interrogate a database to determine the number of records that meet the query criteria, and providing to a user an indication of the number of records that would result from the running of the desired query.
  • a machine readable medium may also be encoded with machine instructions in accordance with the instructions, wherein the machine instructions include an object model configured to receive user selections and convert the user selections into a report definition output file representative of an XML expression of a report that may be processed by an XML engine to generate a report.
  • the machine instructions include an object model configured to receive user selections and convert the user selections into a report definition output file representative of an XML expression of a report that may be processed by an XML engine to generate a report.
  • FIG. 1 is a diagram of an example client/server system
  • FIG. 2 is a diagram providing additional detail regarding one example manner in which the server of FIG. 1 may be implemented
  • FIG. 3 is a diagram providing additional detail regarding one example manner in which the query module of FIG. 2 may be implemented
  • FIG. 4 is a relationship diagram illustrating example interaction among the various entities of FIG. 3
  • FIG. 5 is an example code segment representing the base code of FIG. 3
  • FIG. 6 is an example code segment representing the RDL object model wrapper code of FIG. 3
  • FIG. 7 is an example code segment representing the RDL object model of FIG. 3
  • FIG. 1 is a diagram of an example client/server system
  • FIG. 2 is a diagram providing additional detail regarding one example manner in which the server of FIG. 1 may be implemented
  • FIG. 3 is a diagram providing additional detail regarding one example manner in which the query module of FIG. 2 may be implemented
  • FIG. 4 is a relationship diagram illustrating example interaction among the various entities of FIG. 3
  • FIG. 5 is an example code
  • FIG. 8 is a diagram illustrating one manner in which the RDL object model of FIG. 3 may be implemented;
  • FIG. 9 is a diagram of an example hardware system that may be used to implement the server of FIG. 1;
  • FIG. 10 is a flow diagram of an example query-by-example process that may be implemented by instructions carried out by the example hardware system of FIG.
  • FIG. 11 is a flow diagram of an example run report process that may be implemented by instructions carried out by the example hardware system of FIG. 9;
  • FIG. 12 is a screen-shot of an example user interface that may be provided to the client by the server of FIG. 1 ;
  • FIG. 13 is a screen-shot of an example user interface showing additional detail regarding available Views of a selected data source;
  • FIG. 14 is a screen-shot of an example user interface showing additional detail provided to the client to customize the query upon selection of the Sales Totals by Amount (dbo) view;
  • FIG. 15 is a screen-shot showing the results of user customization of the query;
  • FIG. 16 is a screen-shot showing the results of a user requesting a record count of the query customized as shown in FIG. 15;
  • FIG. 17 is a screen-shot showing the results of a user requesting a run of the query customized as shown in FIG. 15; and
  • FIG. 18 is a screen-shot showing the results of a user selecting the Select a format drop
  • a computing network 100 may include a server 102 having an associated database 104.
  • One or more clients 106, 108 may be coupled to the server 102, either directly (as in the case of the client 106) or through a network 110 (as in the case of the client 108).
  • the computing network 100 which is configured as described herein, allows one or more users to operate one or more clients (e.g., the clients 106 or 108) to access data from the database 104 via the server 102.
  • users at the clients e.g., the clients 106 and/or 108 will be able to create ad hoc, customized reports of data in the database 104 without the need to install special client software or without requiring the help of database administration personnel.
  • the clients e.g., the clients 106, 108
  • the clients have Internet connectivity and a web browser such as Microsoft Internet Explorer or any other suitable software.
  • a web browser such as Microsoft Internet Explorer or any other suitable software.
  • non-technically oriented employees will be able to run custom queries using a query-by-example (QBE) paradigm.
  • QBE query-by-example
  • employees will be able to access data and run custom reports and queries from anywhere in the world, provided the employees have access to an Internet connection and an Internet browser.
  • the server 102 may implement a structured query language (SQL) database software package or any other suitable software package such as, for example, DB2, Oracle, and/or Informix.
  • SQL structured query language
  • the server 102 also includes other software functionality that makes it possible for clients having only a web browser to access and run custom reports.
  • the server 102 may be implemented using any suitable and commercially available server computing system that may be available from, for example, Dell, IBM, etc. Further detail regarding the hardware configuration of the server is provided below.
  • the database 104 may reside within the server 102 or may be implemented apart there from.
  • the database 104 may be implemented on a mass storage device that is built within the server 102.
  • the database 104 may be implemented using any suitable data source such as, for example, a Microsoft Excel spreadsheet or a text repository.
  • the clients 106, 108 may be implemented using any computing system.
  • the clients 106, 108 may be implemented using desktop or laptop computer systems.
  • the clients 106, 108 require no special software functionality.
  • the clients 106, 108 may include only web browsing software. Additionally, such web browsing software need not include any special plug-ins or software add-ons. Clients configured with operational web browsers are enabled via the disclosed system to create and run reports on the information on the database 104.
  • the network 110 may be implemented using any suitable configuration.
  • the network may be implemented using a local area network (LAN), a wide area network (WAN), or any other network arrangement.
  • the network 110 may be implemented using the Internet.
  • the Internet is an international network linking a vast number of computer nodes to one another.
  • the client 108 could be located on, for example, the west coast of the United States and the server 102 could be located on, for example, the east coast of the United States.
  • a user at the client 108 would be able, through the Internet, to access the server 102 and the database 104.
  • the user at the client would be able to perform ad hoc reporting using real-time data stored in the database 104.
  • the Server System The Server System
  • FIG. 2 illustrates one server system 200 in which the server 102 may be implemented.
  • the server system 200 includes an Internet information server (IIS) 202 that is coupled to an ASP.NET module 204 and that receives information from and provides information to clients (e.g., the clients 106, 108 of FIG.1).
  • the IIS 202 is further coupled to a query module 206 that is also coupled to a SQL server extensible markup language (XML) consumer engine (XML engine) 208. Both the query module 206 and the XML engine 208 are coupled to a database (e.g., the database 104 of FIG. 1).
  • the IIS 202 is the uniform resource locator (URL) address at which the query module 206 may be found.
  • URL uniform resource locator
  • IIS is from the Microsoft vernacular, those having ordinary skill in the art will readily recognize that other services may be used such as, for example, Apache in the UNIX domain. Alternatively, any suitable web server may be used to implement certain functionality performed by the IIS 202.
  • the ASP.NET module 204[MCZ1] is a Microsoft web programming tool set and development platform.
  • the query module 206 may use the ASP.NET module 204 to generate user interface screens that provide users the ability to customize queries. While the ASP.NET module 204 is shown as being one example, those having ordinary skill in the art will readily recognize that other components such as Java 2 Enterprise Edition may be used.
  • the query module 206 receives user-generated query information from the clients (e.g., the clients 106, 108) and processes the query information, as described below, to form RDL code/instructions representing the query information.
  • the RDL code is then passed to the XML engine 208, which queries the database and returns a record set that will be displayed to a user.
  • the XML engine 208 is a XML manipulation engine that receives XML and performs queries on one or more databases or data sources, to obtain data there from. Further, the XML engine 208 formats the data and returns the query results in HTML, MHTML (Microsoft hypertext markup language), PDF (portable document format), or any other suitable format.
  • the XML engine 208 manipulates XML that is compatible with the report definition language (RDL) specification, second draft, prepared by Microsoft and dated March 31 , 2003, or any subsequently specified RDL specification.
  • RDL report definition language
  • the Microsoft report definition language specification, dated March 31 , 2003 is incorporated by its entirety herein.
  • the IIS 202 receives query information from the browser operating on the client and passes the query information to the query module 206, which may directly interrogate a database (e.g., the database 104) and may respond to the client with relevant information.
  • the query module 206 upon receiving user-generated query information, may perform some processing and invoke a web-service call to the XML engine 208.
  • the web-service call may include an RDL set of language instructions that will be interpreted by the XML engine 208 and used by the XML engine 208 to extract information from the database.
  • the extracted information which may be referred to as extracted records, is passed back to the client in a format that is easily readable by the client.
  • the results of the query i.e., the resulting record set
  • the example query module 300 includes base code, which may also be referred to at user interface (Ul) code 302, an RDL object model wrapper 304, an RDL object model 306, and a WEB.CONFIG file 308.
  • the base code 302 may also be coupled to a database 310, which may be implemented using the database 104 of FIG. 1.
  • the RDL object model 306 is a software construct that is configured to receive the user selections and convert the user selections into an RDL output file that may be processed by the XML engine (e.g., the XML engine 208 of FIG. 2). Further detail pertinent to each of the base code 302, the RDL object model wrapper 304, and the RDL object model 306 are their interaction is provided below.
  • the base code 302 receives user query information from a client.
  • the user at a client may be presented with a webpage-like user interface into which the user may provide his/her query criteria.
  • these user selections are provided to the base code 302.
  • the user interface provided to the user via the client is updated by the base code so that the user may constantly view the current state of the query and user selections.
  • the user may be able to test the query selections that he/she has made.
  • the user instructs the base code 302 to interrogate the database 310.
  • the results of the database interrogation are provided back to the base code 302, which, in turn, passes the results to the user at the client via a series of user interface screens.
  • the object model wrapper 304 provides a programming interface to the RDL object model 306 and, therefore, requests the RDL object model 306 to create an RDL table 408.
  • the programming interface provided by the object model wrapper 304 may simplify the manner in which programmers access the RDL object model 306, by essentially providing a short-cut to commonly utilized query criteria. In effect, the RDL object model wrapper 304 acts as an object model within an object model.
  • the user may opt to add fields to the table data region that was previously created 410.
  • the RDL object model wrapper 304 may request the RDL object model 306 to add table columns 412, to add header rows 414, to add detail rows 416, and/or to set dataset names 418.
  • the user may request an RDL document 420 reflecting the specified query information.
  • the RDL object model 306 will be serialized into an RDL XML document 422 that is provided to the base code 302.
  • the serialized RDL document is passed to the XML engine 208, as shown at reference numeral 424.
  • the XML engine 208 processes the serialized RDL document including the query and returns query results formatted as an HTML, MHTML, or any other suitable formatted result set for display to the user 426.
  • the WEB.CONFIG file 308 may store various portions of information related to the base code 302.
  • the WEB.CONFIG file 308 may store data source connection information and may store the names of tables, view, and stored procedures that may be viewed by a user.
  • the base code 302 may access a database to determine the identities of a number of different tables, views, and/or stored procedures that may be accessed by a user. Before all of the tables, views, and/or stored procedures are presented to a user, the base code 302 may access the WEB.CONFIG file 308 to determine which of the items should be displayed to the user. For example, one or more views may be kept from the user through filtering performed by the base code 302 based on information stored in the WEB.CONFIG file 308. Additionally, the WEB.CONFIG file 308 may be used to define security settings for the base code 302.
  • the WEB.CONFIG file 308 may define whether a user is required to login to obtain access to the functionality provided by the base code 302. Further, the WEB.CONFIG file 308 may be used to store user queries that need not be stored in the database on the server. Of course, user queries and/or application settings stored in the WEB.CONFIG file 308 could alternatively or additionally be stored within the database.
  • FIGS. 5A-5E illustrate example portions of base code 500.
  • the base code 500 is the interface between the user and an RDL object model wrapper 600 of FIG. 6.
  • the RDL object model wrapper 600 receives requests from the base code 500 and passes some or all of those requests to an RDL object model 700 of FIGS. 7A-7D.
  • the following example operation is provided in the context of the need to create a table data region. Accordingly, the example calls made to the RDL object model wrapper 600 and the RDL object model 700 are made to fulfill the addition of the table data region to a report.
  • the following is merely one example of how the base code 500, the RDL object model wrapper 600, and the RDL object model 700 interact.
  • the execution of the base code 500 begins as defined in FIG. 5A and continues execution until a call to the RDL object model wrapper 600 is reached.
  • the call to the RDL object model wrapper 700 is represented by the line of code indicated by reference numeral 502.
  • the base code 500 calls an AddBlankRegion routine, which resides within the RDL object model wrapper 600.
  • the RDL object model wrapper 600 of FIG. 6 begins execution at the top of the code listing due to the call into the AddBlankRegion routine.
  • the RDL object model wrapper 600 executes a number of lines of code and then reaches the code denoted by reference numeral 602, which is a new table call to the RDL object model 700.
  • the RDL object model 700 begins execution at a public class Table: DataRegion line of code denoted at reference numeral 702.
  • Each of the remaining lines of code shown in FIGS. 7A-7C are executed until the line of code denoted with reference numeral 704 is reached, at which point control returns to 602 of FIG. 6.
  • the RDL object model wrapper 600 continues its execution from line 602 until it reaches a line denoted at reference numeral 604, which instructs the RDL object model wrapper 600 to return the generated table data region to the calling routine, which is the base code 500 at line 502.
  • FIG. 8 a representation of an RDL object model shows various classes that collectively define the RDL object model.
  • FIG. 8 is shown as being an object-oriented model class diagram representing hierarchical and relational grouping of programming constructs.
  • Each of the blocks shown in FIG. 8 includes a title portion in which the name of the class is displayed, a variable location that describes the state of the object. Below the variable location is a methods and properties location that defines behavior of the class.
  • the RDL object model includes Report 802, Reportltems 804, Reportltem 806, and ReportltemType 808 classes.
  • the Reportltem 806 class is linked to DataRegion 810, Image 812, and Textbox 814 classes.
  • the DataRegion 810 class is further linked to Table 816 and Chart 818 classes.
  • PageFooter 820 and PageHeader 822 classes provide information to a PageHeaderFooterType 824 class.
  • the RDL model further includes DynamicSeries 826, DynamicCategories 828, and Body 830 classes.
  • the relationships or links between the various classes define how classes will inherit traits from other classes.
  • the Table 816 class inherits its traits from the DataRegion 810 class, which inherits its traits from the Reportltem 806 class.
  • the RDL object model of FIG. 8 may include various other classes that are yet to be defined, but will be substantially completely compatible with the RDL specification.
  • an example processor system 900 that may be used to implement the server 102 of FIG. 1 includes a processor 902 having associated memories 904, such as a random access memory (RAM) 906, a read only memory (ROM) 908, and a flash memory 910.
  • the processor 902 is coupled to an interface, such as a bus 920 to which other components may be interfaced.
  • the components interfaced to the bus 920 include an input device 922, a display device 924, a mass storage device 926, and a removable storage device drive 928.
  • the removable storage device drive 928 may include associated removable storage media (not shown), such as magnetic or optical media.
  • the processor system 900 may also include a network adapter 930.
  • the processor 902 may be any type of processing unit, such as a microprocessor from the Intel family of microprocessors. Alternatively, the processor 902 may be implemented using any other suitable processor technology.
  • the memories 904 that are coupled to the processor 902 may be any suitable memory devices and may be sized to fit the storage and operational demands of the system 900.
  • the flash memory 910 may be a nonvolatile memory that is accessed and erased on a block-by-block basis and that stores instructions that cause the processor 902 to perform various actions.
  • the input device 922 may be implemented using a keyboard, a mouse, a touch screen, a track pad or any other device that enables a user to provide information to the processor 902.
  • the display device 924 may be, for example, a liquid crystal display (LCD) monitor, a cathode ray tube (CRT) monitor or any other suitable device that acts as an interface between the processor 902 and a user.
  • the display device 924 includes any additional hardware required to interface a display screen to the processor 902.
  • the mass storage device 926 may be, for example, a conventional hard drive or any other magnetic or optical media that is readable by the processor 902.
  • the removable storage device drive 928 may be, for example, an optical drive, such as a compact disk-recordable (CD-R) drive, a compact disk-rewritable (CD-RW) drive, a digital versatile disk (DVD) drive, or any other optical drive.
  • the removable storage device drive 928 may alternatively be, for example, a magnetic media drive. If the removable storage device drive 928 is an optical drive, the removable storage media used by the drive 928 may be a CD-R disk, a CD-RW disk, a DVD disk, or any other suitable optical disk. On the other hand, if the removable storage device drive 48 is a magnetic media device, the removable storage media used by the drive 928 may be, for example, a diskette or any other suitable magnetic storage media.
  • the network adapter 930 may be any suitable network interface such as, for example, an Ethernet card, a wireless network card, a modem, or any other network interface suitable to connect the processor system 900 to a network 932.
  • the network 932 to which the processor system 900 is connected may be, for example, a local area network (LAN), a wide area network (WAN), the Internet, or any other network.
  • LAN local area network
  • WAN wide area network
  • the Internet or any other network.
  • the network could be a home network, an intranet located in a place of business, a closed network linking various locations of a business, or the Internet.
  • FIG. 10 is a flow diagram representing example instructions that may be carried out by the hardware of FIG. 9 to enable a user at a client to perform a query- by-example building process 1000.
  • Instructions implementing the query-by-example (QBE) process 1000 may be stored and executed by a server (e.g., the server 102 of FIG. 1).
  • the process 1000 begins by receiving user selections that specify query criteria (block 1002).
  • the query criteria may be specified using fields, drop down boxes, check boxes, radio buttons, or any other suitable user interface techniques that enable a user at a client to make query criteria selections using web-based user interface techniques.
  • the process 1000 may present a user at a client with an interactive webpage having a number of selectable criteria thereon.
  • the process 1000 receives the user's query criteria selection (block 1002).
  • the process 1000 awaits user selection either to test the criteria or to run a query based on the criteria.
  • the activities taken by the process 1000 upon a user indicating a desire to test the criteria will be described, followed by the activities taken by the process 1000 upon a user indicating a desire to run the query.
  • an SQL query (a form of query instruction set) is built based on the user selections (block 1004).
  • the SQL query is used to interrogate the database directly to determine the number of records that meet the criteria of the SQL criteria (block 1006).
  • the process 1000 provides to the user an indication of the number of records that would result from the running of the SQL (block 1008).
  • the process 1000 builds the SQL for the query based on the user selections (block 1010).
  • a run report process 1012 is started.
  • the run report process 1012 makes use of an RDL object model to generate RDL instructions that are provided to an XML engine that processes RDL.
  • the XML engine processes the RDL and produces the query results, which are provided to the user in, for example, a web browser in an HTML format.
  • FIG. 11 shows one example of a run report process 1100, which may be used to implement the run report process 1012 of FIG. 10.
  • the process 1100 translates the user selections into an RDL object model, which has been previously described in detail (block 1102).
  • the process 1100 receives from the RDL object model an RDL file representing the user- designed query in an RDL format (block 1104).
  • the process 1100 places a web-service call to the XML engine using the contents of the RDL file (block 1106).
  • the XML engine processes the RDL query and retrieves from the database all records (or rows) matching the criteria specified by the user and reflected in the RDL file.
  • the XML engine then passes the query results to the process 1100 (block 1108).
  • the process upon receiving the results from the XML engine, spawns a viewer on the user's client machine (block 1110) and presents the results in the spawned viewer (block 1112). After the results have been presented to the user in the viewer (block 1112), the process 1100 ends by passing control back to its calling routine.
  • a user interface screen 1200 includes a data source selection portion 1202, a prestored query portion 1204, a work area 1206, and a toolbar 1208.
  • the toolbar includes a number of icons such as Run Report 1210, Test SQL 1212, Save Report 1214, Clear Work Area 1216, Open Report 1218, Deploy to Reporting Services 1222, and Help 1224.
  • the data source selection portion 1202 may be implemented using a dropdown style graphical interface within the data source selection portion 1202 are listed the data sources to which the user may connect and of which queries may be made Each listed data source may have a corresponding Internet protocol (IP) address or URL at which the data is located The selection of one of the listed data sources causes the client to connect to a server hosting the selected data source
  • IP Internet protocol
  • the prestored query portion 1204 may include categories of Tables, Views, Stored Procedures, User Queries, and/or SQL Text
  • the information stored in each category may be organized in a Windows-like folder arrangement
  • the selection of the Views category results in a listing 1302 of the prestored database objects located within the Views category
  • the database objects stored in the prestored query portion 1204 may be frequently used queries or portions of queries that users have found particularly useful in the past Accordingly, the prestored query portion 1204 may be used as a shortcut for frequently used queries.
  • the availability of prestored queries lessens the burden on employees to redesign a query each time they want to run a report, thereby easing the burden on any database administration personnel that may be used for assistance in setting up the queries
  • the Run Report 1210 icon may be selected by a user once the user is confident that the query he/she has designed is accurate
  • the Test SQL 1212 icon may be selected by the user to test the query that he/she has designed
  • One of the results of the query test may be a total number of records that would be returned if the query were to be actually run Further detail on each of the Run Report 1210 and Test SQL 1212 icons is provided below
  • the Save Report 1214 icon when selected by a user, may spawn child windows that prompt the user to specify a location in which the user desires to save the RDL file
  • the Clear Work Area 1216 icon is selected by a user when the user desires the software to clear the work area 1206 of various open items that may be displayed
  • the Open Report 1218 icon is a long hand manner by which a previously saved RDL file may be selected for opening For example, selection of the icon 1218 may span various child windows that the user may employ to specify a location of a report to be opened Alternatively, a user could simply navigate to an RDL file and double-click the RDL file
  • the user may select the icon denoted with reference numeral 1222 to deploy to reporting services
  • the selection to deploy to reporting services stages the RDL produced by the query module on a Microsoft SQL reporting services server or any other serve, thereby enabling users to run reports within the Microsoft server environment or any other such RDL platform
  • Help 1224 icon By selecting the Help 1224 icon, a user may invoke context-sensitive help As with many Windows-based programs, the selection of the Help 1224 icon may provide the user with an index of help topics or a searchable table of contents that may be searched to identify help for various issues that a user may encounter
  • FIG 14 reflects the state of a user interface screen 1400 after a user has selected a predefined view 1402
  • the selection of the predefined view populates the work area with a report options portion 1404 and a report data portion 1406
  • the report options portion 1404 includes a number of fields into which data may be provided to customize the look and feel of the report to be generated
  • the report options portion 1404 includes a report title field that may be populated with the title "Sales By Company " Further the report options portion 1404 may also include various fields that may be used to select colors for various portions of the report
  • the report data portion 1406 includes a number of columns such as sort 1410, a show 1412, a column name 1414, a column label 1416, a column width 1418, operator 1420, filter value 1422, group by 1424, sort by 1426, and sum 1428
  • the sort column 1410 may be used to change the priority with which the fields of the report are displayed For example, as shown in FIG 15, the field company name 1502 may be moved to the top row by actuating the up arrow icon in the sort field 1410 [0071]
  • the user may select which information from the rows of information is to be displayed on the final report by selecting or deselecting the checkboxes in the show column 1412. For example, as shown in FIG. 15, all of the check boxes have been selected and, therefore, all of the information relevant to the selected rows will be displayed on the final report.
  • the column name 1414 is the actual field name from the database and the column label 1416 is the label for the column that will be displayed on the final report. While, as shown in FIG. 15, the column labels 1416 may match the column names 1414, this is not necessarily the case. In fact, the column label 1416 may be manipulated to make the final report more user-friendly and easy to read.
  • the column width 1418 includes a number of fields into which user preferences for column widths may be placed.
  • the fields may be initially filled with a default value such as 1.5 inches.
  • a default value such as 1.5 inches.
  • such default values may be changed to accommodate columns that may have information wider than the default setting.
  • the operator column 1420 may be implemented using a drop down box having a number of conditional expressions therein.
  • the drop down box may include greater-than, equal-to, and less-than symbols.
  • the selected symbols in the operator column 1420 are used to compare the value of the data in the field with a filter value provided by a user in the filter column 1422.
  • a filter value provided by a user in the filter column 1422.
  • an operator of equal-to maybe used in the company name in conjunction with a filter value of Company A to select records pertinent only to Company A.
  • the filter column 1422 may be filled by selecting a lookup function that provides a user with a list of optional filter values that be applied.
  • the filter column 1422 may also support the use of wildcard expressions to enable flexible filtering based on partial expressions.
  • the group by column 1424 may be used to select one or more criteria by which report results are to be grouped and subtotaled. For example, as shown in FIG. 15, a group by icon may be selected to indicate that the user desires to group the report results by CompanyName. [0076] After the criteria within the options portion 1404 and the report data portion 1406 have been configured as shown in FIG. 15, a user may opt to select the Test SQL icon. As described above in conjunction with FIG. 3, the Test SQL icon causes the base code 302 to interrogate the database 310 and to return statistics there from. For example, with reference to FIG. 16, a SQL test area 1602 may be spawned and may include information such as the SQL text that was tested 1604, the record count that would result is the report were actually run 1606, and the execution time of the test 1608.
  • the results will be displayed in a report viewer 1702.
  • the report will include the title 1704 previously specified by the user and will include company name 1706, sale amount 1708, orderlD 1710, and ShippedDate 1712 columns. Also, the results displayed in the report viewer 1702 are grouped by CompanyName.
  • a user may opt to export and/or save the report in one of a number of different formats by selecting a drop down box 1902.
  • the drop down box 1902 may include a listing of various file formats in which the report may be saved.
  • the report may be saved in XML, CSV, TIFF, PDF, XLS, and/or HTML formats. Additionally, other suitable formats may be provided in which the report may be saved.
  • the report may also include a Printer Friendly Report 1904 icon, the selection of which converts any report displayed in the work area into a report that may be easily printed.
  • the conversion process may include changing the page layout, the margins, or any other suitable parameter that makes the report easier to read and view when printed.
  • Appendix B which constitutes a part of this written description of the preferred embodiments of the invention, constitutes a part of shows an HTML version of the report in printed form.
  • the HTML version of the report may be presented to a user in a web browser without the need for the user to have specific plug-ins or other software installed.
  • the report may be created in other programming languages than HTML.
  • the report could be generated in XML, MHTML, or any other suitable language that may be read by software resident on the client employed by the user (e.g., a web browser such as Microsoft Internet Explorer and the like).
  • a system enables a user at a client to generate reports in an ad hoc manner using a conventional web browser.
  • the client employed by the user need not include any additional software over and above a well-known Internet browser. This is possible because of the functionality employed at the server, which serves information to the client in a web-based format and presents report results to a user in a viewer.
  • the server advantageously uses an RDL object model to format query information to be processed by a RDL XML processing module, such as may be found in an XML engine.
  • ⁇ Textbox Name Textboxl7 "> ⁇ Height>0.21in ⁇ /Height> ⁇ Width> 100pt ⁇ /Width> ⁇ Top>Oin ⁇ /Top> ⁇ Left>Oin ⁇ /Left> ⁇ Style>
  • FontStyle > Normal ⁇ /FontSty le > ⁇ FontFamily>Arial ⁇ /FontFamily> ⁇ FontSize> 10pt ⁇ /FontSize> ⁇ FontWeight>Normal ⁇ /FontWeight> ⁇ /Style> ⁇ /PageFooter> ⁇ Custom xmlns "http://crb.cizer.com"> ⁇ CurrentTextboxID>20 ⁇ /CurrentTextboxID> ⁇ CurrentTableID>l ⁇ /CurrentTableID> ⁇ CurrentImageID>0 ⁇ /CurrentImageID> ⁇ QQCustom>

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

L'invention porte sur des procédés et sur des appareils de mise en oeuvre de langages standard de définition de rapports utilisables pour l'élaboration de rapports et spécialement pour celle de rapports servant à questionner des bases de données ne dépendant pas de clients. Il s'agit plus spécifiquement de configurer un modèle d'objet pour recevoir la sélection de l'utilisateur et de la convertir en fichier de sortie de définition de rapport représentative de l'expression XML d'un rapport pouvant être traitée par un moteur XLM pour produire un rapport. Le fichier de sortie de définition de rapports est de préférence un fichier RDL se basant sur la 'Report Definition Language Specification' publiée par Microsoft Corporation, bien qu'on puisse utiliser tout type de spécification de définition de rapport permettant l'interopérabilité.
PCT/US2005/001243 2004-01-16 2005-01-14 Procedes et appareils servant a questionner des bases de donnees ne dependant pas de clients WO2005072140A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53697204P 2004-01-16 2004-01-16
US60/536,972 2004-01-16

Publications (2)

Publication Number Publication Date
WO2005072140A2 true WO2005072140A2 (fr) 2005-08-11
WO2005072140A3 WO2005072140A3 (fr) 2009-03-26

Family

ID=34825902

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/001243 WO2005072140A2 (fr) 2004-01-16 2005-01-14 Procedes et appareils servant a questionner des bases de donnees ne dependant pas de clients

Country Status (1)

Country Link
WO (1) WO2005072140A2 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070143161A1 (en) * 2005-12-21 2007-06-21 Microsoft Corporation Application independent rendering of scorecard metrics
US7814114B2 (en) * 2006-09-05 2010-10-12 Oracle International Corporation Tree-based information query model
CN108228314A (zh) * 2017-12-05 2018-06-29 华东师范大学 一种基于设备规约的虚拟原型错误检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020073115A1 (en) * 2000-02-17 2002-06-13 Davis Russell T. RDL search engine
US20030101169A1 (en) * 2001-06-21 2003-05-29 Sybase, Inc. Relational database system providing XML query support
US6851089B1 (en) * 1999-10-25 2005-02-01 Amazon.Com, Inc. Software application and associated methods for generating a software layer for structuring semistructured information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6851089B1 (en) * 1999-10-25 2005-02-01 Amazon.Com, Inc. Software application and associated methods for generating a software layer for structuring semistructured information
US20020073115A1 (en) * 2000-02-17 2002-06-13 Davis Russell T. RDL search engine
US20030101169A1 (en) * 2001-06-21 2003-05-29 Sybase, Inc. Relational database system providing XML query support

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070143161A1 (en) * 2005-12-21 2007-06-21 Microsoft Corporation Application independent rendering of scorecard metrics
US7814114B2 (en) * 2006-09-05 2010-10-12 Oracle International Corporation Tree-based information query model
CN108228314A (zh) * 2017-12-05 2018-06-29 华东师范大学 一种基于设备规约的虚拟原型错误检测方法
CN108228314B (zh) * 2017-12-05 2021-08-20 华东师范大学 一种基于设备规约的虚拟原型错误检测方法

Also Published As

Publication number Publication date
WO2005072140A3 (fr) 2009-03-26

Similar Documents

Publication Publication Date Title
US7003730B2 (en) Graphical user interface to build event-based dynamic searches or queries using event profiles
US6928431B2 (en) Dynamic end user specific customization of an application's physical data layer through a data repository abstraction layer
US7165073B2 (en) Dynamic, hierarchical data exchange system
US6901403B1 (en) XML presentation of general-purpose data sources
US8578266B2 (en) Method and system for providing a framework for processing markup language documents
US6889359B1 (en) Method for providing a visual representation of dynamic HTML table attributes
US6851088B1 (en) Conditional highlighting of given cells in a dynamic HTML table
US6718515B1 (en) Method of populating a dynamic HTML table from a set of data objects through a common interface
US8095497B2 (en) Process for data driven application integration for B2B
US7734639B2 (en) Global query correlation attributes
US20030221162A1 (en) Meta-templates in website development and methods therefor
US20030101238A1 (en) Web-based collaborative data collection system
US6779152B1 (en) Method for rotating a dynamic HTML table
US20040210579A1 (en) Rule application management in an abstract database
KR20060112187A (ko) 데이터베이스 저장소 내의 한 객체로서 캡슐화된 xml데이터를 저장 및 검색하기 위한 시스템 및 방법
Baumgartner et al. Web data extraction for business intelligence: the lixto approach
US6996574B2 (en) System and method for accessing database design information
US20070094289A1 (en) Dynamic, hierarchical data exchange system
WO2005072140A2 (fr) Procedes et appareils servant a questionner des bases de donnees ne dependant pas de clients
AU782134B2 (en) Apparatus, systems and methods for electronic data development, management, control and integration in a global communications network environment
US7895173B1 (en) System and method facilitating unified framework for structured/unstructured data
Di Ruscio et al. A data-modelling approach to web application synthesis
Chen et al. A practical approach to extracting DTD-conforming XML documents from heterogeneous data sources
Moshfeghi et al. XML in a multi-tier Java/CORBA architecture
Baumgartner et al. Integrating semi-structured data into business applications: a web intelligence example

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase