commit-gnue
[Top][All Lists]
Advanced

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

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


From: reinhard
Subject: [gnue] r9458 - trunk/gnue-forms/src/GFObjects
Date: Sat, 31 Mar 2007 16:22:13 -0500 (CDT)

Author: reinhard
Date: 2007-03-31 16:22:13 -0500 (Sat, 31 Mar 2007)
New Revision: 9458

Modified:
   trunk/gnue-forms/src/GFObjects/GFBlock.py
Log:
Added new block function search_record to search within the current result set.


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2007-03-31 21:21:37 UTC (rev 
9457)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2007-03-31 21:22:13 UTC (rev 
9458)
@@ -51,8 +51,8 @@
 
     Within the result set, blocks maintain a pointer to a current record which
     can be moved around with the L{first_record}, L{prev_record},
-    L{next_record}, L{last_record}, L{goto_record}, and L{jump_records}
-    methods.
+    L{next_record}, L{last_record}, L{goto_record}, L{jump_records}, and
+    L{search_record} methods.
 
     Read and write access to the data of the current record (and the
     surrounding records) is possible with the L{get_value} and L{set_value}
@@ -178,6 +178,7 @@
                 'last_record': {'function': self.last_record},
                 'goto_record': {'function': self.goto_record},
                 'jump_records': {'function': self.jump_records},
+                'search_record': {'function': self.search_record},
 
                 # Record status
                 'get_record_status': {'function': self.get_record_status},
@@ -816,7 +817,28 @@
 
         self.goto_record(record_number)
 
+    # -------------------------------------------------------------------------
 
+    def search_record(self, **params):
+        """
+        Search for (and jump to) the first record matching a set of field
+        values.
+
+        @param params: search conditions in the notation C{fieldname=value}
+            where the fieldname is the name of a GFField.
+        @returns: True if a record was found, False otherwise.
+        """
+
+
+        # First, convert the fieldname/value pairs to column/value pairs.
+        cond = {}
+        for (fieldname, value) in params.iteritems():
+            field = self._fieldMap[fieldname]
+            cond[field.field] = field.reverse_lookup(value)
+
+        self.__resultset.findRecord(cond)
+
+
     # -------------------------------------------------------------------------
     # Status information
     # -------------------------------------------------------------------------





reply via email to

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