格式化计算机生成的输出文件 本发明一般涉及输出文件的计算机格式化。更具体地,本发明涉及格式化数据流的方法,其中各数据记录包含按照一组布局参数的布局标识符。
发票、财务报告及电话记录通常为包含对特定个人或实体专用的信息或数据的文件的实例。包含在这些文件中的信息或数据通常是由运行设计成从数据库中提取数据的数据抽取程序的计算机生成的。可以定期生成、印刷及发送报告给帐户持有人供他/她记录与审查。
在早期计算机生成的文件期间,包含对一定帐户持有人特定的数据的文件是在限于生成EBCDIC或ASCII字符的行输出地打印机上打印的。因而,由数据抽取程序将数据流格式化,使各数据记录在得出的打印文件上表示一行。图1a为数据抽取程序生成的客户发票的行数据的实例。
通常将该格式化的数据打印在预先生成的包含标题、脚注、标识、行、列与横列(row)的表格上。图1b为从图1a中的行数据得出的客户发票的实例。
随着打印机技术的进步,对更精致的打印输出的要求也更高。静电与喷墨打印机的出现消除了具有预先印刷的包含对一定类型的所有文件固定的图形、标识或其它任何标准数据的格式的需求,因为打印机能同时打印标准数据与可变数据两者。
开发了格式化程序将从数据抽取程序接收的行数据重新格式化与重新映象,并在文件上将行数据与标准信息合并。然而由于这些格式化程序依赖于从没有促进复杂格式化行数据记录的机构的传统数据抽取程序接收的行数据,格式化程序通常依赖于条件处理来识别行数据中特定位置上的特定文本字符串或其组合的出现,并根据这些出现来重新映像该行数据。这一重新映像方法的主要限制之一在于它依赖于格式化程序根据行数据的内容区别数据类型的能力。如果两种不同类型的数据在格式、位置与/或行数据内的结构相似,格式化程序可能不能区分它们。结果,对于重新格式化可能的数量与复杂性这些格式化程序是受限制的。
用来格式化行数据的另一种方法为利用跳跃到通道控制顺序地将行数据放在打印的页面上。通常,将从1到12的数字放在多个行数据记录的前两列中。首先,为了不要求相对地慢的打击式打印机卷过在完成的文件上作为空行结束的行来节省打印时间的目的,提供了指示打击式打印机在打印下面的数据记录之前跳过页上的一定数量的行。随着打印技术的进步,格式化程序利用跳跃到通道数字来定义行数据记录在页上的固定垂直位置上的放置。例如,行数据记录的第一列中的“1”可指示在打印数字“1”后面的行数据之前跳跃到下一页,或“2”可指示将它后面的行数据打印在该页顶部下面三行。这一方法的限制在于跳跃到通道控制只控制行记录相对于页顶部的位置。
获得复杂的格式化打印文件的另一种方法为将产生复杂文件布局的功能集成在数据抽取程序内。主要是,数据抽取程序将数据记录格式化成要求的格式而不是作为行数据。这一方法允许建立复杂的文件格式但它是昂贵的。例如,对于各文件类型可能需要经过特制的数据抽取程序,并且对文件格式的任何改变要求重新编程该数据抽取程序。此外,担任编程或重新编程数据抽取程序来实现新的文件格式的任何程序员潜在地具有对存储在数据库中的敏感数据的访问权;从而产生潜在的不安全危险。
有鉴于此,希望能有充分利用静电与喷墨打印机的能力提供打印数据的装置的高度灵活性的格式化包含可变数据的文件的方法。还希望该方法降低生成格式化文件的费用及特定文件的格式能容易地修改而无须访问数据抽取程序。
公开了一种格式化数据流的方法与装置,它具有包含在其中的各数据记录的按照一组布局参数的布局标识符。本发明的实施例包含若干单元与限制,没有单个单元或限制是设想为关键性的。每个权利要求单独地陈述本发明整体的一个方面。本发明的实施例包含方法;包含执行该方法的指令的计算机可读的介质;及计算机系统。这里所描述的实施例体现本发明的各种特征与结构。
按照本发明的一个实施例,格式化文件的方法包括,根据数据记录内所包含的数据的类型及在文件中如何格式化数据,另分配布局标识符给从数据库中检索到的各数据记录。将规定文件内相关打印数据记录的位置的特定布局参数分配给各布局标识符以集体地构成一组布局参数。接着,将该组布局参数加在数据流及包含在其中的数据记录上以建立格式化的文件。在本系统的不同实施例中,可将系统的各种单元集合到共同驻留在单一计算机系统上或跨各种计算机系统分布的单一软件程序中。设想本发明的各种单元中的一或多个能作为硬件或软件来实施。
在另一实施例中,格式化程序接收其中的各数据记录与布局标识符关联的数据流。该格式化程序还接收在其中提供对应于各布局标识符的格式化指令的一组布局参数。将对应于特定布局标识符的布局参数加在与该特定布局标识符关联的各数据记录上。该格式化处理的结果是可发送给输出装置供显示或打印的文件。
在另一实施例中,数据抽取程序从数据库检索数据。将数据分配到数据记录中以集体地构成数据流。将布局标识符与各数据记录关联,其中该布局标识符标识它所关联的数据记录的某些特征。将一或多个数据记录及相关联的布局标识符发送给格式化程序。
在另一实施例中,布局程序以布局参数的形式为出现或有可能出现在特定类型的文件中的各布局标识符规定布局参数。将各布局标识符的特定布局参数组合以构成一组布局参数。将对应于一定文件类型的该组布局参数组发送给格式化程序。
从附图及后面的详细描述中,本发明的其它特征将是显而易见的。
所附权利要求陈述带特殊性的本发明的特征。从下面结合附图所作的详细描述中,用示例而非限制性方式说明本发明,在附图中:
图1a为先有技术中的数据抽取程序所生成的行数据的实例;
图1b为先有技术中用来自图1a的行数据生成的打印输出的实例;
图2为可以在其上实现本发明的实施例的示范性计算机系统的图;
图3为展示在其中可实践本发明的实施例的计算环境的框图;
图4为示范性数据抽取程序的流程图;
图5为示范性布局程序的流程图;
图6为示范性格式化程序的流程图;
图7为带银行报表的布局标识符的行数据记录的数据流的实例;
图8为按照本发明的实施例格式化的银行报表的实例;
图9与10为对应于银行报表实例的特定布局标识符的布局程序生成的布局参数原本;
图11为可用来生成示例银行报表的计算环境的框图。
公开了用于格式化数据流的方法与装置,数据流中所包含的各数据记录具有按照一组布局参数的布局标识符。本发明的实施例提供格式化从数据库抽取的数据记录的灵活进程,供提交给诸如显示器或打印机等输出装置,在其中可产生悦目与潜在地复杂的文件。本发明的附加优点在于它提供文件格式的快捷与廉价修改而无须重新编程。
本发明不限于单一计算环境。再者,这里所描述的并为熟悉本技术的人员所理解的本发明的体系结构与功能性可扩展到与本发明的范围与精神一致的若干计算环境与实施例。本发明提供各种方法、包含计算机可执行的指令的计算机可读介质、及装置。记住了这一点,不应将这里讨论的实施例视为限制本发明的范围,而是本发明设想可能进入所附权利要求的范围内的所有实施例。
术语
格式区一文件一页内的区(如页标题、页底部、本体、及组标题)。包含在格式区内的所有数据与信息遵循赋予该格式区的布局约定。
布局标识符-与数据流中数据记录关联的名或柄。通常,布局标识符的作用为标识相关数据记录内的数据类型并使格式化程序能将该数据记录与特定格式化指令关联。
布局参数-用于包含在数据流中的数据记录及用于格式区的一系列格式化指令。通常,布局参数规定如何根据与之关联的布局标识符在文件中格式化特定的数据记录。此外,可以存在规定文件内的各种格式区的位置与大小的布局参数。一组布局参数包含用于出现在相关数据流中的各种类型的布局标识符的布局参数以及用于为得出的格式化文件定义的任何格式区的格式化指令。
图2提供可在其中实现本发明的特征的示范性计算机系统。
计算机系统200包含用于传递信息的总线或其它通信装置201及与总线201耦合用于处理信息的诸如处理器202等处理装置。计算机系统200还包括耦合在总线201上用于存储信息及处理器202所执行的指令的随机存取存储器(RAM)或其它动态存储装置204(称作主存储器)。在处理器202的指令执行期间,主存储器204也可用来存储临时变量或其它中间信息。计算机系统200还包括用于存储静态信息及处理器202的指令的耦合在总线201上的只读存储器(ROM)与/或其它静态存储装置206。
诸如磁盘或光盘等数据存储装置207及其对应的驱动器也可耦合在计算机系统200上用于存储信息与指令。计算机系统200还能通过总线201耦合在用于显示信息给计算机用户的诸如阴极射线管(CRT)或液晶显示器(LCD)等显示装置221上。通常,将包含字母数字与其它键的字母数字输入装置222耦合在总线201上用于传递信息与/或命令选择给处理器202。另一类型的用户输入装置为用于传递方向信息与命令选择给处理器202及用于控制显示器221上的光标移动的诸如鼠标器、跟踪球或光标方向键等光标控制器223。
通信装置224也可耦合在总线201上用于访问远程服务器或客户。通信装置224可包含调制解调器、网络接口卡或诸如用于耦合到以太网、令牌环或其它类型网络的其它知名的接口装置。通知这一通信装置224,可以通过诸如公司的内联网与/或因特网等传统网络基础结构将计算机系统200耦合到若干服务器上。
可在单一计算机系统上实践各种实施例中所要求的本发明或可将本发明的各种单元分布在若干计算机系统上。
格式化文件的示范方法
图3示出可在其中实践本发明的一个实施例的示范计算环境。该实例示出包含在建立包含从数据库310中检索到的格式化数据的一或多页的格式化文件355的进程中的各种单元。虽然这里讨论的实施例参照打印的文件,应理解利用本发明产生的文件的外观格式不是关键性的。文件可包含输出装置产生的任何想象得到的格式,其中包含显示在计算机监视器上的信息。
每当需要包含从数据库310中抽取与导出的数据的格式化文件355时,便运行数据抽取程序320来检索数据315,在数据315上执行必要的计算,建立包含数据记录的数据流325,及将布局标识符与各行数据记录关联。随后,将行数据流325发送到格式化程序340。
布局程序330建立规定关于格式化程序340布局格式化文件355的规则与布局信息的一组布局参数335。布局程序330将该组布局参数335发送到格式化程序340。在一些实施例中预想布局程序330能在使用Windows OS的计算机上运行,其中布局程序330提供GUI界面,用户在将布局参数335发送给格式化程序之前可根据生成的布局参数组335向其生成所要求的格式化文件355的传真供审查。
当格式化程序340接收数据流325时,格式化程序340将数据流325与一组布局参数335关联并将包含在布局参数组335中的规则与信息作用在数据流325上以建立发送给输出装置350的文件数据文件345。最后,诸如打印机或监视器等输出装置350生成格式化文件355。
示范数据抽取程序
图4为展示示范数据抽取程序320所执行的步骤的流程图。首先在步骤410中,数据抽取程序320从数据库310请求与接收原始数据315。如在步骤420中有必要,数据抽取程序320在数据315上执行计算产生要包含在格式化文件355中的新数据或信息。例如,数据抽取程序320可从包含在数据315中的一组数中确定平均值。如步骤430中所示将数据315与任何新数据布局在包含多个数据记录的数据流325中。在步骤440中,根据包含在特定数据记录中的信息的类型与性质将布局标识符与各数据记录关联:最后在步骤450中,将数据流325与相关布局标识符发送到格式化程序340。
设想可以用若干不同的实施例在软件或硬件中实现数据抽取程序320。例如,数据抽取程序320可常驻在包含数据库310的计算机系统200上,或者它可常驻在通过网络与包含数据库310的计算机系统200交互作用的另一计算机系统200上。作为替代,数据抽取程序320可以是数据库程序的例程。此外,图4中的步骤及其次序只是示例性的,因此设想数据抽取程序320可具有比所示出的或多或少的步骤,并且可以与所示出的不同次序执行这些步骤。
示范布局程序
图5为展示示范布局程序330在建立一组布局参数335中所执行的步骤的流程图。
生成一组布局参数335中的第一步骤510为建立与定义将要出现在文件中的页上的各种格式区。主要是,格式区定义一页上的一个区域,其中包含在格式区中的所有数据遵循赋予该格式区的布局约定。对于本发明的有些实施例,格式区是不规定的。
典型的文件页可包含页标题、主体、及页尾部。还可能有印在页上某些数据组前面的组标题,此外,设想了其它格式区。在步骤520中为各格式区设置了参数,诸如该格式区出现在格式化页上何处及其在页上的位置是否相对于其它格式区等,下面提供典型格式区的定义:
本体从数据抽取程序320作为数据记录检索到的大多数数据放置在格式化文件355上这一格式区中。通常,包含在其中的数据是逐行打印的。
页标题这一格式区规定要打印在格式化文件355中的各新页上的标题。这一格式区的基线位置通常在顶部页界上,但也可位于相对于页原点的任何地方。通常,标题包含诸如产生文件的实体的名称、地址与标识等标准信息(如在银行报告上的银行名称与地址)。它也可包含具有诸如姓名、地址、电话号码与帐号等关于客户或帐户持有人的信息的页标题。
GRP标题这一格式区规定要打印在一组数据起始处的标题。如果在格式化文件355中的一页上不能容纳一组数据中的所有数据,适当时可将组标题重印在下一页上页标题后面,及在格式化文件355中每一后面的页上直到格式化了该组中的所有数据为止。可以相对于页上的其它格式区规定组标题的基线位置。在格式化文件页中可具有多个组标题。
页尾这一格式区规定要印在格式化文件355中各新页上的尾部。这一格式类型的基线位置通常在底部页界上,但它也能位于页上任何位置上,并且其位置可以是相对于页上的其它格式区的。
一旦在格式化文件355中的页上互相相对地定义了格式区,便将可以与数据流325关联的各布局标识符与格式区关联,如步骤530中所示。从而,在已与数据记录的布局标识符关联的格式区中格式化数据流325的各数据记录。
一旦将各布局标识符与格式区关联,便在步骤540中为各布局标识符定义布局参数来控制相关数据记录在格式区中的位置。每一次在数据流325中遇到一定布局标识符时用户也可在布局参数中指定要包含在格式化文件355中的一定的固定数据。
一旦为可应用在特定数据流325上的所有布局标识符指定了所有布局参数,便将这些布局参数作为一组布局参数335发送给格式化程序,如步骤550中所示。
设想可将布局程序330以若干不同的实施例实现在软件或硬件中。例如,布局程序330可驻留在同时包含格式化程序340的计算机系统200上,或者它可位于通过网络与包含格式化程序340的计算机系统200交互作用的另一计算机系统200上。作为替代,布局程序330可以是格式化程序340的例程。此外,图5中的步骤及其次序只是示范性的,因此设想布局程序330可具有比所示的或多或少的步骤并且这些步骤可与所示的不同的次序执行。
示范格式化程序
图6为展示示范格式化程序340建立输出装置用来建立最终格式化文件355的格式文件数据文件345所执行的步骤的流程图。
一旦将数据流325发送给格式化程序340及格式化程序340访问了布局程序330所提供的一组布局参数335,格式化程序340将来自布局参数组335的固定数据与包含在数据流325中的可变正文合并,并作用布局参数组335中给出的格式化指令。
首先,格式化程序340从数据抽取程序320接收数据流325,如步骤610中给出的。接着,格式化程序340判定它是否拥有作用在数据流325上的一组布局参数335。例如,在一个实施例中,格式化程序340可从相关数据存储装置中检索一组布局参数335,或者在另一实施例中,格式化程序340可查询正在运行布局程序330的计算机系统200令该计算机系统200将一组布局参数335发送给格式化程序340。简言之,如在步骤620中所示,格式化程序340接收一组布局参数335。
在步骤630中,格式化程序340为布局参数组335中所指定的各格式区识别与作用适当的参数。例如文件可具有页标题、页尾及一或多个组标题与本体。通常,文件的各页只有单一页标题与页尾,但可具有多个本体及组标题。可将格式区的位置定义为格式化文件355的一页上的特定区域或者可相对于另一格式区定位。例如,可相对于它前面的本体定位组标题;因为该本体的大小有可能随包含在其中的数据量变化。
接着在步骤640中,按照该组布局参数335将各布局标识符与特定格式区关联。在步骤650中按照与布局标识符关联的布局参数将与特定布局标识符关联的各数据记录格式化。为包含在数据流325中的各数据记录重复步骤640与步骤650。
一旦格式化了数据流325中的所有数据记录,便保存得出的格式化文件数据文件345;将其发送到输出装置,或进行两者,如步骤660中所示。
设想可以用若干不同的实施例将格式化程序340实现在软件或硬件中。例如,格式化程序340可常驻在同时包含数据抽取程序320与/或布局程序330的计算机系统200上,或者它可以常驻在与包含数据抽取程序320及布局程序330的计算机系统200交互作用的另一计算机系统200上。作为替代,格式化程序340可以是数据抽取程序320或布局程序330的例程。此外,图6中的步骤及其次序只是示范性的,因此设想格式化程序340可拥有比所示的或多或少的步骤及这些步骤可与所示的不同的次序执行。
银行报告实例
图7为可能为特定支票帐户从数据抽取程序320发送的数据流700的实例。数据流700由行数据记录710及布局标识符705构成。各特殊的布局标识符标识特定行中的布局标识符705后面的行数据710的类型。例如,布局标识符715“statsum”在该实例中指示它后面的任何数据是报告概要数据,而布局标识符720“ckdatal”指示它后面的任何数据为要在月报中的左列中格式化的关于特定支票的信息。
图8为用本发明的实施例格式化的银行月报800的实例。区810指示示例报告上格式化与布局标识符715“statsum”关联的报告概要数据的位置。区820指示示例报告上格式化与布局标识符720“ckdatal”关联的报告概要数据的位置。
图9与10为格式化程序可用来布局与格式化银行月报800的部分的布局参数组部分。图9提供关于“statsum”布局标识符715的格式化规则、指令及固定正文。图10提供关于“ckdatal”布局标识符720的支票数据的位置的规则与指令。图9与10的规则,指令及固定正文连同出现在数据流700中的各其它布局标识符705的附加规则、指令及固定正文集体构成银行报告的一组布局参数。
图11为银行或其它金融机构可用来生成银行报告800的计算环境的框图。从包含但不限于ATM机1105及银行柜员终端1106在内的各种源将关于银行帐户的信息活动输入到银行事务1110数据库中。在诸如每月的定期基础上,报告数据抽取程序1120从银行事务1110数据库中抽取关于特定银行帐户的所有数据。报告数据抽取程序1120利用这些数据来计算包含在银行月报800中的新的数据项。例如,可以计算报告时段的开始与结束时的金额。也可为报告时段确定对帐户作出的贷方总金额及对帐户开出的支票的总金额。然后将数据格式化到行数据记录710的数据流700中,其中在各行数据记录的前面加上布局标识符705来指示包含在行数据记录中相对于行数据记录在格式化月报800中的最终位置的信息类型。最后,报告数据抽取程序1120将数据流700发送到报告格式化程序1130。
通常在报告数据抽取程序1120生成数据流700之前的某一点上,布局程序1140必须生成一组银行报告布局参数。为可能出现在相关数据流700中的各布局标识符生成布局规则与指令,并将它们放入报告格式化程序1130能读取及执行的格式中。将各相关布局标识符的一组银行报告布局参数1145在网络联接1141上发送到报告格式化程序1130。如图11中所示,布局程序常驻在与保持银行事务1110的数据库与报告数据抽取程序1120的计算机系统200分开与不同的计算机系统200上。虽然对于在本实例中实践本发明这一分开并非必要;但为了防止布局程序操作员访问银行客户的敏感与个人财经信息是想望的。
当报告格式化程序1130接收来自报告数据抽取程序1120的数据流700时,它便根据与行数据记录关联的布局标识符将包含在该组银行报告布局参数1145中的规则与指令作用在各行数据记录710上来格式化该行数据记录。例如,当格式化程序340遇到与布局标识符715“statsum”关联的行数据记录时,它便参照与作用图9中给出的布局参数。报告格式化程序1130首先识别要将与布局标识符715“statsum”关联的信息放在一页上的“本体”格式区内,如用指令905所示。将固定(或静态正文)名词“超级支票帐户活动”用“特大号”字体格式化在指定位置上(“从左页边向内0”及从“本体”格式区顶部向下2”)然后,按照指令910在指定的位置上放置三条粗线。按照指令915将固定正文的各种标题放在从“本体”顶部向下2.4″距左页边的各种位置上。接着,按照指令920,将金额形式的各可变正文放在标题下方。例如,指令920指示报告格式化程序1130将相关行数据记录中开始在第11信息字节上的正文$2591.24放在从左页边向内1.4″及从“本体”顶部向下2.6″处。最后,按照指令925将固定行放在可变正文下方。
此外,当报告格式化程序1130遇到与布局标识符720“ckdatal”关联的行数据记录时,它便参照并将图10中给出的布局参数加在该行数据记录上。报告格式化程序1130首先识别出与布局标识符720关联的行数据记录要放置在页上的“本体”格式区中,如指令1005所示。按照指令1010将来自行数据记录的支票号码放在下一个得到的行中从“本体”格式区的左边线向内1.4″处来相对于上面早先格式化的行进行格式化。接着,按照指令1015与1020将日期与支票金额分别放置在与支票号码同一或当前行上从“本体”的边线向内2.4″与4.2″处。当报告格式化程序1130读取与“ckdatal”布局标识符720关联的附加行数据记录时,它便将下一个附加行数据记录格式化在“本体”格式区中下一可得到的打印行中。例如在图8中,区820,支票号码353信息放置在支票352的信息下方,而支票354的信息放在支票353下方。
一旦报告格式化程序1130格式化了特定银行报告的所有报告行数据记录,便将包含格式化文件800的文件发送给打印机1150供打印。
虽然提出了银行报告的实例,使用本发明格式化的文件内容是没有限制的并可包罗但不限于财经报告、电话帐单、公用事业帐单、发票、及库存报告。因此,银行报告实例只是示范性的。