Hola, mis cordiales saludos masters.
estoy practicando un formulario pero he tenido un tropiezo al quedarme "varado" o trancado en una parte del código ya que se necesita hacer consulta de avance y atraso en la base de datos para explicar un poco más aqui mi código de python
Código Python:
Ver original'''
Created on 17/10/2011
@author: Administrador
'''
import wx
import sqlite3 as lite
class Macro(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size = (400,400))
panel = wx.Panel(self, -1)
#Nombres estaticos
primaria = wx.StaticText(panel, -1, "ID:", pos = (115,40))
nombre = wx.StaticText(panel, -1, "Nombre y apellido:", pos = (40,80))
cedula = wx.StaticText(panel, -1, "Cedula:", pos = (92,120))
numero = wx.StaticText(panel, -1, "Numero Telefonico:", pos = (35,160))
direccion = wx.StaticText(panel, -1, "Direccion:", pos = (82,200))
#cajas
self.cprimaria = wx.TextCtrl(panel, -1, "", pos = (150,40))
self.cnombre = wx.TextCtrl(panel, -1, "", pos = (150,80))
self.ccedula = wx.TextCtrl(panel, -1, "", pos = (150,120))
self.cnumero = wx.TextCtrl(panel, -1, "", pos = (150,160))
self.cdireccion = wx.TextCtrl(panel, -1, "", size = (100,50), pos = (150,200), style = wx.TE_MULTILINE)
#botones
nuevo = wx.Button(panel, -1, "nuevo", pos = (15,280), size = (50,30))
nuevo.Bind(wx.EVT_BUTTON, self.OnNuevo)
deshacer = wx.Button(panel, -1, "deshacer", pos = (68,280), size = (50,30))
deshacer.Bind(wx.EVT_BUTTON, self.OnDeshacer)
adelante = wx.Button(panel, -1, "adelante", pos = (121,280), size = (50,30))
adelante.Bind(wx.EVT_BUTTON, self.OnAdelante)
atras = wx.Button(panel, -1, "atras", pos = (175,280), size = (50,30))
eliminar = wx.Button(panel, -1, "eliminar", pos = (228,280), size = (50,30))
guardar = wx.Button(panel, -1, "guardar", pos = (282, 280), size = (50,30))
guardar.Bind(wx.EVT_BUTTON, self.OnGuardar)
cerrar = wx.Button(panel, -1, "cerrar", pos = (335,280), size = (50,30))
cerrar.Bind(wx.EVT_BUTTON, self.OnCerrar)
self.Centre()
self.Show()
def OnAdelante(self, event):
try:
con = lite.connect('basededato.sqlite')
cur = con.cursor()
uno = self.cprimaria.GetValue()
dos = self.cnombre.GetValue()
tres = self.ccedula.GetValue()
cuatro = self.cnumero.GetValue()
cinco = self.cdireccion.GetValue()
cur.execute("Selec * from empleado where id = "1+"", (uno, dos, tres, cuatro, cinco))
con.commit()
cur.close()
con.close()
except lite.Error, error:
dlg = wx.MessageDialog(self, str(error), 'Ha ocurrido un error')
dlg.ShowModal()
def OnNuevo(self, event):
self.cprimaria.Clear()
self.cnombre.Clear()
self.ccedula.Clear()
self.cnumero.Clear()
self.cdireccion.Clear()
def OnGuardar(self, event):
try:
con = lite.connect('basededato.sqlite')
cur = con.cursor()
uno = self.cprimaria.GetValue()
dos = self.cnombre.GetValue()
tres = self.ccedula.GetValue()
cuatro = self.cnumero.GetValue()
cinco = self.cdireccion.GetValue()
cur.execute("INSERT into empleado values(?, ?, ?, ?, ?)", (uno, dos, tres, cuatro, cinco))
con.commit()
cur.close()
con.close()
self.cprimaria.Clear()
self.cnombre.Clear()
self.ccedula.Clear()
self.cnumero.Clear()
self.cdireccion.Clear()
wx.MessageBox("Sus datos fueron guardados exitosamente", "Guardar", wx.OK | wx.ICON_INFORMATION)
except lite.Error, error:
dlg = wx.MessageDialog(self, str(error), 'Ha ocurrido un error')
dlg.ShowModal()
def OnDeshacer(self, event):
self.cprimaria.Clear()
self.cnombre.Clear()
self.ccedula.Clear()
self.cnumero.Clear()
self.cdireccion.Clear()
wx.MessageBox("Se han borrado los campos, satisfactoriamente", "Deshacer", wx.OK | wx.ICON_INFORMATION)
def OnCerrar(self, event):
self.Destroy()
app = wx.App()
Macro(None, -1, "Formulario de empleado")
app.MainLoop()
yo nunca he hecho este tipo de consultas, y me gustaría si son tan amables de ayudarme o decirme como empezar a construir ese tipo de consultas para adelantar, atras, etc
mi intención era que los datos de la base de datos se reflejen en las cajas de texto y mediante los botones adelante, cambiar el record.
saludos esperare sus respuestas.