[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/gnue-reports INSTALL README samples/locati...
From: |
Jason Cater |
Subject: |
gnue/gnue-reports INSTALL README samples/locati... |
Date: |
Fri, 25 May 2001 01:19:06 -0700 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 01/05/25 01:18:35
Modified files:
gnue-reports : INSTALL README
gnue-reports/samples/location: zip-by-state.grd
gnue-reports/src: GREngine.py GRLayout.py GRParser.py
GRReport.py GRSources.py
Added files:
gnue-reports/src: GRExceptions.py
Log message:
Made minor changes to documentation
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/INSTALL.diff?cvsroot=OldCVS&tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/README.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/samples/location/zip-by-state.grd.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GRExceptions.py?cvsroot=OldCVS&rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GREngine.py.diff?cvsroot=OldCVS&tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GRLayout.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GRParser.py.diff?cvsroot=OldCVS&tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GRReport.py.diff?cvsroot=OldCVS&tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-reports/src/GRSources.py.diff?cvsroot=OldCVS&tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: gnue/gnue-reports/INSTALL
diff -u gnue/gnue-reports/INSTALL:1.1 gnue/gnue-reports/INSTALL:1.2
--- gnue/gnue-reports/INSTALL:1.1 Wed Apr 11 10:08:32 2001
+++ gnue/gnue-reports/INSTALL Fri May 25 01:18:35 2001
@@ -0,0 +1,4 @@
+Currently, GNUe-Reports is not far enough along to justify an installation
+script. (There is nothing to install :)
+
+See README for information on testing GNUe-Reports.
Index: gnue/gnue-reports/README
diff -u gnue/gnue-reports/README:1.2 gnue/gnue-reports/README:1.3
--- gnue/gnue-reports/README:1.2 Thu May 24 08:59:17 2001
+++ gnue/gnue-reports/README Fri May 25 01:18:35 2001
@@ -1,7 +1,14 @@
-Reports is in an early alpha state and is not currently useful.
+GNUe-Reports is in an early alpha state and is not currently useful.
You have been warned :)
+GNUe-Reports requires gnue-common to be installed.
+
+In the src directory, there is a "grrun" program. It creates a
+Report Engine, passes the engine a report, and prints the output
+from the engine to stdout. Execute "grrun --help" to see all
+available run-time options (user parameters, sorting options, etc).
+
For questions, use the reports mailing list at http://lists.gnue.org/
or visit us in IRC at irc.openprojects.net, channel #gnuenterprise
--- Jason Cater
+-- Jason Cater (jcater)
Index: gnue/gnue-reports/samples/location/zip-by-state.grd
diff -u gnue/gnue-reports/samples/location/zip-by-state.grd:1.2
gnue/gnue-reports/samples/location/zip-by-state.grd:1.3
--- gnue/gnue-reports/samples/location/zip-by-state.grd:1.2 Wed May 23
15:54:42 2001
+++ gnue/gnue-reports/samples/location/zip-by-state.grd Fri May 25 01:18:35 2001
@@ -35,8 +35,19 @@
<layout>
- <section group="main" pagebreak="">
- <field source="zips" name="bob"/>
+ <section group="main">
+
+ (Some random text)
+
+ <field source="zips" name="zipcode"/>
+ <field source="zips" name="city"/>
+
+ (Some more random text)
+
+ <section group="state" source="states">
+ <field source="states" name="description"/>
+ </section>
+
</section>
</layout>
Index: gnue/gnue-reports/src/GREngine.py
diff -u gnue/gnue-reports/src/GREngine.py:1.4
gnue/gnue-reports/src/GREngine.py:1.5
--- gnue/gnue-reports/src/GREngine.py:1.4 Wed May 23 15:54:42 2001
+++ gnue/gnue-reports/src/GREngine.py Fri May 25 01:18:35 2001
@@ -61,6 +61,8 @@
report.process(outputHandle, parameters, sortoption)
- #print report.dumpXML(1)
+ GDebug.printMesg(999, '-'*60)
+ GDebug.printMesg(999, report.dumpXML(1))
+ GDebug.printMesg(999, '-'*60)
Index: gnue/gnue-reports/src/GRLayout.py
diff -u gnue/gnue-reports/src/GRLayout.py:1.2
gnue/gnue-reports/src/GRLayout.py:1.3
--- gnue/gnue-reports/src/GRLayout.py:1.2 Mon Apr 23 09:28:06 2001
+++ gnue/gnue-reports/src/GRLayout.py Fri May 25 01:18:35 2001
@@ -41,6 +41,17 @@
def __init__(self, parent):
GObj.__init__(self, parent, type='GRLayout')
+ def buildObject(self):
+ # If there is more than one object attached to a layout
+ # object, then create an unattached section to contain them.
+ if len(self._children) > 1:
+ temp = self._children
+ self._children = []
+ section = GRSection(self)
+ section._children = temp
+ section.buildObject()
+
+
class GRField (GRLayoutElement):
def __init__(self, parent):
Index: gnue/gnue-reports/src/GRParser.py
diff -u gnue/gnue-reports/src/GRParser.py:1.6
gnue/gnue-reports/src/GRParser.py:1.7
--- gnue/gnue-reports/src/GRParser.py:1.6 Wed May 23 15:54:42 2001
+++ gnue/gnue-reports/src/GRParser.py Fri May 25 01:18:35 2001
@@ -84,9 +84,9 @@
'description': (1, 0, char, None),
'default': (0, 0, bool, 0) }, 1),
'sortcolumn': (GRSortColumn,{ 'name': (1, 0, char, None)}, 1),
- 'layout': (GRLayout, { 'format': (0, 0, char, None)}, 1),
+ 'layout': (GRLayout, { 'format': (0, 0, char, None)}, 0),
'section': (GRSection, { 'group': (0, 0, char, None),
- 'pagebreak': (0, 0, bool, 0) }, 1),
+ 'source': (0, 0, char, None)}, 0),
'field': (GRField, { 'name': (1, 0, char, None),
'source': (0, 0, char, None),
'format': (0, 0, char, None)}, 1),
@@ -95,49 +95,6 @@
'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),
-# 'subquery': (GRQsubquery, { }, 1),
-# 'fields': (GRQfields, { }, 1),
-# 'columns': (GRQcolumns, { }, 1),
-# 'field': (GRQfield, { 'id': (1, 1, char, None)}, 1),
-# 'subcolumn': (GRQsubcolumn,{ }, 1),
-# 'source': (GRQsource, { 'id': (1, 1, char, None)}, 1),
-# 'table': (GRQtable, { 'name': (1, 0, char, None)}, 1),
-# 'func': (GRQfunc, { 'name': (1, 0, char, None)}, 1),
-# 'column': (GRQcolumn, { 'name': (1, 0, char, None)}, 1),
-# 'sources': (GRQsources, { }, 1),
-# 'conditions': (GRQconditions,{ }, 1),
-# 'groupby': (GRQgroupby, { }, 1),
-# 'having': (GRQhaving, { }, 1),
-# 'union': (GRQunion, { 'type': (1, 0, char, None)}, 1),
-# 'const': (GRQconst, { 'type': (1, 0, char, None)}, 1),
-# 'add': (GRQadd, { }, 1),
-# 'sub': (GRQsub, { }, 1),
-# 'mul': (GRQmul, { }, 1),
-# 'div': (GRQdiv, { }, 1),
-# 'and': (GRQand, { }, 1),
-# 'or': (GRQor, { }, 1),
-# 'not': (GRQnot, { }, 1),
-# 'negate': (GRQnegate, { }, 1),
-# 'eq': (GRQeq, { }, 1),
-# 'ne': (GRQne, { }, 1),
-# 'gt': (GRQgt, { }, 1),
-# 'ge': (GRQge, { }, 1),
-# 'lt': (GRQlt, { }, 1),
-# 'le': (GRQle, { }, 1),
-# 'like': (GRQlike, { }, 1),
-# 'notlike': (GRQnotlike, { }, 1),
-# 'between': (GRQbetween, { }, 1),
-# 'notbetween': (GRQnotbetween,{ }, 1),
-# 'count': (GRQcount, { }, 1),
-# 'countdistinct':(GRQcountdistinct,{ }, 1),
-# 'countall': (GRQcountall, { }, 1),
-# 'sum': (GRQsum, { }, 1),
-# 'avg': (GRQavg, { }, 1),
-# 'max': (GRQmax, { }, 1),
-# 'min': (GRQmin, { }, 1)
}
#
Index: gnue/gnue-reports/src/GRReport.py
diff -u gnue/gnue-reports/src/GRReport.py:1.6
gnue/gnue-reports/src/GRReport.py:1.7
--- gnue/gnue-reports/src/GRReport.py:1.6 Wed May 23 15:54:42 2001
+++ gnue/gnue-reports/src/GRReport.py Fri May 25 01:18:35 2001
@@ -37,6 +37,7 @@
import GRLayout
import GRSortOptions
import GRSources
+import GRExceptions
class GRReport(GObj):
@@ -54,12 +55,6 @@
% (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)
@@ -73,8 +68,6 @@
# Connect to databases
GDebug.printMesg(3,"Initializing DataSource Connections")
- self.walk(self.initConnections)
-
self._parameters = self.getChildOfType('GRParameters') or \
GRParameters.GRParameters(self)
@@ -84,25 +77,32 @@
self._layout = self.getChildOfType('GRLayout')
#
# We need to create exceptions if _sources or _parameters is None
- # (.. NoLayoutDefinedException, NoSourcesDefinedException, etc)
#
+ if self._sources == None:
+ raise NoSourcesSection, "No <sources> section has been defined."
+ if self._layout == None:
+ raise NoLayoutSection, "No <layout> section has been defined."
+
# Load the user-specified parameters
self._parameters.setUserParameters(parameters)
# .. and the sort option
self._sortoptions.setSortOption(sortoption)
+
+ # Prepare data sources for active duty
+ self._sources.prepare()
- #
+ # Write common header information
dest.write ('<?xml version="1.0"?>\n')
dest.write ("<GNUe-report-output>\n")
dest.write (" <GNUe-report-request>\n")
dest.write (self._parameters.getRunOptionsAsXML())
dest.write (self._sortoptions.getRunOptionsAsXML())
dest.write (" </GNUe-report-request>\n")
-
+
dest.write ("</GNUe-report-output>\n")
Index: gnue/gnue-reports/src/GRSources.py
diff -u gnue/gnue-reports/src/GRSources.py:1.1
gnue/gnue-reports/src/GRSources.py:1.2
--- gnue/gnue-reports/src/GRSources.py:1.1 Thu May 17 11:59:06 2001
+++ gnue/gnue-reports/src/GRSources.py Fri May 25 01:18:35 2001
@@ -33,17 +33,50 @@
from gnue.common.GObjects import *
from gnue.common.GDataSource import GDataSource
from gnue.common import GDebug
+import GRExceptions
class GRSources (GObj):
def __init__(self, parent):
GObj.__init__(self, parent, type='GRSources')
+ #
+ # Prepare for running
+ #
+
+ def prepare(self):
+
+ # Connect to databases
+ self._datasourceDictionary = {}
+ self.walk(self.__initConnections)
+ self.walk(self.__connectMasterDetail)
+
+
+ # Used internally by self.prepare()
+ # Connects to databases
+ def __initConnections(self, object):
+ if object.getObjectType() == "GRDataSource":
+ GDebug.printMesg(3,"Connecting DataSource %s to %s" \
+ % (object.name, object.database) )
+ object.connect()
+ self._datasourceDictionary[object.name] = object
+
+ def __connectMasterDetail(self, object):
+ if object.getObjectType() == "GRDataSource" and object.master != None:
+ GDebug.printMesg(3,"Linking detail '%s' to master '%s'" \
+ % (object.name, object.master) )
+ if self._datasourceDictionary.has_key(object.master):
+ pass
+ else:
+ raise GRExceptions.MasterSourceNotFound, \
+ "Detail source '%s' references non-existant master '%s'" \
+ % (object.name, object.master)
+
+
class GRDataSource (GDataSource):
def __init__(self, parent):
- GDebug.printMesg(3,"Creating a datasource")
GDataSource.__init__(self, parent, 'GRDataSource')
-
+ self.master = None
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/gnue-reports INSTALL README samples/locati...,
Jason Cater <=