261 |
if (not master.current._cachedDetailResultSets.has_key(self)) or \ |
if (not master.current._cachedDetailResultSets.has_key(self)) or \ |
262 |
( not int(gConfig('CacheDetailRecords')) and \ |
( not int(gConfig('CacheDetailRecords')) and \ |
263 |
not master.current._cachedDetailResultSets[self].isPending() ): |
not master.current._cachedDetailResultSets[self].isPending() ): |
264 |
|
hasNullPk = 0 |
265 |
for i in range(0, len(self._masterfields)): |
for i in range(0, len(self._masterfields)): |
266 |
GDebug.printMesg(10,"Adding criteria") |
GDebug.printMesg(10,"Adding criteria") |
267 |
criteria[string.strip(self._detailfields[i])] = master.current.getField(string.strip(self._masterfields[i])) |
value = master.current.getField(string.strip(self._masterfields[i])) |
268 |
|
if not value: |
269 |
|
hasNullPk = 1 |
270 |
|
break |
271 |
|
criteria[string.strip(self._detailfields[i])] = value |
272 |
GDebug.printMesg(10,master.current.getField(self._masterfields[i])) |
GDebug.printMesg(10,master.current.getField(self._masterfields[i])) |
273 |
|
|
274 |
master.current.addDetailResultSet(self.createResultSet(\ |
if hasNullPk: |
275 |
conditions=criteria, masterRecordSet=master.current)) |
master.current.addDetailResultSet(self.createEmptyResultSet(readOnly=0, masterRecordSet=master.current)) |
276 |
|
else: |
277 |
|
master.current.addDetailResultSet(self.createResultSet(conditions=criteria, masterRecordSet=master.current)) |
278 |
|
|
279 |
## |
## |
280 |
## master.current._cachedDetailResultSets[self] = \ |
## master.current._cachedDetailResultSets[self] = \ |