[go: up one dir, main page]

WO2023000012A1 - Template systems for template-based document and report generation - Google Patents

Template systems for template-based document and report generation Download PDF

Info

Publication number
WO2023000012A1
WO2023000012A1 PCT/AU2021/050773 AU2021050773W WO2023000012A1 WO 2023000012 A1 WO2023000012 A1 WO 2023000012A1 AU 2021050773 W AU2021050773 W AU 2021050773W WO 2023000012 A1 WO2023000012 A1 WO 2023000012A1
Authority
WO
WIPO (PCT)
Prior art keywords
template
data
report
document
objects
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.)
Ceased
Application number
PCT/AU2021/050773
Other languages
French (fr)
Inventor
Hong Lin
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to PCT/AU2021/050773 priority Critical patent/WO2023000012A1/en
Publication of WO2023000012A1 publication Critical patent/WO2023000012A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams

Definitions

  • the document templates are widely used to generate consistent and high-quality documents in computerized environment.
  • the process of using templates to generate documents or reports requires three primary components: templates, data sources and a specific software system.
  • the document templates serve as a starting point of new documents.
  • the document templates may contain the placeholders, settings or imbedded executable codes or instructions. These items may define the data sources and the data for the templates and instruct the template systems to fetch required data and merge the data into templates.
  • the template-based document generation system may not be able to create professional style reports (tabular block report, tabular step report and matrix report), especially without coding.
  • These reports have specific data structure and require complicated data processing. Normally, these reports are created by reporting tools like: Crystal Report, Microsoft Office Access or SQL Server Reporting Service etc. It requires a big learning curve to master them.
  • Embodiments of the present disclosure relate to the document template system for template-based document and report generation.
  • the document template system described herein may be more efficient, less configuration process, easier to use, rich functions and less coding required.
  • the actions of creating objects and codes, configurations and settings are only in the scopes of the document templates and configuration files. Creating new document templates or making changes to existing document templates will not affect the template system.
  • a goal of the system design is to have less programming involved and permit users to have less knowledge of software development and programming languages.
  • the special designed system has dramatically reduced the needs of programming skills when users create document templates. More specifically, two programming skills will be enough. The first is the skill of writing SQL select queries for dataset objects. The second is the skill of writing short code expressions for the expression property of data field objects, but only in special cases.
  • a method of creating document templates may involve in the process of creating data connection and dataset objects, adding placeholders, report template tables and other settings to document templates.
  • the template system provides the wizard type user interfaces to direct users creating data connection and dataset objects.
  • the data of a document template can come from multiple data storages. After connection and dataset objects are ready, it is time for users to add placeholders, report template tables or charts into templates.
  • the system treats placeholders, report template tables and charts as objects in programming point of view.
  • the system creates objects in the background automatically for each item when users add them to the templates. Users are unaware of the object generation processes behind the screen.
  • the system serializes the objects mentioned above and document template settings into serialized strings and saves to a configuration file or Microsoft Office Word document variable properties if document templates are Microsoft Office Word documents.
  • This method stores the objects data away from the template system. Creating new document templates or making changes to the existing document templates will not affect the template system. Because the template system doesn’t store any data, codes or settings for a specific template. In the time of creating document or reports, the template system can easily deserialize the serialized object strings to objects and uses the objects to create new documents and reports.
  • serialized object strings in variable properties of Microsoft Office Word Microsoft Office Word templates are perfect examples of self-contain and self-described templates.
  • the data field object provides rich functions to the template system. Firstly, the data field object supports common data type used on documents. Secondly, the data field objects have decision making functions. The data field objects can decide which image or font symbol should merge to document templates based on the data and pre-set conditions. Thirdly, the data field objects are also implemented after replacement actions based on the pre-set conditions. The actions take place after the placeholders are replaced by the data. It is a very useful implementation that enables users to fully control document generations. Users can pre set conditions based on the data of data fields. The data field objects will delete unwanted tables and paragraphs, table rows, etc. from document templates when the data fits the pre-set conditions. Lastly, the code expressions are stored in the expression property of the data field objects.
  • the system dynamically compiles each code expression on fly, then executes complied expressions and return the results.
  • the complied expressions are cached for reuse.
  • the method is another embodiment to avoid coding in the template system for a specific template.
  • the disclosed technologies and techniques are able to create tabular block report, tabular step report and matrix report. Creating these types of reports is not a simple placeholder replacing process. It requires special designed report template tables and involves complicated data processing.
  • the special tags in report template tables guide the template system to parse report template tables.
  • the template parser parses report template tables and create object models for them. Then the document factory uses the object models as bule prints to create new report tables.
  • the template system can easily merge large amount of data into document templates for the documents like: invoice, finance document, insurance document and legal document etc. If using Microsoft Office Word as the template editor and Word document as templates, users can very easily create very good-looking reports and documents. Because Microsoft Office Word is popular application with a great editing environment. The advantage of easy to use will add a big credit to the template system.
  • FIG. 1 is a diagrammatic view of the document template system for template- based document and report generation according to some embodiments of the present invention.
  • FIG. 2 is a diagrammatic view of a specific embodiment of Fig. 1 according to some embodiments of the present invention.
  • FIG. 3 is a diagrammatic view of the process flow illustrating steps of generating report or document in a template-based document and report generation system according to some embodiments of the present invention.
  • Fig. 4 is a diagrammatic view of a tabular block report template table for the tabular block report according to some embodiments of the present invention.
  • Fig. 5 is a diagrammatic view of a tabular step report template table for the tabular step report according to some embodiments of the present invention.
  • Fig. 6 is a diagrammatic view of a matrix report template table for the matrix report according to some embodiments of the present invention.
  • Fig. 7 is a sample of tabular block report generated from the tabular block report template table according to some embodiments of the present invention.
  • Fig. 8 is a sample of tabular step report generated from the tabular step report template table according to some embodiments of the present invention.
  • Fig. 9 is a sample of matrix report generated from the matrix report template table according to some embodiments of the present invention.
  • the technologies and techniques herein may be described in the general context as techniques for the template-based document and report generation systems.
  • the technologies and techniques may serve the implementations on a various platforms and applications with different document and template file types.
  • one or more of the techniques described herein can be implemented as features within Microsoft Office Word.
  • the other type of programs or services may provide the functionalities described in the present invention as well.
  • Fig. 1 shows, according to some embodiments of the present invention.
  • the single arrow lines represent the data flow in single directional.
  • the double arrows lines represent bidirectional data flow.
  • the system 1000 in this example has five components: template system 100, data storage 122, document template 124, configuration file 120 and new document or report 126.
  • Template system 100 is the key component of this system.
  • New document or report 126 is the output of template system 100.
  • Configuration file 120 is the place storing serialized strings of data connection objects, dataset objects, data field objects and settings.
  • Document template 124 contains placeholders and report template tables.
  • FIG. 2 Another high-level view of one embodiment for the template-based document and report template system 2000 of the present invention.
  • the system 2000 is a special embodiment of the system 1000 in Fig. 1. The majority parts of the system are identical to the system 1000. The only difference is document template and configuration file.
  • the system 2000 uses Microsoft Office Word as document template 202.
  • the objects and settings serialized strings are stored in Microsoft Office Word document variable properties. It does not require a configuration file in the embodiment.
  • the template system 100 may be implemented as a Microsoft Office Word Add-In application for this embodiment.
  • Fig. 1 and Fig. 2 store all templates related objects and settings in the form of serialized JSON or other format strings in configuration file 120 or Microsoft Office Word document template 202. It brings many advantages to the system. Obviously, any changes to document templates and data requirements will not affect template system 100. The changes are only on the document template 124 and the configuration file 120 or Microsoft Office Word document template 202. Because these objects are not a part of the template system 100. Users can add, remove or update these objects through the wizard type user interfaces. Users are unaware of adding, removing or updating these objects behind the screen. It makes template system 100 more efficient and easier to use, less programmers involved, permit users to have less knowledge of software development and programming languages. In addition, it is also easy for the management and distribution of document templates.
  • Template editor 102 is a component with user interface that can open and edit document template 124. There is a double arrows line between template editor 102 and document template 124. The double arrows line represents the read and write actions to document template 124 by template editor 102.
  • the template editor 102 is Microsoft Office Word application.
  • Data connection object generator 104 is a component with the wizard type user interface. Users can utilize the component to connect to data storage 122 and create connection objects based on the data requirements of document template 124. One template may have multiple data sources. Data connection object generator 104 serializes created data connection objects into JSON or other format strings and saves the strings to configuration file 120. There is a single arrow line between data connection object generator 04 and configuration file 120. The single arrow line represents the write actions to configuration file 120 by data connection object generator 104. There is another a single arrow line between data connection object generator 104 and data storage 122. The single arrow line represents the read actions on data storage 122 by data connection object generator 104.
  • Dataset object generator 106 is a component with the wizard type user interface. Users can utilize the component to connect to data storage 122 with data connection objects created by data connection object generator 104. Dataset object generator 106 creates dataset objects based on the data requirements of the initial document template 124. Herein, users create SQL Select statements for dataset objects. In addition, dataset objects also support SQL stored procedures if the data storages support SQL stored procedures. SQL stored procedures are used for the data that requires complicated calculations in data storages. Otherwise, SQL stored procedures are not essential. This is the first place that requires programming skills in the template system. Dataset object generator 106 serializes created dataset objects into JSON or other format strings and saves the strings to configuration file 120.
  • Data field object generator 108 is a component that creates data field objects.
  • the data field objects are created at the time of users creating placeholders and report template tables on document template 124 with a user interface. Each placeholder has its own data field object.
  • Data field object generator 108 reads the data field details from the dataset objects that are stored in the configuration file 120 and links data field objects with their data fields.
  • Data field object generator 108 also sets data type and some properties with default values as well. It dramatically reduces the times and effects if users manually link each placeholder with its data field.
  • the created data field objects are serialized into JSON or other format strings and saved to configuration file 120.
  • the double arrows line represents the read and write actions to configuration file 120 by data field object generator 108.
  • the double arrows line represents the read and write actions to configuration file 120 by data field object generator 108.
  • the item ⁇ 1.1005 ⁇ 128 is a sample of a placeholder.
  • a placeholder has its own data field object.
  • the data field object links to the data field of a dataset object.
  • the placeholder symbol starts with two left curly brackets and ends with two right curly brackets.
  • the number 1 before the decimal point is the ID of the dataset object.
  • the number 1005 after the decimal point is the ID for the data field of the dataset object.
  • the two IDs are created by data field object generator 108. Both IDs are unique identify a dataset object and a data field object in the document template 124. The combination of two IDs and a decimal point becomes a unique ID string 1.1005 for the placeholder.
  • the data field object generator 108 can also create other forms of ID strings for placeholders, for example: 1.Name and a. Price etc. 1 and a before the decimal points are the IDs of dataset objects. Name and Price after the decimal points are the names of data fields of the dataset objects.
  • the placeholders can be an individual placeholder 128 (outside report template tables) or a placeholder in a report template table.
  • the placeholders in a report template table are elements of the template table.
  • the template system treats a report template table as one object.
  • the data field objects support common data types of documents.
  • the list of data types includes number, date time, text string, font symbol, image, signature, web link, email link, barcode, QR code, and code expression.
  • the data filed objects can format numbers and date times to pre-set formatting style according to selected culture.
  • the data field objects have decision making functions.
  • the data field objects can decide which image or font symbol should be merged to a document template based on the data and pre-set conditions.
  • the data field objects are also implemented after replacement actions based on the data and pre-set conditions. The actions take place after the placeholders are replaced by the data.
  • the list of actions includes doing nothing, deleting selection, deleting cell, deleting column, deleting row, deleting table, deleting paragraph, etc. It is a very useful implementation that enables users to fully control document generations. Users can easily delete unwanted tables and paragraphs, table rows, etc. from document templates.
  • the executable code expressions are normally imbedded in document templates or macros. But the precent invention implements this in a different way.
  • the executable code expressions are text strings and stored in the expression property of data field objects.
  • the better name for the expressions is code expression. For example, you want to calculate the total of a sales product: 1.UnitPrice * 1.Qty. Or you want to get the full month name of a sales date: 1.SalesDate.ToString MMMM”).
  • the sample code is written in C# language.
  • the majority code expressions will be a short one-line code and for the special cases only. This is the second place and the last place that requires programming skills in the template system.
  • the system dynamically compiles each code expression on fly, then executes complied code expressions to get calculation results.
  • the complied code expressions are cached for reuse. The method avoids imbedding executable code expressions in document templates or adding codes to the template system.
  • Report template table generator 109 is a component that creates report template tables.
  • One report document template may contain multiple report template tables.
  • One report template table can only create one report table.
  • the report table is the final output table with full report data and designed structure.
  • a report table can be called a report as well.
  • Users are able to create report template tables in document template 124 by using a wizard type user interface.
  • Data field object generator 108 and report template table generator 109 are the key components of the wizard. With the wizard, a user must select a dataset object as the data source of a report template table first. And then, the user selects the data fields that will show on the report table and set the sequence of the data fields.
  • the sequence of the data fields will reflect to the report column location in a report table.
  • the user can decide which data fields are used in row group or header group and the sort order of data fields in SQL queries.
  • the user can design the layout of a report table. For example, the user can decide whether to add group headers or group footers or report footer to the report table.
  • the double arrows line represents the read and write actions to configuration file 120 by report template table generator 108.
  • the single arrow line represents the write actions to document template 128 by report template table generator 109.
  • report template tables There are three type of report template tables: tabular block report template table, tabular step report template table and matrix report template table.
  • Each report template table contains some special tags. These tags play very important roles on a report template table.
  • the tags define the type and structure of a report template table.
  • a report template table defines the data and structure of final report table.
  • Template parser 112 creates an object model for each report template table. This object model is a blue print for report factory 116 to create a final report table with required data.
  • the data of a report template table comes from the dataset object that was selected for the report template table.
  • One report template table can only have one dataset object bind to it. The dataset object must be able to provide all data for the template table.
  • Template validator 110 is a template validation component. Users can run template validator 110 at any time when a document template is open in template editor 102. And template validator 110 will run before template system 100 generating new documents or reports. Template validator 110 reads the data objects stored in configuration file 120 before it validates document templates. There is a single arrow line between template validator 110 and configuration file 120. The single arrow line represents the read actions on configuration file 120 by template validator 110. There is another a single arrow line between template validator 110 and document template 124. The single arrow line represents the read actions on document template 124 by template validator 110.
  • Template parser 112 parsers report template tables and placeholders on in-memory document templates 130. Template parser 112 creates an object model for each report template table and then forwards the object models to the document factory 116. It also forwards data field objects to document factory 116.
  • the single arrow line represents the read actions on in-memory document template 130 by template parser 112.
  • Document factory 116 is a key component of template system 100. Firstly, document factory 116 copies of document template 124 and creates in-memory document template 130. Secondly, document factory 116 instructs template parser 112 to parse in-memory document template 130 for report template table object models. Document factory 116 also instructs data engine 114 to get required data from data storage 122. Thirdly, document factory 116 processes the data from data engine 114 and generates the report tables from the report template table object models. Fourthly, document factory 116 replaces report template tables with new created report tables on in-memory document template 130.
  • document factory 116 replaces all individual placeholders with related data on in-memory document template 130.
  • the new reports or documents generated by document factory 116 are in the native format of template system’s platform and environment.
  • the original document format will be .doc or .docx if the template system is in Microsoft Office Word environment.
  • the double arrows line represents the creating in-memory document template 130 and the read and write actions on in-memory document template 130 by document factory 116.
  • the single arrow line represents the copy action on document template 124 by document factory 116.
  • the single arrow line represents the read actions on data storage 122 by data engine 114.
  • the double arrows line represents the interactions between document factory 116 and data engine 114.
  • Document factory 116 passes in-memory document template 130 in original format to document formator 118.
  • Document formator 118 converts the input document into required format. For example, .pdf or .html document.
  • New document or report 126 created by document formator 118 is the output of template system 100.
  • the single arrow line represents the write actions to document formator 118 by document factory 116.
  • Tere is a single arrow line between document formatorl 18 and new document or report 126.
  • the single arrow line represents the write actions to new document or report by document formator 118.
  • a template system processing flow diagram 3000 illustrates the steps of generating a report or document in a template-based document and report generation system.
  • the processing flow diagram 3000 starts at the start node (stage 300).
  • a user loads a template and configuration file into the system (stage 302).
  • the template validator will validate the template and all objects stored in configuration file (decision node 304).
  • the process will loop back to start node (stage 300) if the validation is failed.
  • the process will move to in-memory document template (stage 305).
  • in-memory document template is created by document factory 116, the process will move forward to parse template (stage 306).
  • Report template tables have higher priority than placeholders which are outside the report template tables.
  • the system will work on report template tables first.
  • the system checks whether there is report template table in in-memory document template (decision node 308).
  • the process will move forward if there is any report template table found in decision node 308.
  • the system selects a report template table to work with (stage 310).
  • Template parser in the system will create an object model for selected report template table (stage 312).
  • the data engine requests data storages and gets required data (stage 314).
  • the system processes and formats the data (stage 316) and creates a new report table from report template table object model with processed data (stage 318).
  • the system replaces selected report template table with new created report table (stage 320).
  • the process will loop back to check whether there is any report template table (decision note 308).
  • the system will repeat the steps above until there is not report template table.
  • the system will check whether there is any placeholder (outside report template tables) in in-memory document template (decision node 330).
  • the system will select a placeholder (stage 332) if the system finds one.
  • the data engine gets required data from data storages (stage 334).
  • the system processes and formats the data (stage 336) and replaces the selected placeholder with the data (stage 338).
  • the system will loop back to check whether there is any placeholder left on in-memory document template (decision node 330).
  • the system will repeat the above steps for every placeholder until there is no placeholder available on in-memory document template.
  • the system has completed a document or report generation tasks and move to the last step (stage 340).
  • the system converts new generated document from the native format to required format and saves it (stage 340).
  • the whole process ends at end node (
  • FIG. 4 A diagrammatic view of a report template table 4000 for the tabular block report.
  • Report template table 4000 is created by users with the wizard type user interface.
  • Report template table 4000 with custom predefined tags describes the structure of a tabular step report.
  • the tag [TBFI] 400 defines that the report template table is a tabular block report template table and the table row is a report header row.
  • the tags [GFI] 402
  • [GFI2] 404, [GFI3] 406 and [GFI4] 408 define the rows of the group headers.
  • the tags [GF4] 412, [GF3] 414, [GF2] 416 and [GF] 418 define the rows of the group footers.
  • the tags for group header and group footer are in pairs: [GFI] 402 and [GF] 418, [GFI2] 404 and [GF2] 416, [GFI 3] 406 and [GF3] 414, [GH4] 408 and [GF4] 412.
  • the tags [GH] 402 and [GF] 418 are the first group pair.
  • the four corresponding group fields are Region, Country, City and Category.
  • the data engine 114 will group data in this order.
  • the tag [DR] 410 defines the row as report main data row. This row will show multiple times for each data row in the report template table’s dataset.
  • the tag [TF] 420 defines the row as report footer.
  • the report template table 4000 is only a sample of template table. It only shows four group fields. The actual tabular block report template table can support more than four group fields.
  • FIG. 7 A sample tabular block report 7000 created from the tabular block report template table 4000 is shown in Fig. 7.
  • FIG. 5 A diagrammatic view of a report template table 5000 for the tabular step report.
  • Report template table 5000 is created by users with the wizard type user interface.
  • Report template table 5000 with custom predefined tags describes the structure of a tabular step report.
  • the tag [TSH] 500 defines that the template is a tabular step report template table and the table row is a report header row.
  • the tags [GH] 502, [GH2] 504, [GH3] 506 and [GH4] 508 define the rows of the group headers.
  • the tags [GF4] 512, [GF3] 514, [GF2] 516 and [GF] 518 define the rows of the group footers.
  • the tags for group header and group footer are in pairs: [GFI] 502 and [GF] 518, [GFI2] 504 and [GF2] 516, [GH3] 506 and [GF3] 514, [GH4] 508 and [GF4] 512.
  • the tags [GH] 502 and [GF] 518 are the first group field pair. In this embodiment, the four corresponding group fields are Region, Country, City and Category.
  • the data engine 114 will group data in this order.
  • the tag [DR] 510 defines the row as report main data row. This row will show multiple times for each data row in the report template table’s dataset.
  • the tag [TF] 520 defines the row as report footer.
  • the report template table 5000 shows only four group fields. It is only a sample of tabular step report template table. The actual template table can support more than four group fields.
  • FIG. 8 A sample of tabular step report 8000 created from the tabular step report template table 5000 is shown in Fig. 8.
  • FIG. 6 A diagrammatic view of a matrix report template table 6000 for the matrix report.
  • Report template table 6000 is created by users with the wizard type user interface.
  • Report template table 6000 with custom predefined tags describes the structure of a matrix report.
  • the structure of a matrix report is more complicated than a tabular report.
  • the tag [MTH] 600 defines that the template is a matrix report template table and the table row is a report header row.
  • the tag [HD] 602 defines the table cell is header cell and the column is the main data column. This column will repeatedly show if the report dataset has multi data columns for this column.
  • the tag [DC] 608 defines that the column is the sub data column. This column will also repeatedly show as the main data column.
  • the tags [HA] 610 and [HA] 612 define aggregation data columns. The two columns do not repeat and always are the last two columns of the report.
  • the tag [DR] 620 defines the table row as report main data row. This row will show multiple times for each data row in the report template table’s dataset. There is no group header row in matrix reports.
  • the tags [GF1] 622 and [GF] 624 define the table rows of the group footer rows. In this embodiment, the two corresponding row group fields are Region and Country. The data engine will group data in this order.
  • the data of matrix report does not only group by row group fields but also group by column header data fields.
  • the placeholders ⁇ 1.1040 ⁇ 604 and ⁇ 1.1041 ⁇ 606 are two column header fields.
  • the data engine 114 will group data in the order of Region, Country, Year and Month.
  • the tag [TF] 626 defines the row as report footer.
  • the report template table 6000 only shows [HD] and [DC] once (only one header group) and two row groups [GF] and [GF1] It is only a sample of matrix report template table.
  • the actual template table can support more header and row groups.
  • a sample matrix report 9000 created form the matrix report template table 6000 is shown in Fig. 9.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Databases & Information Systems (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Document Processing Apparatus (AREA)

Abstract

A computer software system for generating template-based documents and reports. The system includes template editor for editing templates, data connection object generator that creates data connection objects for connecting data storages, dataset object generator that creates dataset objects which contain queries to run on data storages with connection objects, data field object generator that adds placeholders to document templates and creates data field objects for each placeholders, report template table generator that creates report template tables, template validator for validating document templates, template parser that parses document templates to get the details of placeholders and report template tables on document templates and also creates object models from report template tables, data engine that fetches data from data storages, document factory that processes data and generate new documents or new report tables from report template table object models and document formator for converting new created documents and reports to required formats.

Description

TEMPLATE SYSTEMS FOR TEMPLATE-BASED DOCUMENT AND REPORT GENERATION
Technical Field
[0001] The present invention is in the field of the electric digital data processing using document templates, in particular to the systems and methods of the template-based document generation.
Background Art
[0002] The document templates are widely used to generate consistent and high-quality documents in computerized environment. The process of using templates to generate documents or reports requires three primary components: templates, data sources and a specific software system.
[0003] The document templates serve as a starting point of new documents. The document templates may contain the placeholders, settings or imbedded executable codes or instructions. These items may define the data sources and the data for the templates and instruct the template systems to fetch required data and merge the data into templates.
[0004] There are a few limitations in the systems of prior art. One limitation with some document templates is that placeholders (bookmark or text string) don’t automatically connect to the data fields in a data source when they are added to document templates. The new added placeholders also lack of other information (e.g., data format, data type). It requires users or programmers to manually configure and write specific codes or instructions in the template systems.
[0005] Another limitation with templates is that some placeholders may contain embedded executable codes or instructions. Some of them may not be predefined in the system. The systems don’t understand them. In order to make the system to understand them, it requires programmers to program codes in the template systems.
[0006] The data source objects are the places of storing the required data. In prior art, some systems use Microsoft Office Excel files as the data source object. It requires extra works to create formatted Excel files and imports data into them. In other prior art, the systems extract the data directly from various data storages, store data in the data source objects, then feed the data into templates. These systems still can’t avoid to write codes that execute SQL queries.
[0007] Therefore, most template systems may need users and programmers to configure systems, manually link data fields with placeholders, add imbedded executable codes and instructions to templates and program specific codes or instructions in template systems. And it also requires to re-link data fields with placeholders or rewrite codes and instructions when document templates or data requirements are changed.
[0008] The processes of the configuration and programming are inefficient and time- consuming processes, especially when the number of placeholders increase. It may involve an entire software development life cycle (e.g., requirements gathering, development, testing, and release).
[0009] With the conventional means, the template-based document generation system may not be able to create professional style reports (tabular block report, tabular step report and matrix report), especially without coding. These reports have specific data structure and require complicated data processing. Normally, these reports are created by reporting tools like: Crystal Report, Microsoft Office Access or SQL Server Reporting Service etc. It requires a big learning curve to master them.
Summary of Invention
[0010] The systems, technologies and methods described herein each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this disclosure, several non-limiting features will now be discussed briefly.
[0011] Embodiments of the present disclosure relate to the document template system for template-based document and report generation. The document template system described herein may be more efficient, less configuration process, easier to use, rich functions and less coding required. In some embodiments, the actions of creating objects and codes, configurations and settings are only in the scopes of the document templates and configuration files. Creating new document templates or making changes to existing document templates will not affect the template system. In some embodiments, in order to make the template system easy to use, a goal of the system design is to have less programming involved and permit users to have less knowledge of software development and programming languages. The special designed system has dramatically reduced the needs of programming skills when users create document templates. More specifically, two programming skills will be enough. The first is the skill of writing SQL select queries for dataset objects. The second is the skill of writing short code expressions for the expression property of data field objects, but only in special cases.
[0012] In some embodiments, a method of creating document templates may involve in the process of creating data connection and dataset objects, adding placeholders, report template tables and other settings to document templates. The template system provides the wizard type user interfaces to direct users creating data connection and dataset objects. The data of a document template can come from multiple data storages. After connection and dataset objects are ready, it is time for users to add placeholders, report template tables or charts into templates. The system treats placeholders, report template tables and charts as objects in programming point of view. The system creates objects in the background automatically for each item when users add them to the templates. Users are unaware of the object generation processes behind the screen. In addition, the system serializes the objects mentioned above and document template settings into serialized strings and saves to a configuration file or Microsoft Office Word document variable properties if document templates are Microsoft Office Word documents. This method stores the objects data away from the template system. Creating new document templates or making changes to the existing document templates will not affect the template system. Because the template system doesn’t store any data, codes or settings for a specific template. In the time of creating document or reports, the template system can easily deserialize the serialized object strings to objects and uses the objects to create new documents and reports. By storing serialized object strings in variable properties of Microsoft Office Word, Microsoft Office Word templates are perfect examples of self-contain and self-described templates.
[0013] In some embodiments, the data field object provides rich functions to the template system. Firstly, the data field object supports common data type used on documents. Secondly, the data field objects have decision making functions. The data field objects can decide which image or font symbol should merge to document templates based on the data and pre-set conditions. Thirdly, the data field objects are also implemented after replacement actions based on the pre-set conditions. The actions take place after the placeholders are replaced by the data. It is a very useful implementation that enables users to fully control document generations. Users can pre set conditions based on the data of data fields. The data field objects will delete unwanted tables and paragraphs, table rows, etc. from document templates when the data fits the pre-set conditions. Lastly, the code expressions are stored in the expression property of the data field objects. In the time of creating documents or reports, the system dynamically compiles each code expression on fly, then executes complied expressions and return the results. The complied expressions are cached for reuse. The method is another embodiment to avoid coding in the template system for a specific template.
[0014] According to some embodiments, the disclosed technologies and techniques are able to create tabular block report, tabular step report and matrix report. Creating these types of reports is not a simple placeholder replacing process. It requires special designed report template tables and involves complicated data processing. The special tags in report template tables guide the template system to parse report template tables. In the time of creating documents or reports, the template parser parses report template tables and create object models for them. Then the document factory uses the object models as bule prints to create new report tables.
[0015] The template system can easily merge large amount of data into document templates for the documents like: invoice, finance document, insurance document and legal document etc. If using Microsoft Office Word as the template editor and Word document as templates, users can very easily create very good-looking reports and documents. Because Microsoft Office Word is popular application with a great editing environment. The advantage of easy to use will add a big credit to the template system.
Brief Description of Drawings [0016] Fig. 1 is a diagrammatic view of the document template system for template- based document and report generation according to some embodiments of the present invention.
[0017] Fig. 2 is a diagrammatic view of a specific embodiment of Fig. 1 according to some embodiments of the present invention.
[0018] Fig. 3 is a diagrammatic view of the process flow illustrating steps of generating report or document in a template-based document and report generation system according to some embodiments of the present invention.
[0019] Fig. 4 is a diagrammatic view of a tabular block report template table for the tabular block report according to some embodiments of the present invention.
[0020] Fig. 5 is a diagrammatic view of a tabular step report template table for the tabular step report according to some embodiments of the present invention.
[0021] Fig. 6 is a diagrammatic view of a matrix report template table for the matrix report according to some embodiments of the present invention.
[0022] Fig. 7 is a sample of tabular block report generated from the tabular block report template table according to some embodiments of the present invention.
[0023] Fig. 8 is a sample of tabular step report generated from the tabular step report template table according to some embodiments of the present invention.
[0024] Fig. 9 is a sample of matrix report generated from the matrix report template table according to some embodiments of the present invention.
Detailed Description
[0025] The technologies and techniques herein may be described in the general context as techniques for the template-based document and report generation systems. The technologies and techniques may serve the implementations on a various platforms and applications with different document and template file types. In one embodiment, one or more of the techniques described herein can be implemented as features within Microsoft Office Word. The other type of programs or services may provide the functionalities described in the present invention as well.
[0026] As mentioned in the background section, there are a few limitations in the systems of the prior art. The present invention discloses the technologies and techniques that intend to overcome these limitations. The present invention is described in enabling detail in the following examples, which may represent more than one embodiment of the present invention.
[0027] Fig. 1 shows, according to some embodiments of the present invention. A high- level view of one embodiment for the template-based document and report generation system 1000 of the present invention. The single arrow lines represent the data flow in single directional. The double arrows lines represent bidirectional data flow. The system 1000 in this example has five components: template system 100, data storage 122, document template 124, configuration file 120 and new document or report 126. Template system 100 is the key component of this system. New document or report 126 is the output of template system 100. Configuration file 120 is the place storing serialized strings of data connection objects, dataset objects, data field objects and settings. Document template 124 contains placeholders and report template tables.
[0028] As shown in Fig. 2, according to some embodiments of the present invention. Another high-level view of one embodiment for the template-based document and report template system 2000 of the present invention. The system 2000 is a special embodiment of the system 1000 in Fig. 1. The majority parts of the system are identical to the system 1000. The only difference is document template and configuration file.
The system 2000 uses Microsoft Office Word as document template 202. The objects and settings serialized strings are stored in Microsoft Office Word document variable properties. It does not require a configuration file in the embodiment. The template system 100 may be implemented as a Microsoft Office Word Add-In application for this embodiment.
[0029] As shown in Fig. 1 and Fig. 2, according to some embodiments of the present invention. The two embodiments store all templates related objects and settings in the form of serialized JSON or other format strings in configuration file 120 or Microsoft Office Word document template 202. It brings many advantages to the system. Obviously, any changes to document templates and data requirements will not affect template system 100. The changes are only on the document template 124 and the configuration file 120 or Microsoft Office Word document template 202. Because these objects are not a part of the template system 100. Users can add, remove or update these objects through the wizard type user interfaces. Users are unaware of adding, removing or updating these objects behind the screen. It makes template system 100 more efficient and easier to use, less programmers involved, permit users to have less knowledge of software development and programming languages. In addition, it is also easy for the management and distribution of document templates.
[0030] As shown in Fig. 1 , according to some embodiments of the present invention. Template editor 102 is a component with user interface that can open and edit document template 124. There is a double arrows line between template editor 102 and document template 124. The double arrows line represents the read and write actions to document template 124 by template editor 102. For the embodiment shown in Fig. 2, the template editor 102 is Microsoft Office Word application.
[0031] As shown in Fig. 1 , according to some embodiments of the present invention. Data connection object generator 104 is a component with the wizard type user interface. Users can utilize the component to connect to data storage 122 and create connection objects based on the data requirements of document template 124. One template may have multiple data sources. Data connection object generator 104 serializes created data connection objects into JSON or other format strings and saves the strings to configuration file 120. There is a single arrow line between data connection object generator 04 and configuration file 120. The single arrow line represents the write actions to configuration file 120 by data connection object generator 104. There is another a single arrow line between data connection object generator 104 and data storage 122. The single arrow line represents the read actions on data storage 122 by data connection object generator 104.
[0032] As shown in Fig. 1 , according to some embodiments of the present invention. Dataset object generator 106 is a component with the wizard type user interface. Users can utilize the component to connect to data storage 122 with data connection objects created by data connection object generator 104. Dataset object generator 106 creates dataset objects based on the data requirements of the initial document template 124. Herein, users create SQL Select statements for dataset objects. In addition, dataset objects also support SQL stored procedures if the data storages support SQL stored procedures. SQL stored procedures are used for the data that requires complicated calculations in data storages. Otherwise, SQL stored procedures are not essential. This is the first place that requires programming skills in the template system. Dataset object generator 106 serializes created dataset objects into JSON or other format strings and saves the strings to configuration file 120. One template may have multiple dataset objects. There is a single arrow line between dataset object generator 106 and configuration file 120. The single arrow line represents the write actions to configuration file 120 by dataset object generator 106. There is another a single arrow line between dataset object generator 106 and data storage 122. The single arrow line and represent the read actions on data storage by dataset object generator 106.
[0033] As shown in Fig. 1 , according to some embodiments of the present invention. Data field object generator 108 is a component that creates data field objects. The data field objects are created at the time of users creating placeholders and report template tables on document template 124 with a user interface. Each placeholder has its own data field object. Data field object generator 108 reads the data field details from the dataset objects that are stored in the configuration file 120 and links data field objects with their data fields. Data field object generator 108 also sets data type and some properties with default values as well. It dramatically reduces the times and effects if users manually link each placeholder with its data field. The created data field objects are serialized into JSON or other format strings and saved to configuration file 120. There is a double arrows line between data field object generator 108 and configuration file 120. The double arrows line represents the read and write actions to configuration file 120 by data field object generator 108. There is a single arrow line between data field object generator 108 and document template 128. The single arrow line represents the write actions to document template 128 by data field object generator 108.
[0034] As shown in Fig. 1 , according to some embodiments of the present invention. The item {{1.1005}} 128 is a sample of a placeholder. A placeholder has its own data field object. The data field object links to the data field of a dataset object. The placeholder symbol starts with two left curly brackets and ends with two right curly brackets. The number 1 before the decimal point is the ID of the dataset object. The number 1005 after the decimal point is the ID for the data field of the dataset object. The two IDs are created by data field object generator 108. Both IDs are unique identify a dataset object and a data field object in the document template 124. The combination of two IDs and a decimal point becomes a unique ID string 1.1005 for the placeholder. The data field object generator 108 can also create other forms of ID strings for placeholders, for example: 1.Name and a. Price etc. 1 and a before the decimal points are the IDs of dataset objects. Name and Price after the decimal points are the names of data fields of the dataset objects. The placeholders can be an individual placeholder 128 (outside report template tables) or a placeholder in a report template table. The placeholders in a report template table are elements of the template table. The template system treats a report template table as one object.
[0035] The data field objects support common data types of documents. The list of data types includes number, date time, text string, font symbol, image, signature, web link, email link, barcode, QR code, and code expression. The data filed objects can format numbers and date times to pre-set formatting style according to selected culture. In addition, the data field objects have decision making functions. The data field objects can decide which image or font symbol should be merged to a document template based on the data and pre-set conditions. Furthermore, the data field objects are also implemented after replacement actions based on the data and pre-set conditions. The actions take place after the placeholders are replaced by the data. The list of actions includes doing nothing, deleting selection, deleting cell, deleting column, deleting row, deleting table, deleting paragraph, etc. It is a very useful implementation that enables users to fully control document generations. Users can easily delete unwanted tables and paragraphs, table rows, etc. from document templates.
[0036] In prior art, the executable code expressions are normally imbedded in document templates or macros. But the precent invention implements this in a different way. Herein, the executable code expressions are text strings and stored in the expression property of data field objects. The better name for the expressions is code expression. For example, you want to calculate the total of a sales product: 1.UnitPrice * 1.Qty. Or you want to get the full month name of a sales date: 1.SalesDate.ToString MMMM”). The sample code is written in C# language. The majority code expressions will be a short one-line code and for the special cases only. This is the second place and the last place that requires programming skills in the template system. In the time of creating documents or reports, the system dynamically compiles each code expression on fly, then executes complied code expressions to get calculation results. In addition, the complied code expressions are cached for reuse. The method avoids imbedding executable code expressions in document templates or adding codes to the template system.
[0037] As shown in Fig. 1 , according to some embodiments of the present invention. Report template table generator 109 is a component that creates report template tables. One report document template may contain multiple report template tables. One report template table can only create one report table. The report table is the final output table with full report data and designed structure. A report table can be called a report as well. Users are able to create report template tables in document template 124 by using a wizard type user interface. Data field object generator 108 and report template table generator 109 are the key components of the wizard. With the wizard, a user must select a dataset object as the data source of a report template table first. And then, the user selects the data fields that will show on the report table and set the sequence of the data fields. The sequence of the data fields will reflect to the report column location in a report table. The user can decide which data fields are used in row group or header group and the sort order of data fields in SQL queries. In addition, the user can design the layout of a report table. For example, the user can decide whether to add group headers or group footers or report footer to the report table. The double arrows line represents the read and write actions to configuration file 120 by report template table generator 108. There is a single arrow line between report template table generator 109 and document template 128. The single arrow line represents the write actions to document template 128 by report template table generator 109.
[0038] There are three type of report template tables: tabular block report template table, tabular step report template table and matrix report template table. Each report template table contains some special tags. These tags play very important roles on a report template table. The tags define the type and structure of a report template table.
A report template table defines the data and structure of final report table. Template parser 112 creates an object model for each report template table. This object model is a blue print for report factory 116 to create a final report table with required data. The data of a report template table comes from the dataset object that was selected for the report template table. One report template table can only have one dataset object bind to it. The dataset object must be able to provide all data for the template table. There are more detail descriptions for report template tables in the later sections for Fig 4, Fig 5 and Fig 6.
[0039] As shown in Fig. 1 , according to some embodiments of the present invention. Template validator 110 is a template validation component. Users can run template validator 110 at any time when a document template is open in template editor 102. And template validator 110 will run before template system 100 generating new documents or reports. Template validator 110 reads the data objects stored in configuration file 120 before it validates document templates. There is a single arrow line between template validator 110 and configuration file 120. The single arrow line represents the read actions on configuration file 120 by template validator 110. There is another a single arrow line between template validator 110 and document template 124. The single arrow line represents the read actions on document template 124 by template validator 110.
[0040] As shown in Fig. 1 , according to some embodiments of the present invention. Template parser 112 parsers report template tables and placeholders on in-memory document templates 130. Template parser 112 creates an object model for each report template table and then forwards the object models to the document factory 116. It also forwards data field objects to document factory 116. There is a single arrow line between template parser 112 and configuration file 120. The single arrow line represents the read actions on configuration file 120 by template parser 112. There is another a single arrow line between template parser 112 and in-memory document template 130. The single arrow line represents the read actions on in-memory document template 130 by template parser 112. There is a double arrows line between template parser 112 and document factory 116. The double arrows line represents the interactions between template parser 112 and document factory 116.
[0041] As shown in Fig. 1 , according to some embodiments of the present invention. Document factory 116 is a key component of template system 100. Firstly, document factory 116 copies of document template 124 and creates in-memory document template 130. Secondly, document factory 116 instructs template parser 112 to parse in-memory document template 130 for report template table object models. Document factory 116 also instructs data engine 114 to get required data from data storage 122. Thirdly, document factory 116 processes the data from data engine 114 and generates the report tables from the report template table object models. Fourthly, document factory 116 replaces report template tables with new created report tables on in-memory document template 130. Lastly, document factory 116 replaces all individual placeholders with related data on in-memory document template 130. By this stage, the new reports or documents generated by document factory 116 are in the native format of template system’s platform and environment. For example, the original document format will be .doc or .docx if the template system is in Microsoft Office Word environment. There is a double arrows line between in-memory document template 130 and document factory 116. The double arrows line represents the creating in-memory document template 130 and the read and write actions on in-memory document template 130 by document factory 116. There is a single arrow line between document factory 116 and document template 124. The single arrow line represents the copy action on document template 124 by document factory 116. There is a single arrow line between data engine 114 and data storage 122. The single arrow line represents the read actions on data storage 122 by data engine 114. There is a double arrows line between data engine 114 and document factory 1116. The double arrows line represents the interactions between document factory 116 and data engine 114.
[0042] As shown in Fig. 1 , according to some embodiments of the present invention. Document factory 116 passes in-memory document template 130 in original format to document formator 118. Document formator 118 converts the input document into required format. For example, .pdf or .html document. New document or report 126 created by document formator 118 is the output of template system 100. There is a single arrow line between document factory 116 and document formator 118. The single arrow line represents the write actions to document formator 118 by document factory 116. Tere is a single arrow line between document formatorl 18 and new document or report 126. The single arrow line represents the write actions to new document or report by document formator 118.
[0043] As shown in Fig. 3, according to some embodiments of the present invention. A template system processing flow diagram 3000. The processing flow diagram 3000 illustrates the steps of generating a report or document in a template-based document and report generation system. The processing flow diagram 3000 starts at the start node (stage 300). A user loads a template and configuration file into the system (stage 302). The template validator will validate the template and all objects stored in configuration file (decision node 304). The process will loop back to start node (stage 300) if the validation is failed. In opposite, the process will move to in-memory document template (stage 305). After in-memory document template is created by document factory 116, the process will move forward to parse template (stage 306). Report template tables have higher priority than placeholders which are outside the report template tables. The system will work on report template tables first. The system checks whether there is report template table in in-memory document template (decision node 308). The process will move forward if there is any report template table found in decision node 308. The system selects a report template table to work with (stage 310). Template parser in the system will create an object model for selected report template table (stage 312). The data engine requests data storages and gets required data (stage 314). With the data and template object model ready, the system processes and formats the data (stage 316) and creates a new report table from report template table object model with processed data (stage 318). The system replaces selected report template table with new created report table (stage 320). The process will loop back to check whether there is any report template table (decision note 308). The system will repeat the steps above until there is not report template table. Then the system will check whether there is any placeholder (outside report template tables) in in-memory document template (decision node 330). The system will select a placeholder (stage 332) if the system finds one. The data engine gets required data from data storages (stage 334). The system processes and formats the data (stage 336) and replaces the selected placeholder with the data (stage 338). The system will loop back to check whether there is any placeholder left on in-memory document template (decision node 330). The system will repeat the above steps for every placeholder until there is no placeholder available on in-memory document template. At the stage, the system has completed a document or report generation tasks and move to the last step (stage 340). The system converts new generated document from the native format to required format and saves it (stage 340). The whole process ends at end node (stage 342).
[0044] As mentioned in previous sections, it may not be able to create professional style reports (matrix report, tabular block report and tabular step report) from a template- based document generation system in the prior art, especially without coding. With the disclosed technologies and techniques of the present invention, users can easily generate these types of reports without using professional reporting tools. [0045] In order to create mentioned reports, it requires special designed report template tables, document factory component 116 that assembles report tables based on the report template table object models. The report template tables contain some custom defined tags. Each tag is predefined for a special purpose. The tags describe the structure of report template tables. The template parser 112 understands these predefined tags. By parsing report template tables, template parser 112 generates object models from report template tables. Different report template tables have different object models. These object models are the blue prints for document factory 116 to create new report tables. The special designed report template tables are shown in Fig. 4, Fig. 5 and Fig. 6.
[0046] As shown in Fig. 4, according to some embodiments of the present invention. A diagrammatic view of a report template table 4000 for the tabular block report. Report template table 4000 is created by users with the wizard type user interface. Report template table 4000 with custom predefined tags describes the structure of a tabular step report. The tag [TBFI] 400 defines that the report template table is a tabular block report template table and the table row is a report header row. The tags [GFI] 402,
[GFI2] 404, [GFI3] 406 and [GFI4] 408 define the rows of the group headers. The tags [GF4] 412, [GF3] 414, [GF2] 416 and [GF] 418 define the rows of the group footers. The tags for group header and group footer are in pairs: [GFI] 402 and [GF] 418, [GFI2] 404 and [GF2] 416, [GFI 3] 406 and [GF3] 414, [GH4] 408 and [GF4] 412. The tags [GH] 402 and [GF] 418 are the first group pair. In this embodiment, the four corresponding group fields are Region, Country, City and Category. The data engine 114 will group data in this order. The tag [DR] 410 defines the row as report main data row. This row will show multiple times for each data row in the report template table’s dataset. The tag [TF] 420 defines the row as report footer. The report template table 4000 is only a sample of template table. It only shows four group fields. The actual tabular block report template table can support more than four group fields.
[0047] A sample tabular block report 7000 created from the tabular block report template table 4000 is shown in Fig. 7.
[0048] As shown in Fig. 5, according to some embodiments of the present invention. A diagrammatic view of a report template table 5000 for the tabular step report. Report template table 5000 is created by users with the wizard type user interface. Report template table 5000 with custom predefined tags describes the structure of a tabular step report. The tag [TSH] 500 defines that the template is a tabular step report template table and the table row is a report header row. The tags [GH] 502, [GH2] 504, [GH3] 506 and [GH4] 508 define the rows of the group headers. The tags [GF4] 512, [GF3] 514, [GF2] 516 and [GF] 518 define the rows of the group footers. The tags for group header and group footer are in pairs: [GFI] 502 and [GF] 518, [GFI2] 504 and [GF2] 516, [GH3] 506 and [GF3] 514, [GH4] 508 and [GF4] 512. The tags [GH] 502 and [GF] 518 are the first group field pair. In this embodiment, the four corresponding group fields are Region, Country, City and Category. The data engine 114 will group data in this order. The tag [DR] 510 defines the row as report main data row. This row will show multiple times for each data row in the report template table’s dataset. The tag [TF] 520 defines the row as report footer. The report template table 5000 shows only four group fields. It is only a sample of tabular step report template table. The actual template table can support more than four group fields.
[0049] A sample of tabular step report 8000 created from the tabular step report template table 5000 is shown in Fig. 8.
[0050] As shown in Fig. 6, according to some embodiments of the present invention. A diagrammatic view of a matrix report template table 6000 for the matrix report. Report template table 6000 is created by users with the wizard type user interface. Report template table 6000 with custom predefined tags describes the structure of a matrix report. The structure of a matrix report is more complicated than a tabular report. The tag [MTH] 600 defines that the template is a matrix report template table and the table row is a report header row. The tag [HD] 602 defines the table cell is header cell and the column is the main data column. This column will repeatedly show if the report dataset has multi data columns for this column. The tag [DC] 608 defines that the column is the sub data column. This column will also repeatedly show as the main data column. The tags [HA] 610 and [HA] 612 define aggregation data columns. The two columns do not repeat and always are the last two columns of the report. The tag [DR] 620 defines the table row as report main data row. This row will show multiple times for each data row in the report template table’s dataset. There is no group header row in matrix reports. The tags [GF1] 622 and [GF] 624 define the table rows of the group footer rows. In this embodiment, the two corresponding row group fields are Region and Country. The data engine will group data in this order. The data of matrix report does not only group by row group fields but also group by column header data fields. The placeholders {{1.1040}} 604 and {{1.1041}} 606 are two column header fields. In the embodiment, they link to Year and Month data fields. The data engine 114 will group data in the order of Region, Country, Year and Month. The tag [TF] 626 defines the row as report footer. The report template table 6000 only shows [HD] and [DC] once (only one header group) and two row groups [GF] and [GF1] It is only a sample of matrix report template table. The actual template table can support more header and row groups.
[0051] A sample matrix report 9000 created form the matrix report template table 6000 is shown in Fig. 9.
[0052] Although the technologies and techniques have been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. All equivalents, changes, and modifications that come within the spirit of the implementations as described herein and/or by the claims are desired to be protected. For example, a person of ordinary skill in the computer Software art will recognize that the examples discussed herein could be organized differently on one or more computers to include fewer or additional options or features than as portrayed in the examples.

Claims

Claims
1. A computer software system for generating template-based documents and reports, the computer software system comprising: a template editor for loading and editing templates; data connection object generator that creates data connection objects for connecting data storages; dataset object generator that creates dataset objects which contain queries to run on data storages with connection objects; data field object generator that creates placeholders and data field objects for each placeholder; report template table generator creates report template tables; template validator for validating document templates; template parser for parsing document templates to get the details of placeholders and report template tables on document templates, creating object models from report template tables; data engine that fetches the data from data storages; document factory that processes data and generate new documents or reports; document formator for converting new created documents and reports to required formats.
2. The system of claim 1 , further comprising three custom designed report template tables (Fig. 4, Fig.5 and Fig 6) for creating tabular block report, tabular step report and matrix report. The custom designed tags define the types and structures of report template tables.
3. The system of claim 1 , further comprising custom designed placeholders {{1.1012}}, {{a.1010}}, {{1.Price}} or {{b.FirstName}}.
4. The system of claim 1 , further comprising data connection objects, dataset objects, data field objects and settings serialized into JSON or other format strings and stored serialized strings in a configuration file or in Microsoft Office Word document’s variable properties if the templates are Microsoft Office Word documents. The template system does not have data, settings and codes for a specific document template. Creating new document templates or making changes to existing document templates will not affect the template system. In the time of creating documents or reports, the template system deserializes the serialized object strings to objects and uses these objects in the creating processes.
5. The system of claim 1 , further comprising data field objects created when users
Substitue Sheets (Rule 26) RO/AU add placeholders and report template tables to templates. The template system links data field objects with their datasets and data fields for users and sets data type and some properties with default values as well.
6. The system of claim 1 , further comprising data field objects decision making functions on selecting image or symbol font based on the data and pre-set conditions.
7. The system of claim 1 , further comprising data field objects implemented after replacement actions based on the data and pre-set conditions. The actions take place after the placeholders are replaced. The list of actions includes do nothing, delete selection, delete cell, delete column, delete row, delete table, delete paragraph, etc.
8. The system of claim 1 , further comprising executable code expression strings stored in the expression property of the data field objects. During documents or reports generating processes, the system dynamically compiles each executable code expression on fly, then executes complied expressions to get the calculation results for placeholders. In addition, the complied expressions are cached for reuse.
9. A method for creating a document or report from a document template that contains placeholders and report template tables comprising the steps of:
(a) loading an initial document template to a template editor;
(b) creating data connection objects and dataset objects based on the data requirements of the template, creating data field objects while placeholders and report template tables are added to the template;
(c) validating the template and fixing validation errors until the template passes the validation;
(d) parsing the template to get all placeholders and report template tables;
(e) working on report template tables first, locating a report template table and creating an object model for the report template table, fetching required data from its data source, processing the data and creating new report table from the template object model and replacing the report template table with new created report table, repeating the process until replacing all report template tables;
(f) working on placeholders (outside report template tables), locating a placeholder, fetching required data from a data source, processing the data and replacing the placeholder with the data, repeating the process until replacing all placeholders;
(g) converting new created document or report to the required format.
Substitue Sheets (Rule 26) RO/AU
PCT/AU2021/050773 2021-07-18 2021-07-18 Template systems for template-based document and report generation Ceased WO2023000012A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/AU2021/050773 WO2023000012A1 (en) 2021-07-18 2021-07-18 Template systems for template-based document and report generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/AU2021/050773 WO2023000012A1 (en) 2021-07-18 2021-07-18 Template systems for template-based document and report generation

Publications (1)

Publication Number Publication Date
WO2023000012A1 true WO2023000012A1 (en) 2023-01-26

Family

ID=84980406

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2021/050773 Ceased WO2023000012A1 (en) 2021-07-18 2021-07-18 Template systems for template-based document and report generation

Country Status (1)

Country Link
WO (1) WO2023000012A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116186144A (en) * 2023-03-14 2023-05-30 中国自然资源航空物探遥感中心 Automatic formatting processing method and system for mine remote sensing monitoring data
CN117291156A (en) * 2023-10-12 2023-12-26 西安新视窗科技有限公司 Engineering form data generation system and method based on dynamic interpretation
CN118821750A (en) * 2024-06-25 2024-10-22 天创信用服务有限公司 Model evaluation report generation method, device, equipment and storage medium
CN119312787A (en) * 2024-12-18 2025-01-14 中国电建集团中南勘测设计研究院有限公司 A system and method for generating engineering documents
CN120409435A (en) * 2025-07-02 2025-08-01 山东高速德建集团有限公司 A method and system for intelligently generating word documents for construction organization design

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001057689A1 (en) * 2000-02-03 2001-08-09 Xmpie Inc. A system and method for creating customized documents for cross media publishing
US20160162463A1 (en) * 2009-06-05 2016-06-09 Microsoft Technology Licensing, Llc In-line dynamic text with variable formatting
US20180024701A1 (en) * 2016-07-21 2018-01-25 Palantir Technologies Inc. Cached database and synchronization system for providing dynamic linked panels in user interface
US10387559B1 (en) * 2016-11-22 2019-08-20 Google Llc Template-based identification of user interest
US10699071B2 (en) * 2013-08-08 2020-06-30 Palantir Technologies Inc. Systems and methods for template based custom document generation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001057689A1 (en) * 2000-02-03 2001-08-09 Xmpie Inc. A system and method for creating customized documents for cross media publishing
US20160162463A1 (en) * 2009-06-05 2016-06-09 Microsoft Technology Licensing, Llc In-line dynamic text with variable formatting
US10699071B2 (en) * 2013-08-08 2020-06-30 Palantir Technologies Inc. Systems and methods for template based custom document generation
US20180024701A1 (en) * 2016-07-21 2018-01-25 Palantir Technologies Inc. Cached database and synchronization system for providing dynamic linked panels in user interface
US10387559B1 (en) * 2016-11-22 2019-08-20 Google Llc Template-based identification of user interest

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116186144A (en) * 2023-03-14 2023-05-30 中国自然资源航空物探遥感中心 Automatic formatting processing method and system for mine remote sensing monitoring data
CN116186144B (en) * 2023-03-14 2023-10-27 中国自然资源航空物探遥感中心 Automatic formatting processing method and system for mine remote sensing monitoring data
CN117291156A (en) * 2023-10-12 2023-12-26 西安新视窗科技有限公司 Engineering form data generation system and method based on dynamic interpretation
CN118821750A (en) * 2024-06-25 2024-10-22 天创信用服务有限公司 Model evaluation report generation method, device, equipment and storage medium
CN119312787A (en) * 2024-12-18 2025-01-14 中国电建集团中南勘测设计研究院有限公司 A system and method for generating engineering documents
CN119312787B (en) * 2024-12-18 2025-04-29 中国电建集团中南勘测设计研究院有限公司 Engineering document generation system and method
CN120409435A (en) * 2025-07-02 2025-08-01 山东高速德建集团有限公司 A method and system for intelligently generating word documents for construction organization design

Similar Documents

Publication Publication Date Title
WO2023000012A1 (en) Template systems for template-based document and report generation
US11010537B2 (en) Web-intrinsic interactive documents
US8972930B2 (en) Generating text manipulation programs using input-output examples
US10127250B2 (en) Data transformation system, graphical mapping tool and method for creating a schema map
US8181106B2 (en) Use of overriding templates associated with customizable elements when editing a web page
CA2669479C (en) Generating end-user presentations from structured data
US9201558B1 (en) Data transformation system, graphical mapping tool, and method for creating a schema map
AU2006200047B2 (en) Data store for software application documents
US11886792B1 (en) Model documentation generation system
US20030004971A1 (en) Automatic generation of data models and accompanying user interfaces
US20100174981A1 (en) Rtf template and xsl/fo conversion: a new way to create computer reports
US9141393B2 (en) Business content authoring and distribution
US11481545B1 (en) Conditional processing of annotated documents for automated document generation
CN111367975B (en) A multi-protocol data conversion processing method and device
US20140095968A1 (en) Systems and methods for electronic form creation and document assembly
CN105589959A (en) Form processing method and form processing system
US20210012444A1 (en) Automated patent preparation
US7865481B2 (en) Changing documents to include changes made to schemas
US7596747B2 (en) Incrementally parsing style sheets
Barton Talend open studio cookbook
US20090249192A1 (en) Creating a view from multiple templates
Robinson et al. Leveraging author-supplied metadata, OAI-PMH, and XSLT to catalog ETDs: A case study at a large research library
JP2022097358A (en) Online reporting system with query binding function
CN119396394A (en) Page code generation method, device, electronic device and storage medium
WO2010147453A1 (en) System and method for designing a gui for an application program