home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / docprocs_add.tcl < prev    next >
Text File  |  1996-12-05  |  2KB  |  50 lines

  1. #
  2. # TCL-procedure: createReports name_list
  3. #
  4. # The createReports procedure creates local sections which will allow
  5. # inclusion of actual reports in a document.
  6. # The argument name_list is a , sepperated list of report names without
  7. # the .tcl suffix for example: classes, events. storeFile and section
  8. # are pre-defined given by the environment. Also global $document is set.
  9. #
  10. proc createReport { name_list storeFile section } {
  11.  
  12.         # Prepare path_names
  13.         set M4repdir [path_name concat [m4_var get M4_home] reports]
  14.         set M4bindir [path_name concat [m4_var get M4_home] bin]
  15.  
  16.         # use the ClientContext to switch systems
  17.         set cc [ClientContext::global]
  18.  
  19.         # remember the current document-system we are in now
  20.         set currsys [$cc currentSystem]
  21.  
  22.         # get the system handle of the system we are documenting now
  23.         # the document object is a global set var in docbatch.tcl
  24.         set docsys  [$document docSys]
  25.  
  26.         # Change the context to the system to execute the report in
  27.         $cc changeLevelId $docsys
  28.  
  29.         # Set the first indent level to indent +
  30.         set indent +
  31.         # open the file in where the sub-structure will be generated
  32.         set fid [open $storeFile w]
  33.         # For each report name in the name_list run the (TCLbased) report-writer
  34.         foreach name [split $name_list " "] {
  35.            set name [string trim $name]
  36.            set tmpname  [args_file {}]
  37.            puts "Executing TCL report writer for report $name.tcl"
  38.            system "$M4bindir/otsh -f $M4repdir/startreport.tcl -- $name.tcl > $tmpname"
  39.            # Now generate the additional structure lines note that the section
  40.            # name - must - differ from the name used in the .str file, e.g.
  41.            # the new section name must be unique. We use the the report name.
  42.            puts $fid "$name|$indent||DocText||$tmpname"
  43.            set indent =
  44.         }
  45.         # Close the sub-structure file
  46.         close $fid
  47.         # Go back to the context fo the current document system
  48.         $cc changeLevelId $currsys
  49. }
  50.