commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/gnue-reports/src GREngine.py GRParser.py G...


From: Jason Cater
Subject: gnue/gnue-reports/src GREngine.py GRParser.py G...
Date: Thu, 17 May 2001 11:59:06 -0700

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    01/05/17 11:59:06

Modified files:
        gnue-reports/src: GREngine.py GRParser.py GRReport.py 
Added files:
        gnue-reports/src: GRSources.py grrun test.py 

Log message:
        Miscellaneous changes

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GRSources.py?cvsroot=OldCVS&rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/grrun?cvsroot=OldCVS&rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/test.py?cvsroot=OldCVS&rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GREngine.py.diff?cvsroot=OldCVS&tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GRParser.py.diff?cvsroot=OldCVS&tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GRReport.py.diff?cvsroot=OldCVS&tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: gnue/gnue-reports/src/GREngine.py
diff -u gnue/gnue-reports/src/GREngine.py:1.1 
gnue/gnue-reports/src/GREngine.py:1.2
--- gnue/gnue-reports/src/GREngine.py:1.1       Wed May 16 11:59:22 2001
+++ gnue/gnue-reports/src/GREngine.py   Thu May 17 11:59:06 2001
@@ -29,7 +29,31 @@
 # HISTORY:
 #
 
+import os
+import urllib
+import GRReport
+import GRParser
+from gnue.common import GDebug
+
 class GREngine: 
 
-  __init__(self, connectionManager): 
+  def __init__(self, connectionManager): 
     self._connectionManager = connectionManager
+    GDebug.printMesg(1,'GREngine instance started: %s' % 
self._connectionManager)
+
+
+  def processReport(self, reportFile, parameters={}): 
+    drive = os.path.splitdrive(reportFile) 
+    if len(drive[0]):
+      fileHandle = open(reportFile,'r')
+    else:
+      fileHandle = urllib.urlopen(reportFile)
+
+    report = GRParser.loadReport(fileHandle, self._connectionManager)
+
+    import sys
+    report.process(sys.stdout)
+
+    print report.dumpXML(1)
+
+
Index: gnue/gnue-reports/src/GRParser.py
diff -u gnue/gnue-reports/src/GRParser.py:1.3 
gnue/gnue-reports/src/GRParser.py:1.4
--- gnue/gnue-reports/src/GRParser.py:1.3       Wed May  2 15:30:19 2001
+++ gnue/gnue-reports/src/GRParser.py   Thu May 17 11:59:06 2001
@@ -30,11 +30,12 @@
 #
 
 from gnue.common.GParser import *
-from GRReport import *
+import GRReport
 from GRSources import *
 from GRParameters import * 
 from GRSortOptions import *
 from GRLayout import *
+from gnue.common import GDataSource
 
 #######################################################
 # This method loads a report from an XML file and returns 
@@ -42,8 +43,9 @@
 # the report is initialized and ready to go. 
 #######################################################
 
-def loadReport(URL, initialize=1):
-  return loadXMLObject (URL, xmlReportHandler, 'GRReport', 'report', 
initialize)
+def loadReport(URL, connections, initialize=1):
+  return loadXMLObject (URL, xmlReportHandler, 'GRReport', 'report', 
+           initialize, attributes={"_connections": connections})  
 
 
 
@@ -68,7 +70,7 @@
     #   {attrName: (required?, uniqueID?, typecast, defaultValue)}
     #
     self.xmlElements = { 
-      'report':       (GRReport,    { 'title':       (0, 0, char, None)}, 1), 
+      'report':       (GRReport.GRReport, { 'title':       (0, 0, char, 
None)}, 1), 
       'parameters':   (GRParameters,{                                  }, 1), 
       'parameter':    (GRParameter, { 'id':          (1, 1, char, None), 
                                       'required':    (0, 0, bool, 0), 
@@ -90,9 +92,8 @@
       'summ':         (GRField,     { 'name':        (1, 0, char, None), 
                                       'reset':       (0, 0, char, None), 
                                       'format':      (0, 0, char, None)}, 1), 
-      'sources':      (GRSources,   {                                 }, 1), 
-      'datasource':   (GRDataSource,{ 'name':        (0, 0, char, None), 
-                                      'format':      (0, 0, char, None)}, 1), 
+      'sources':      (GRSources,   {                                  }, 1), 
+      'datasource':   (GRDataSource,  GDataSource.tagAttributes         , 1), 
 #      'query':        (GRQquery,    { 'id':          (1, 1, char, None), 
 #                                      'uniqueness':  (0, 0, char, None)}, 1), 
 #      'fields':       (GRQfields,   {                                  }, 1), 
Index: gnue/gnue-reports/src/GRReport.py
diff -u gnue/gnue-reports/src/GRReport.py:1.3 
gnue/gnue-reports/src/GRReport.py:1.4
--- gnue/gnue-reports/src/GRReport.py:1.3       Wed May  2 15:30:19 2001
+++ gnue/gnue-reports/src/GRReport.py   Thu May 17 11:59:06 2001
@@ -30,15 +30,42 @@
 #
 
 from gnue.common.GObjects import *
+from gnue.common import GDebug
+import sys
 import GRParser
 
 class GRReport(GObj): 
   def __init__(self, parent=None): 
     GObj.__init__(self, parent, type='GRReport')
+    self._connections = None  # This will be set by GRParser.loadReport
 
+
   def initializeTree(self): 
-    pass
+    self.walk(self.buildDataSources)
+    self.initialize()
+
+  def buildDataSources(self, object): 
+    if object.getObjectType() == "GRDataSource": 
+      GDebug.printMesg(3,"Attaching DataSource %s to %s" % (object.name, 
self._connections) )    
+      object.setConnectionManager(self._connections)
+
+  def initConnections(self, object): 
+    if object.getObjectType() == "GRDataSource": 
+      GDebug.printMesg(3,"Connecting DataSource %s to %s" % (object.name, 
object.database) )    
+      object.connect()
 
   def dumpXML(self, treeDump=None, gap="  "):
     return GObj.dumpXML(self, GRParser.xmlReportHandler().xmlElements, 
treeDump, gap)
-   
+
+  
+  # 
+  # Process the report and generate output per the report definition.
+  # Destination must be a file handle (StringIO will work as well) 
+  #
+  def process(self, dest=sys.stdout): 
+ 
+    # Connect to databases
+    GDebug.printMesg(3,"Initializing DataSource Connections")
+    self.walk(self.initConnections)
+
+    dest.write ("Bob was here!\n")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]