commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r8724 - trunk/gnue-forms/src/GFObjects


From: reinhard
Subject: [gnue] r8724 - trunk/gnue-forms/src/GFObjects
Date: Tue, 10 Oct 2006 09:39:50 -0500 (CDT)

Author: reinhard
Date: 2006-10-10 09:39:49 -0500 (Tue, 10 Oct 2006)
New Revision: 8724

Modified:
   trunk/gnue-forms/src/GFObjects/GFBlock.py
   trunk/gnue-forms/src/GFObjects/GFField.py
Log:
Added option to get field value for other than current record.


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-10-10 12:54:24 UTC (rev 
8723)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-10-10 14:39:49 UTC (rev 
8724)
@@ -428,24 +428,37 @@
   # Field access
   # ---------------------------------------------------------------------------
 
-  def get_value(self, field):
+  def get_value(self, field, offset):
         """
         Return the value of the given field, depending on the block's state.
 
         @param field: the GFField object.
+        @param offset: the offset from the current record (to get data for
+            records other than the current one).
         """
 
-        if self.mode == 'query':
-            value = self.__query_values.get(field)
+        if offset == 0:
+            if self.mode == 'query':
+                value = self.__query_values.get(field)
 
-        elif self.mode == 'init':
-            value = self._initializingRecord[field.field]
+            elif self.mode == 'init':
+                value = self._initializingRecord[field.field]
 
+            else:
+                if self._resultSet and self._resultSet.current:
+                    value = self._resultSet.current[field.field]
+                else:
+                    value = None
         else:
-            if self._resultSet and self._resultSet.current:
-                value = self._resultSet.current.getField(field.field)
+            if self.mode in ['query', 'init'] or self._resultSet is None:
+                value = None
             else:
-                value = None
+                record_number = self._resultSet.getRecordNumber() + offset
+                if record_number < 0 or \
+                        record_number >= self._resultSet.getRecordCount():
+                    value = None
+                else:
+                    value = self._resultSet[record_number][field.field]
 
         return value
 

Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py   2006-10-10 12:54:24 UTC (rev 
8723)
+++ trunk/gnue-forms/src/GFObjects/GFField.py   2006-10-10 14:39:49 UTC (rev 
8724)
@@ -271,13 +271,16 @@
     # Reading and writing the DB value of a field
     # -------------------------------------------------------------------------
 
-    def getValue(self):
+    def getValue(self, offset=0):
         """
         Return the current value of the field, depending on the state of the
         form and the block.
+
+        @param offset: offset from the current record (to get values of records
+            other than the current record).
         """
 
-        value = self._block.get_value(self)
+        value = self._block.get_value(self, offset)
 
         if value is None:
             value = ''





reply via email to

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