wxgrid dont refresh

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