def launch(): ds = pylax.Dynaset("SalesOrder", "SELECT OrderID, Customer, LE.Name AS CustomerName, OrderDate FROM SalesOrder JOIN le ON LeID=Customer;") ds.autoColumn = ds.add_column("OrderID", int, key=True) ds.add_column("Customer", int) ds.add_column("CustomerName", str, None) dt = ds.add_column("OrderDate", datetime.datetime, False, format="{:%Y-%m-%d}", default = datetime.datetime.now()) dsOrderLine = pylax.Dynaset("OrderLine", "SELECT OrderLine.OrderID AS OrderID, Item, Quantity, Price, Quantity * Price AS Amount, OrderLine.rowid AS RowID FROM OrderLine JOIN SalesOrder ON SalesOrder.OrderID=OrderLine.OrderID WHERE OrderLine.OrderID=:OrderID;", parent=ds) dsOrderLine.add_column("RowID", int, key=True) dsOrderLine.add_column("OrderID", int, parent = "OrderID") dsOrderLine.add_column("Item", int) dsOrderLine.add_column("Quantity", float) dsOrderLine.add_column("Price", float) dsOrderLine.add_column("Amount", key=None) #dsOrderLine.on_parent_changed=dsOrderLine__on_parent_changed #print(dsOrderLine.parent) #dsOrderLine.autoExecute = False form = pylax.Form(None, 20, 30, 640, 480, "Order", ds) form.icon = pylax.Image("Order.ico") #form.minWidth, form.minHeight = 640, 400 form.before_close=dsOrderLine__on_parent_changed tableSelect = pylax.Table(form, 20, 44, -20, 100, dynaset=ds) tableSelect.add_column("Customer", 150, "CustomerName") # title, width, Dynaset column name tableSelect.add_column("ID", 30, "OrderID") tableSelect.add_column("Date", 90, "OrderDate", format="{:%y-%m-%d}") entrySearch = pylax.Entry(form, 90, 20, 120, 20, "Search Name") #, label = pylax.Label(form, 20, 20, 70, 20, "Search")) #print(entrySearch.dataType) ds.buttonSearch = pylax.Button(form, 220, 20, 60, 20, "Search") ds.buttonSearch.on_click = searchButton__on_click; entryID = pylax.Entry(form, 100, 160, 120, 20, dynaset=ds, column="OrderID", dataType=int, label = pylax.Label(form, 20, 160, 70, 20, "ID")) entryDate = pylax.Entry(form, 100, 190, 120, 20, dynaset=ds, column="OrderDate", format="{:%Y-%m-%d %H:%M}", label = pylax.Label(form, 20, 190, 70, 20, "Date")) entryDate.editFormat = "{:%Y-%m-%d %H:%M:%S}" entryCustomer = pylax.Entry(form, 330, 160, 120, 20, dynaset=ds, column="CustomerName", format="{:%Y-%m-%d %H:%M}", label = pylax.Label(form, 240, 160, 90, 20, "Customer")) entryCustomer.verify = entryCustomer__verify tableOrderLine = pylax.Table(form, 20, 220, -20, -80, dynaset=dsOrderLine) tableOrderLine.add_column("Item ID", 50, "Item") tableOrderLine.add_column("Quantity", 50, "Quantity") entryQuantity = pylax.Entry(form, 120, -70, 120, 20, dynaset=dsOrderLine, column="Quantity", label = pylax.Label(form, 20, -70, 90, 20, "Quantity")) #print(entrySearch.alignHoriz) ds.buttonNew = pylax.Button(form, -370, -40, 60, 20, "New") ds.buttonEdit = pylax.Button(form, -300, -40, 60, 20, "Edit") ds.buttonUndo = pylax.Button(form, -230, -40, 60, 20, "Undo") ds.buttonSave = pylax.Button(form, -160, -40, 60, 20, "Save") ds.buttonDelete = pylax.Button(form, -90, -40, 60, 20, "Delete") labelFormCaption = pylax.Label(form, 2, 2, 20, 60, "FormCaption", dynaset=ds, column="CustomerName", visible = False) labelFormCaption.captionClient = form # passes any assigment to property 'data' on to property 'caption' of the captionClient r = ds.execute()
def entryCustomer__on_click_button(self): def selectorSearchButton__on_click(data): if entrySearch.data == None: r = ds.execute(query="SELECT CustomerID, Name FROM Customer;") else: r = ds.execute( {"Name": entrySearch.data}, "SELECT CustomerID, Name FROM Customer WHERE Name LIKE :Name;") def selectorOkButton__on_click(data): self.dynaset.set_data("Customer", ds.get_row_data()["CustomerID"]) self.dynaset.set_data("CustomerName", ds.get_row_data()["Name"]) selector.close() ds = pylax.Dynaset("LE", "SELECT CustomerID, Name FROM Customer;") ds.autoColumn = ds.add_column("CustomerID", int, key=True) ds.add_column("Name") selector = pylax.Window(None, 0, 0, 320, 220, "Select Customer", ds) entrySearch = pylax.Entry(selector, 20, 20, -70, 20, "Search Name") ds.buttonSearch = pylax.Button(selector, -60, 20, 20, 20, "⏎") ds.buttonSearch.on_click = selectorSearchButton__on_click table = pylax.Table(selector, 20, 60, -20, -70, dynaset=ds) table.add_column("Name", 150, "Name") table.add_column("ID", 30, "CustomerID") ds.buttonOK = pylax.Button(selector, -60, -50, 40, 20, "OK") ds.buttonOK.on_click = selectorOkButton__on_click #selector.buttonCancel = pylax.Button(selector, -60, -40, 50, 20, "Cancel") r = ds.execute()
def dialog(self, data): self.window = pylax.Window(None, 0, 0, 320, 220, "Select Customer", self.dynaset) self.entrySearch= pylax.Entry(self.window, 20, 20, -70, 20, "Search Name") self.entrySearch.data = data + "%" buttonSearch = pylax.Button(self.window, -60, 20, 20, 20, "⏎") buttonSearch.on_click = self.buttonSearch__on_click table = pylax.Table(self.window, 20, 60, -20, -70, dynaset=self.dynaset) table.add_column("Name", 150, "Name") table.add_column("ID", 30, "CustomerID") self.dynaset.buttonOK = pylax.Button(self.window, -60, -50, 40, 20, "OK") self.dynaset.buttonOK.on_click = self.buttonOK__on_click; self.dynaset.execute({"Name": self.entrySearch.data}, self.query_browse) self.window.wait_for_close()
def create_selector_Customer(): ds = pylax.Dynaset("LE", "SELECT LeID, Name FROM LE;") ds.autoColumn = ds.add_column("LeID", int, key=True) ds.add_column("Name") selector = pylax.Window(None, 30, 20, 480, 280, "Select Customer", ds) entrySearch= pylax.Entry(selector, 90, 20, 120, 20, "Search Name") ds.buttonSearch = pylax.Button(selector, 220, 20, 60, 20, "Search") ds.buttonSearch.on_click = selectorSearchButton__on_click; table = pylax.Table(selector, 20, 44, -20, 100, dynaset=ds) table.add_column("Name", 150, "Name") table.add_column("ID", 30, "LeID") ds.buttonOK = pylax.Button(selector, -120, -40, 50, 20, "OK") selector.buttonCancel = pylax.Button(selector, -60, -40, 50, 20, "Cancel") r=ds.execute() return selector
def launch(): form = pylax.Form(None, 20, 30, 680, 500, "Item") #form.minWidth, form.minHeight = 640, 480 ds = pylax.Dynaset( "Item", "SELECT ItemID, Name, Description, Picture, Parent FROM Item ORDER BY Name DESC LIMIT 100;" ) ds.autoColumn = ds.add_column("ItemID", int, format="{:,}", key=True) ds.add_column("Name") ds.add_column("Description", str) ds.add_column("Picture", bytes) ds.add_column("Parent", int) selectionTable = pylax.Table(form, 12, 88, -344, -170, dynaset=ds, label=pylax.Label(form, 12, 60, 90, 24, "Select")) selectionTable.add_column("Name", 70, "Name") selectionTable.add_column("Description", 100, "Description") selectionTable.showRowIndicator = True imagePicture = pylax.Image(form, -330, 20, 320, 320, dynaset=ds, column="Picture") ds.buttonEdit = pylax.Button(form, -328, -36, 60, 24, "Edit") ds.buttonNew = pylax.Button(form, -264, -36, 60, 24, "New") ds.buttonDelete = pylax.Button(form, -200, -36, 60, 24, "Delete") ds.buttonUndo = pylax.Button(form, -136, -36, 60, 24, "Undo") ds.buttonSave = pylax.Button(form, -72, -36, 60, 24, "Save") r = ds.execute()
def entryCustomer__validate(widget, data): def buttonSearch__on_click(data): if entrySearch.data == None: r = ds.execute(query = "SELECT LeID, Name FROM LE LIMIT 100;") else: r = ds.execute({"Name": entrySearch.data}, "SELECT LeID, Name FROM LE WHERE Name LIKE :Name LIMIT 100;") def buttonOK__on_click(data): widget.dynaset.set_data("Customer", ds.get_row_data()["LeID"]) widget.dynaset.set_data("CustomerName", ds.get_row_data()["Name"]) window.close() ds = pylax.Dynaset("LE", "SELECT LeID, Name FROM LE WHERE Name = :Name LIMIT 100;") ds.autoColumn = ds.add_column("LeID", int, key=True) ds.add_column("Name") rows = ds.execute({"Name": data}) if rows == 1: ds.row = 0 widget.dynaset.set_data("Customer", ds.get_row_data()["LeID"]) widget.dynaset.set_data("CustomerName", ds.get_row_data()["Name"]) return True else: window = pylax.Window(None, 0, 0, 320, 220, "Select Customer", ds) entrySearch= pylax.Entry(window, 20, 20, -70, 24, "Search Name") entrySearch.data = data + "%" buttonSearch = pylax.Button(window, -60, 20, 20, 24, "⏎") buttonSearch.on_click = buttonSearch__on_click; table = pylax.Table(window, 20, 60, -20, -70, dynaset=ds) table.add_column("Name", 150, "Name") table.add_column("ID", 30, "LeID") ds.buttonOK = pylax.Button(window, -60, -50, 40, 24, "OK") ds.buttonOK.on_click = buttonOK__on_click; r = ds.execute({"Name": entrySearch.data}, "SELECT LeID, Name FROM LE WHERE Name LIKE :Name;") return False
def create_selector_LegalEntity(): global selectorEntrySearch ds = pylax.Dynaset( "LE", "SELECT LeID, Name, Description FROM LE WHERE Name LIKE :Name OR LeID = :Name ORDER BY Name DESC LIMIT 100;" ) ds.autoColumn = ds.add_column("LeID", int, key=True) ds.add_column("Name") ds.add_column("Description") selector = pylax.Dialog(None, 30, 20, 480, 280, "Select Legal Entity", ds) selectorEntrySearch = pylax.Entry(selector, 20, 20, -90, 20) selectorEntrySearch.data = "%" ds.buttonSearch = pylax.Button(selector, -80, 20, 60, 20, "Sea&rch") ds.buttonSearch.on_click = selectorSearchButton__on_click table = pylax.Table(selector, 20, 48, -20, -60, dynaset=ds) table.add_column("Name", 150, "Name") table.add_column("ID", 30, "LeID") table.showRowIndicator = False #selector.buttonOK = ds.buttonOK = pylax.Button(selector, -130, -40, 50, 20, "OK") #selector.buttonCancel = pylax.Button(selector, -70, -40, 50, 20, "Cancel") r = ds.execute({"Name": "%"}) return selector
ds.autoColumn = ds.add_column("itemid", int, format="{:,}", key=True) ds.add_column("name") form = pylax.Form(None, 20, 10, 680, 480, "Item from PostgreSQL", ds) ds.buttonEdit = pylax.Button(form, -328, -36, 60, 24, "Edit") ds.buttonNew = pylax.Button(form, -264, -36, 60, 24, "New") ds.buttonDelete = pylax.Button(form, -200, -36, 60, 24, "Delete") ds.buttonUndo = pylax.Button(form, -136, -36, 60, 24, "Undo") ds.buttonSave = pylax.Button(form, -72, -36, 60, 24, "Save") entrySearch = pylax.Entry(form, 62, 12, -389, 24, label = pylax.Label(form, 12, 12, 40, 24, "Search")) entrySearch.data = "%" buttonSearch = pylax.Button(form, -379, 12, 24, 24, "⏎") buttonSearch.on_click = buttonSearch__on_click buttonSearch.defaultEnter = True selectionTable = pylax.Table(form, 12, 88, -344, -170, dynaset=ds, label = pylax.Label(form, 12, 60, 90, 24, "Select")) selectionTable.add_column("Name", 70, "Name") selectionTable.add_column("Description", 100, "Description") selectionTable.showRowIndicator = True entryID = pylax.Entry(form, -200, 60, 40, 24, dynaset=ds, column="ItemID", dataType=int, label = pylax.Label(form, -300, 60, 70, 24, "ID")) entryID.editFormat="{:,}" entryID.alignHoriz = pylax.Align.left entryName = pylax.Entry(form, -200, 90, -110, 24, dynaset=ds, column="Name", dataType=str, label = pylax.Label(form, -300, 90, 70, 24, "Name")) def on_load(): # this function gets called after the script has been loaded r = ds.execute({"Name": "%"})
def launch(): global ds, entrySearch ds = pylax.Dynaset( "LE", "SELECT le.LeID, le.Name, le.Description, le.Logo, le.Parent, p.Name AS ParentName FROM LE LEFT JOIN LE AS p ON le.Parent=p.LeID WHERE le.Name LIKE :Name OR le.LeID = :Name ORDER BY le.Name DESC LIMIT 100;" ) ds.autoColumn = ds.add_column("LeID", int, format="{:,}", key=True) ds.add_column("Name") ds.add_column("Description") ds.add_column("Logo", bytes) ds.add_column("Parent", int) ds.add_column("ParentName") ds.before_save = ds__before_save # GUI form = pylax.Form(None, pylax.Widget.defaultCoordinate, 10, 640, 480, "Legal Entity", ds) form.minWidth, form.minHeight = 480, 360 labelFormCaption = pylax.Label(form, 1, 1, 40, 20, dynaset=ds, column="Name", visible=False) labelFormCaption.captionClient = form # passes any assigment to property 'data' on to property 'caption' of the captionClient entrySearch = pylax.Entry(form, 70, 20, 160, 20, label=pylax.Label(form, 20, 20, 40, 20, "Search")) entrySearch.data = "%" #entrySearch.focus_in() #entrySearch.verify= entryS__verify #print(form.focus) ds.buttonSearch = pylax.Button(form, 240, 20, 60, 20, "Sea&rch") ds.buttonSearch.on_click = buttonSearch__on_click ds.buttonSearch.defaultEnter = True selectionTable = pylax.Table(form, 20, 70, -240, -55, dynaset=ds, label=pylax.Label(form, 20, 50, 90, 20, "Select:")) selectionTable.add_column("ID", 60, "LeID") # title, width, dataset selectionTable.add_column("Name", 130, "Name") selectionTable.add_column("Parent", 130, "ParentName", widget=pylax.Entry(None)) #print(selectionTable.columns[2].widget) imagePicture = pylax.ImageView(form, -140, 20, 90, 80, dynaset=ds, column="Logo", dataType=bytes) entryID = pylax.Entry(form, -160, 120, 60, 20, dynaset=ds, column="LeID", dataType=int, label=pylax.Label(form, -230, 120, 60, 20, "ID")) entryID.editFormat = "{:,}" entryID.alignHoriz = pylax.Align.left entryName = pylax.Entry(form, -160, 150, 140, 20, dynaset=ds, column="Name", label=pylax.Label(form, -230, 150, 60, 20, "Name")) entryParent = pylax.Entry(form, -160, 180, 140, 20, dynaset=ds, column="ParentName", label=pylax.Label(form, -230, 180, 60, 20, "Parent")) #entryParent.alignHoriz = pylax.Align.left #entryParentName = pylax.Entry(form, -160, 210, 100, 20, dynaset=ds, column="ParentName") entryParent.verify = entryParent__verify entryParent.on_click_button = entryParent__on_click_button ds.buttonNew = pylax.Button(form, -360, -40, 60, 20, "&New") ds.buttonEdit = pylax.Button(form, -290, -40, 60, 20, "&Edit") ds.buttonUndo = pylax.Button(form, -220, -40, 60, 20, "&Undo") ds.buttonSave = pylax.Button(form, -150, -40, 60, 20, "&Save") ds.buttonDelete = pylax.Button(form, -80, -40, 60, 20, "&Delete") r = ds.execute({"Name": entrySearch.data})
ds.buttonNew = pylax.Button(form, -264, -36, 60, 24, "New") ds.buttonDelete = pylax.Button(form, -200, -36, 60, 24, "Delete") ds.buttonUndo = pylax.Button(form, -136, -36, 60, 24, "Undo") ds.buttonSave = pylax.Button(form, -72, -36, 60, 24, "Save") tab = pylax.Tab(form, 2, 2, -2, -55) tabPageMain = pylax.TabPage(tab, 0, 0, 0, 0, "Main") tabPagePicture = pylax.TabPage(tab, 0, 0, 0, 0, "Picture") entrySearch = pylax.Entry(tabPageMain, 62, 12, -389, 24, label = pylax.Label(tabPageMain, 12, 12, 40, 24, "Search")) entrySearch.data = "%" buttonSearch = pylax.Button(tabPageMain, -379, 12, 24, 24, "⏎") buttonSearch.on_click = buttonSearch__on_click buttonSearch.defaultEnter = True selectionTable = pylax.Table(tabPageMain, 12, 88, -344, -170, dynaset=ds, label = pylax.Label(tabPageMain, 12, 60, 90, 24, "Select")) selectionTable.add_column("Name", 70, "Name") # title, width, Dynaset column name selectionTable.add_column("Description", 100, "Description") selectionTable.showRowIndicator = True entryID = pylax.Entry(tabPageMain, 82, -160, 80, 24, dynaset=ds, column="ItemID", dataType=int, label = pylax.Label(tabPageMain, 12, -160, 70, 24, "ID")) entryID.editFormat="{:,}" entryID.alignHoriz = pylax.Align.left entryName = pylax.Entry(tabPageMain, 82, -132, 180, 24, dynaset=ds, column="Name", dataType=str, label = pylax.Label(tabPageMain, 12, -132, 70, 24, "Name")) #entryDescription.plain = True entryPrice = pylax.Entry(tabPageMain, 82, -104, 180, 24, dynaset=ds, column="Price", dataType=float, label = pylax.Label(tabPageMain, 12, -104, 70, 24, "Price")) entryPrice.format="{0:,.2f}" detailTable = pylax.Table(tabPageMain, -320, 88, -12, -196, dynaset=dsDetail, label = pylax.Label(tabPageMain, -320, 60, 90, 24, "Sold To")) detailTable.showRowIndicator = True
def launch(): global ds, entrySearch, comboBoxSearch ds = pylax.Dynaset( "Person", "SELECT PersonID, FirstName, LastName, Picture FROM Person ORDER BY LastName DESC LIMIT 100;" ) ds.autoColumn = ds.add_column("PersonID", int, format="{:,}", key=True) ds.add_column("LastName", str, False) ds.add_column("FirstName", str, False, default="One") ds.add_column("Picture", bytes) # GUI form = pylax.Form(None, 10, 10, 680, 450, "Person", ds) form.minWidth, form.minHeight = 640, 480 labelFormCaption = pylax.Label(form, 1, 1, 40, 20, dynaset=ds, column="LastName", visible=False) labelFormCaption.captionClient = form # passes any assigment to property 'data' on to property 'caption' of the captionClient comboBoxSearch = pylax.ComboBox(form, 82, 12, 50, 20, label=pylax.Label(form, 12, 12, 70, 20, "Search by")) comboBoxSearch.append("ID") comboBoxSearch.append("Name") comboBoxSearch.data = "Name" entrySearch = pylax.Entry(form, 160, 20, -410, 20) buttonSearch = pylax.Button(form, -400, 20, 20, 20, "⏎") buttonSearch.on_click = buttonSearch__on_click buttonSearch.defaultEnter = True selectionTable = pylax.Table(form, 12, 88, -344, -170, dynaset=ds, label=pylax.Label(form, 12, 60, 90, 24, "Select")) selectionTable.add_column("First Name", 70, "FirstName") selectionTable.add_column("Last Name", 150, "LastName") selectionTable.showRowIndicator = True imagePicture = pylax.Image(form, -260, 10, 150, 150, dynaset=ds, column="Picture") entryID = pylax.Entry(form, -260, 180, 60, 20, dynaset=ds, column="PersonID", dataType=int, label=pylax.Label(form, -340, 180, 70, 20, "ID")) entryID.editFormat = "{:,}" entryID.alignHoriz = pylax.Align.left entryID.readOnly = True entryFirstName = pylax.Entry(form, -260, 210, 60, 20, dynaset=ds, column="FirstName", dataType=str, label=pylax.Label(form, -340, 210, 70, 20, "First Name")) entryLastName = pylax.Entry(form, -260, 240, 60, 20, dynaset=ds, column="LastName", dataType=str, label=pylax.Label(form, -340, 240, 70, 20, "Last Name")) #comboBox = pylax.ComboBox(form, -260, 270, 60, 20, dynaset=ds, column="PersonID", label = pylax.Label(form, -340, 270, 70, 20, "PersonID")) #comboBox.append("Zero", 0) #comboBox.append("One", 1) #comboBox.append("Two", 2) ds.buttonEdit = pylax.Button(form, -328, -36, 60, 24, "Edit") ds.buttonNew = pylax.Button(form, -264, -36, 60, 24, "New") ds.buttonDelete = pylax.Button(form, -200, -36, 60, 24, "Delete") ds.buttonUndo = pylax.Button(form, -136, -36, 60, 24, "Undo") ds.buttonSave = pylax.Button(form, -72, -36, 60, 24, "Save") r = ds.execute()
def launch(): global ds, entrySearch def nameColumn__default(): pylax.message("Default", "Gratuliere") return "Hallo" ds = pylax.Dynaset( "Person", "SELECT PersonID, FirstName, LastName, Picture FROM Person ORDER BY LastName DESC LIMIT 100;" ) ds.autoColumn = ds.add_column("PersonID", int, format="{:,}", key=True) ds.add_column("FirstName", str, defaultFunction=nameColumn__default) ds.add_column("LastName", str, False, default="Geschafft") ds.add_column("Picture", bytes) # GUI form = pylax.Form(None, pylax.Widget.defaultCoordinate, 10, 680, 450, "Person", ds) form.minWidth, form.minHeight = 640, 480 def entryFirstName__verify(widget, data): pylax.message("Nicht Geklückt! 品", "Gratuliere") return False labelFormCaption = pylax.Label(form, 1, 1, 40, 20, dynaset=ds, column="LastName", visible=False) labelFormCaption.captionClient = form # passes any assigment to property 'data' on to property 'caption' of the captionClient entrySearch = pylax.Entry(form, 70, 20, 160, 20, label=pylax.Label(form, 20, 20, 40, 20, "Search")) ds.buttonSearch = pylax.Button(form, 240, 20, 60, 20, "Search") ds.buttonSearch.on_click = buttonSearch__on_click ds.buttonSearch.defaultEnter = True selectionTable = pylax.Table(form, 20, 70, -240, -55, dynaset=ds, label=pylax.Label(form, 20, 50, 90, 20, "Select:")) selectionTable.add_column("First Name", 70, "FirstName") # title, width, dataset selectionTable.add_column("Last Name", 150, "LastName") # title, width, dataset selectionTable.add_column("ID", 130, "PersonID") # title, width, dataset imagePicture = pylax.ImageView(form, -130, 20, 90, 80, dynaset=ds, column="Picture", dataType=bytes) entryID = pylax.Entry(form, -130, 120, 120, 20, dynaset=ds, column="PersonID", dataType=int, label=pylax.Label(form, -230, 120, 90, 20, "ID")) entryID.editFormat = "{:,}" entryID.alignHoriz = pylax.Align.left entryFirstName = pylax.Entry(form, -130, 150, 120, 20, dynaset=ds, column="FirstName", dataType=str, label=pylax.Label(form, -230, 150, 90, 20, "First Name")) entryFirstName.verify = entryFirstName__verify entryLastName = pylax.Entry(form, -130, 180, 120, 20, dynaset=ds, column="LastName", dataType=str, label=pylax.Label(form, -230, 180, 90, 20, "Last Name")) comboBox = pylax.ComboBox(form, -130, 220, 120, 20, dynaset=ds, column="PersonID", label=pylax.Label(form, -230, 220, 90, 20, "PersonID")) comboBox.append("Zero", 0) comboBox.append("One", 1) comboBox.append("Two", 2) entryLastName.readOnly = True ds.buttonNew = pylax.Button(form, -370, -40, 60, 20, "New") ds.buttonEdit = pylax.Button(form, -300, -40, 60, 20, "Edit") ds.buttonUndo = pylax.Button(form, -230, -40, 60, 20, "Undo") ds.buttonSave = pylax.Button(form, -160, -40, 60, 20, "Save") ds.buttonDelete = pylax.Button(form, -90, -40, 60, 20, "Delete")
entrySearch = pylax.Entry(tabPageMain, 70, 20, -420, 20, label=pylax.Label(tabPageMain, 20, 22, 40, 20, "Search")) entrySearch.data = "%" ds.buttonSearch = pylax.Button(tabPageMain, -410, 20, 20, 20, "⏎") ds.buttonSearch.on_click = buttonSearch__on_click ds.buttonSearch.defaultEnter = True selectionTable = pylax.Table(tabPageMain, 20, 80, -360, -130, dynaset=ds, label=pylax.Label(tabPageMain, 20, 60, 90, 20, "Select")) selectionTable.add_column("Name", 70, "Name") selectionTable.add_column("Description", 100, "Description") selectionTable.showRowIndicator = True image = pylax.Image(tabPagePicture, 20, 40, -20, 320, dynaset=ds, column="Picture", label=pylax.Label(tabPagePicture, 20, 20, 70, 20,