Article 7468 of comp.lang.perl: Xref: feenix.metronet.com gnu.misc.discuss:4427 comp.lang.perl:7468 Newsgroups: gnu.misc.discuss,comp.lang.perl From: timbo@ig.co.uk (Tim Bunce) Path: feenix.metronet.com!news.ecn.bgu.edu!usenet.ins.cwru.edu!howland.reston.ans.net!pipex!demon!ig.co.uk!timbo Subject: Re: Using templates for invoicing, purhcase orders, balance sheets, etc. Summary: Perl report writer embedded into FrameMaker References: Organisation: Paul Ingram Group, Software Systems, +44 483 424424 Date: Mon, 1 Nov 1993 11:18:52 +0000 Message-ID: Sender: usenet@demon.co.uk Lines: 90 In article stevedav@netcom.com (Steve Davidson) writes: >I'm looking for a report generaion software similar to mailing list >software but enhanced for many common reporting functions. > >The basic design is a report template that substitutes data at >appropriate points (like a mailing list). > >=+=+=+=+=+=+=+=+ The data might look like: =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ > >Client: XYZ Corp >Address: 123 Main Street >Activity: Hours: <--- Labels >Programmed this 2.0 / >Programmed that 4.1 <--- Table or list of data >debugging, etc. 12.2 \ > >=+=+=+=+=+=+=+=+ The Report template: ==+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ > >Client: Date: >Address:
>Table of Billable items: > *50> > > >============================================================ > >Notice the table data and the in-line computations. > >Uncommon features needed are: in-line command execution (such as >) table handling (for a series of repeated data like >and ), and computations (such as *50>) > >Does anyone know of software that does this? > We do... but it's commercial. > --------======= * =======-------- > Steven Davidson > steved@cfcl.com Are you a FrameMaker user? (Just in case you don;t know, FrameMaker is one of the leading technical publishing systems.) We have a product that enables you to embed perl code into FrameMaker documents! It can build FrameMaker tables and even create 3D colour business graphs and charts. We can also supply database interfaces so that your FrameMaker documents can make dynamic SQL database queries whilst they are being built. Because it's based on FrameMaker you get ALL FrameMakers abilities (including very good table handling) and beautiful output documents. We developed the system for a major corporation in the UK and they are using it to produce very complex (50+ page) management reports including many tables and charts from data stored in an oracle database. Some examples: Perl code can be embedded into FrameMaker markers, the marker inserts into the document the value of the last expression evaluated: `date` $sub = $hours * 50; $total += $sub; $sub Perl code embedded into FrameMaker text flows: *ary = &ArrayCreate("Sales Data", # title of array "year, sales", # field names "1"); # which fields are the keys $csr = &DbOpen($db, "select year, sum(sales) from sales where year between :1 and :2 group by year"); &DbBind($csr, $start_year, end_year); # bind values to sql &ArrayLoad(*ary, 'DbFetch', $csr); # suck all data into array # embedded into a template table header: &TableBuild(*ary); # build table rows from array data # embedded into an anchored frame (very basic example): &Graph(Data, *ary); # draw graph into this frame The functions above are library functions that we supply but the language is pure perl. I hope that's of interest. Regards, Tim Bunce.