import dabo dabo.ui.loadUI("wx") class VarColumn(dabo.ui.dColumn): def dynBackColor(self, row): if row == 1 and self.ColumnIndex == 1: return "red" return None def dynForeColor(self, row): if row == 1 and self.ColumnIndex == 1: return "white" return None def initProperties(self): self.HeaderBackColor = "orange" self.HorizontalAlignment = "Center" self.DynamicCellBackColor = self.dynBackColor self.DynamicCellForeColor = self.dynForeColor class InfoPanel(dabo.ui.dPanel): def afterInit(self): self.Sizer=vs=dabo.ui.dSizer('v') vs.appendSpacer(10) hs=dabo.ui.dSizer('h') ds = [ {"name" : "Pending In", "qty" : 3500.00, "value" : 27375.00}, {"name" : "In Stock", "qty" : 4800.00, "value" : 43291.62}, {"name" : "Pending Out", "qty": 5720.00, "value" : 101465.00}, {"name" : "Available", "qty": 3315.00, "value" : 0}] summayGrid = dabo.ui.dGrid(self, RegID="summaryID", SelectionMode="Cell", Editable = False, MovableColumns=False) summayGrid.DataSet=ds summayGrid.addColumn(VarColumn, Caption=' ', Width=100, DataField="name", HeaderBackColor=None) summayGrid.addColumn(VarColumn, Caption='Quantity', Width=200, DataField='qty') summayGrid.addColumn(VarColumn, Caption='Value', Width=200, DataField='value') summayGrid.Height=160 hs.append1x(summayGrid) vs.append1x(hs) class MainPanelFrames(dabo.ui.dPanel): def afterInit(self): self.Sizer = vs = dabo.ui.dSizer("v") pageFrame = pgf = dabo.ui.dPageFrame(self) pgf.RegID= "FormPG" pgf.appendPage(pgCls=InfoPanel, caption="Information") vs.append(pgf, 0,"x") # proportion=0, layout=expand) class MainForm(dabo.ui.dForm): def afterInit(self): self.Caption = "Bonanza Accounting - Inventory status" self.Sizer = dabo.ui.dSizer("vertical") self.Sizer.append1x(MainPanelFrames(self)) self.layout() app = dabo.dApp(MainFormClass=None) app.setup() frm = MainForm() frm.show() app.start()
