On 7/16/10 5:22 PM, Jeff Johnson wrote:
>
> When running the application I have a form open which has listboxes
>>> which are populated by fields in another table. If I open up one of the
>>> tables and add a record, what is the best way to update the choices in
>>> the listbox on the main form? I am guessing it is requery, but where
>>> would be the best place to call it?
>>>
>> Whereever/whenever you want to requery for updated data. Where or when is
>> this?
> I have the listbox on a form called policies. The listbox contains
> agents. If I open up the agents form and add agents they don't update
> the choices in the policies listbox. So I need to requery the listbox
> at some point. It's not obvious to me where to do that.
Ok so you have 2 forms: frmPolicies and frmAgents. frmPolicies has a listbox of
agents (lstAgents). You go and add an agent in frmAgents, and save, but
lstAgents
isn't updated automatically.
How about, in frmPolicies:
class FrmPolicies(dabo.ui.dForm):
...
def afterInit(self):
self.bind(dabo.dEvents.Activate, self.onActivate)
...
def onActivate(self, evt):
print "form activate"
self.refreshAgents()
def refreshAgents(self):
bizAgents = self.getBizobj("agents")
bizAgents.requery()
dsAgents = bizAgents.getDataSet(flds=("id", "name"))
lstAgents = self.lstAgents ## ('cuz you named it's RegID that way)
lstAgents.Choices = [rec["name"] for rec in dsAgents]
lstAgents.Keys = [rec["id"] for rec in dsAgents]
Now, when the form is activated, lstAgents is populated with the current list
of
agents. Note the code above is untested.
Paul
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/[email protected]