On Thu, Jul 9, 2009 at 2:06 AM, John<jfabi...@yolo.com> wrote: > On Wednesday 08 July 2009 04:46:20 pm Miguel Lopes wrote: >> I'm trying without success to have a grid with two checkboxes. >> >> The first checkbox (contactSelect) allows me to indicate which records >> to select. the second indicates if the record is to be shared >> (contactShare) (just something about the record). >> My problem is that most checkbox clicks somehow affect the other >> checkbox. This happens irrespectively of if I press contactSelect or >> contactShare, and even affects records in different rows. >> >> I can't seem to find a solution for this. Here's my bizobj code. Any ideas? >> >> class ContactBizobj(dabo.biz.dBizobj): >> def afterInit(self): >> >> ..., ... >> >> self.VirtualFields.update({'contactSelect': self.contactSelect, >> >> 'contactShare': self.contactShare}) >> >> def contactSelect(self): >> if self.Record.contact_id in self.__selectedContactsToAssign: >> # it's already selected, unselect >> del >> self.__selectedContactsToAssign[self.Record.contact_id] >> return False >> else: >> # not selected, select it - "False" means it is not >> shared >> >> self.__selectedContactsToAssign[self.Record.contact_id] = False >> return True >> >> def contactShare(self): >> if self.Record.contact_id in self.__selectedContactsToAssign >> and \ >> self.__selectedContactsToAssign[self.Record.contact_id] == >> False: >> # not shared, share it - "True" means it is shared >> >> self.__selectedContactsToAssign[self.Record.contact_id] = True >> return True >> else: >> return False >> >> ..., ... >> >> def initProperties(self): >> self.__selectedContactsToAssign={} >> >> >> TIA, >> Miguel > > On the surface I don't see anything wrong with the bizobj. What does the grid > code look like? In the grid you should be marking the fields as 'boolean'. > I have just yesterday coded a grid with two check boxes and it appears to > work OK. However, my fields are not virtual fields. > I'm thinking on an alternative UI to accomplish the same goal, but nevertheless I cannot spot what is wrong with this. My grid code was initially in cdxml, but this coded version has the same problem.
class SetOpptyContactsAsDlg(dui.dForm): def initProperties(self): self.CxnName = "mainCnx" self.Height = 511 self.Width = 976 def afterInit(self): sz = self.Sizer = dui.dSizer('v') grid = dui.dGrid(self, RegID="dgSelectContact", DataSource="contact", SelectionMode="Row") grid.addColumn(Name="title", DataField="title_id", DataType="integer", Width=64, Caption=u"Título", Expand=False) grid.addColumn(Name="contact", DataField="contact", DataType="string", Width=250, Caption=u"Contacto", Expand=False) grid.addColumn(Name="contact_status_id", DataField="contact_status_id", DataType="integer", Width=90, Caption=u"Estado", Expand=False) grid.addColumn(Name="account", DataField="account", DataType="string", Width=250, Caption=u"Conta", Expand=False) grid.addColumn(Name="contactSelect", DataField="contactSelect", DataType="bool", Width=83, HorizontalAlignment="Center", Caption=u"Selecciona", Expand=False) grid.addColumn(Name="contactRole", DataField="contactRole", DataType="integer", Width=125, HorizontalAlignment="Center", Caption=u"Papel", Expand=False) grid.addColumn(Name="contactShare", DataField="contactShare", DataType="bool", Width=75, HorizontalAlignment="Center", Caption=u"Cruza", Expand=False) hSz = dui.dSizer('h') hSz.appendSpacer(20, proportion=1) self.btnCancel = dui.dButton(self, Caption=u"Cancela") hSz.append(self.btnCancel, layout="x", proportion=0, border=5) self.btnSave = dui.dButton(self, Caption=u"Guarda") hSz.append(self.btnSave, layout="x", proportion=0, border=5) sz.append(grid, layout="x", proportion=1, border=15) sz.append(hSz, layout="x", proportion=0, halign="right", border=10) # Event bindings self.bindEvent(dabo.dEvents.Close, self.onClose) self.btnCancel.bindEvent(dabo.dEvents.Hit, self.onCancel) self.btnSave.bindEvent(dabo.dEvents.Hit, self.onSave) def afterInitAll(self): self.requery() def createBizobjs(self): # Primary Bizobj - all the contacts in the db contactBizobj = self.Application.biz.ContactBizobj(self.Connection) self.addBizobj(contactBizobj) def onClose(self, evt): self.Form.toggleEnabled() def onCancel(self, evt): self.close() def onSave(self, evt): # TODO: save # create new oppty_contact records according to selections. self.close() Miguel _______________________________________________ Post Messages to: Dabo-users@leafe.com 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/a19730800907091409sbc4a454i9b22aab38a912...@mail.gmail.com