home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / startreport.tcl < prev    next >
Text File  |  1997-08-26  |  2KB  |  94 lines

  1. #----------------------------------------------------------------------------
  2. #
  3. #    (c) Cadre Technologies Inc. 1995
  4. #
  5. #    File:        @(#)startreport.tcl    /main/titanic/1
  6. #    Author:        Harm Leijendeckers
  7. #    Description:    Start script for all standard reports. It should
  8. #            be sourced with the desired report as argument.
  9. #            fe: otsh -f startreport.tcl -- projects.tcl
  10. #    Needed files:    $M4_home/reports/rwsource.tcl
  11. #            $M4_home/reports/reportbase.tcl
  12. #
  13. #----------------------------------------------------------------------------
  14. # SccsId = @(#)startreport.tcl    /main/titanic/1    26 Aug 1997    Copyright 1995 Cadre Technologies Inc.
  15.  
  16.  
  17. #
  18. # Check arguments
  19. #
  20. set reportName [lvarpop argv]
  21. if { $reportName == "" } {
  22.     error "Need argument report name"
  23. }
  24.  
  25. global Options
  26. if { [lindex $argv 0] == "-o" } {
  27.     lvarpop argv
  28.     set Options $argv
  29.  
  30.     if { $Options == "" } {
  31.     error "Option -o needs argument(s)"
  32.     }
  33. } else {
  34.     set Options ""
  35. }
  36.  
  37.  
  38. #
  39. # Source scripts
  40. #
  41. OTShRegister::reportWriter
  42. OTShRegister::propertyKnowledge
  43. set cc [ClientContext::global]
  44. eval [$cc getCustomFileContents rwsource tcl reports]
  45. eval [$cc getCustomFileContents reportbase tcl reports]
  46.  
  47. #
  48. # Source report
  49. #
  50. set root [file root $reportName]
  51. set userReport [path_name concat [location ~ icase] $root tcl]
  52. if [file isfile $userReport] {
  53.     source $userReport
  54. } else {
  55.     if [$cc customFileExists $root tcl reports] {
  56.     eval [$cc getCustomFileContents $root tcl reports]
  57.     } else {
  58.     if [file isfile $reportName] {
  59.         source $reportName
  60.     } else {
  61.         error "Can't open file $reportName"
  62.     }
  63.     }
  64. }
  65.  
  66.  
  67. #
  68. # Check if this is a converted report
  69. #
  70. if [info exists CONVERTED] {
  71.     eval [$cc getCustomFileContents startconvrep tcl reports]
  72.     return
  73. }
  74.  
  75.  
  76. #
  77. # Execute report and show traceback if an error occured
  78. #
  79. if { ![string length [info var executeMe]] } {
  80.     error "Do not know how to execute report $reportName"
  81. }
  82.  
  83. if { [catch { $executeMe execute } string] == 1 } {
  84.     puts $errorInfo
  85.     exit
  86. }
  87.  
  88. #
  89. # If nothing was printed (pageno == lineno == 0)
  90. #
  91. if { !([[$executeMe report] pageno] || [[$executeMe report] lineno]) } {
  92.     puts "Report: [$executeMe reportName] -- No appropriate data found"
  93. }
  94.