Hi,
Whats wrong in my code?? the wxgrid dont refresh the data…any idea please!
···
#-----------------------------------------------------------------------------
Name: frmIngDoc.py
Purpose:
Author:
Created: 2005/09/29
RCS-ID: $Id: frmIngDoc.py $
Copyright: © 2005
#-----------------------------------------------------------------------------
#Boa:Frame:Frame1
import wx
import wx.grid
import Conexion #Modulo de Conexion a la DB
def create(parent):
return Frame1(parent)
[wxID_FRAME1, wxID_FRAME1BTNAGREGAR, wxID_FRAME1GRDDAT,
wxID_FRAME1STATICTEXT1, wxID_FRAME1STATICTEXT2, wxID_FRAME1TXTDOC,
wxID_FRAME1TXTOBS,
] = [wx.NewId() for _init_ctrls in range(7)]
class Frame1(wx.Frame):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_FRAME1, name=u'Frame1', parent=prnt,
pos=wx.Point(428, 248), size=wx.Size(411, 371),
style=wx.DEFAULT_FRAME_STYLE, title=u'Documentos')
self.SetClientSize(wx.Size(411, 371))
self.Center(wx.BOTH)
self.SetToolTipString(u'')
self.txtDoc = wx.TextCtrl(id=wxID_FRAME1TXTDOC, name=u'txtDoc',
parent=self, pos=wx.Point(20, 20), size=wx.Size(312, 21), style=0,
value=u'')
self.txtDoc.SetToolTipString(u'Nuevo Documento')
self.btnAgregar = wx.Button(id=wxID_FRAME1BTNAGREGAR, label=u'Agregar',
name=u'btnAgregar', parent=self, pos=wx.Point(340, 20),
size=wx.Size(56, 24), style=0)
self.btnAgregar.SetToolTipString(u'Agregar')
self.btnAgregar.Bind(wx.EVT_BUTTON, self.OnBtnAgregarButton,
id=wxID_FRAME1BTNAGREGAR)
self.txtObs = wx.TextCtrl(id=wxID_FRAME1TXTOBS, name=u'txtObs',
parent=self, pos=wx.Point(24, 312), size=wx.Size(375, 40),
style=0, value=u'')
self.txtObs.SetToolTipString(u'Ingresar Observaciones')
self.staticText1 = wx.StaticText(id=wxID_FRAME1STATICTEXT1,
label=u'Observaciones', name='staticText1', parent=self,
pos=wx.Point(24, 288), size=wx.Size(71, 13), style=0)
self.staticText2 = wx.StaticText(id=wxID_FRAME1STATICTEXT2,
label=u'Descripci\xf3n', name='staticText2', parent=self,
pos=wx.Point(24, 8), size=wx.Size(64, 13), style=0)
self.grdDat = wx.grid.Grid(id=wxID_FRAME1GRDDAT, name=u'grdDat',
parent=self, pos=wx.Point(24, 56), size=wx.Size(368, 224),
style=0)
def __init__(self, parent, CoServ ='0000'):
"""Inicializa el Formulario.
Carga Datos del Codigo de Servicio por default sino se le pasa
el Codigo
Luego carga los controles."""
self._init_ctrls(parent)
#Carga Grid
self.CodServ=CoServ
self.CargaGrid()
def CargaGrid(self):
"""Carga los datos de la consulta en el grid."""
#Obtiene datos para cargar el Grid
self.reg=self.Datos(self.CodServ)
#Numero de registros
filas=len(self.reg)
#borra cualquier dato presente
#self.grdDat.ClearGrid()
#Si tiene registros
if filas>0:
self.grdDat.CreateGrid(filas,3)
self.grdDat.SetColLabelValue(0,"I")
self.grdDat.SetColLabelValue(1,"Cod.")
self.grdDat.SetColLabelValue(2,"Por Asignar")
self.grdDat.SetColFormatBool(0)
self.grdDat.SetColSize(0,20)
self.grdDat.SetColSize(1,30)
self.grdDat.SetColSize(2,200)
x=0
for r in self.reg:
self.grdDat.SetCellValue(x,1,str(r[1]))
self.grdDat.SetCellValue(x,2,str(r[6]))
x+=1
self.secu=str(r[1])
#self.grdDat.ForceRefresh()
#Sino hay registros
elif filas==0:
self.grdDat.CreateGrid(1,3)
self.grdDat.SetColLabelValue(0,"I")
self.grdDat.SetColLabelValue(1,"Cod.")
self.grdDat.SetColLabelValue(2,"Por Asignar")
self.grdDat.SetColFormatBool(0)
self.grdDat.AutoSizeColumns(True)
self.secu = ' '
self.grdDat.ForceRefresh()
def Datos(self,Codigo):
"""Ejecuta la consulta."""
#Obtengo el conjunto de datos
self.cnn=Conexion.Conectar()
self.rsIng=self.cnn.EjecutarSQL("Select * From H_REQU_SERV \
WHERE CO_SERV='%s' ORDER BY NS_SECU" % self.CodServ)
#Devuelve el recordset en forma de Lista
return self.rsIng
def Grabar(self):
"""Graba la informacion de la descripcion."""
mdata=self.txtDoc.GetValue()
#Aumenta el valor del secuencial
var=int(self.secu) + 1
ins="Insert into H_REQU_SERV\
(CO_SERV,NS_SECU,DE_REQU,IN_ESTA,ID_USUA_MODI,NO_DOCU)\
Values('%s',%d,'1','1','00000','%s')" % (self.CodServ,var,mdata)
try:
self.cnn.EjecutarSQL(ins, TipoSQL = "Insert")
dlg=wx.MessageDialog(self,'Se guardo con exito el dato','Enlace',wx.OK | wx.ICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
#Repintar GriD
self.CargaGrid()
# TODO: Corregir error al recargar formulario!!!!!
except ValueError:
dlg.wx.MessageDialog(self,'No se guardaron los datos','Enlace',wx.OK | wx.ICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
#-------------------------------------------------------------------------------
def OnBtnAgregarButton(self, event):
"""Agregar nuevo Documento relacionado al Servicio."""
self.Grabar()
Thanks in advance!!
Saludos / Best regards
Mario Lacunza Vásquez
Desarrollador de Software - Webmaster
Teléfono : 51-1-476-7423
Celular : 51-1-93-100-386 (Claro)
Website : http://mlacunzav.cogia.net
Email : mlacunza@gmail.com
Blog : http://mlacunza.blogspot.com
Messenger MSN : mario_lacunza@hotmail.com
Yahoo Messenger: mario_lacunza@yahoo.es
Lima - Peru