[pyar] no entiendo por que se dispara una recursividad

fagonzalez fagonzalez en steel.com.ar
Jue Dic 13 15:15:43 ART 2012


Hola a todos, tengo el siguiente modulo, el que permitiria carga una
factura de venta o compra
hasta ahora todo mas o menos bien, peor a la hora de ingresar el detalle
de la factura (articulos vendidos o comprados) se desata un recursividad
que no entiendo, a continuación el código:

from PyQt4 import QtGui, QtCore
import frmVentas
import ctrlBuscarArt
import ctrlBuscarCli
from general import *
import datetime
import sqlite3

class fichaVentas(QtGui.QDialog, frmVentas.Ui_frmVentas):

    setup = []
    tbwFila = 0

    def __init__(self, parent=None):  
        self.cBArt = ctrlBuscarArt.ctrlBArticulos()
        self.cBArt.connect(self.cBArt,
                           QtCore.SIGNAL("datovalido"),
                           self.artValido)
        self.setWindowTitle("Registar factura de venta")
        .
        .
        .
        self.connect(self.tbwDetalle,
                         QtCore.SIGNAL("cellChanged(int, int)"),
                         self.LeeDetalle)
                       
    def LeeDetalle(self, fila, col):
        Dato = self.tbwDetalle.item(fila, col).text()
        self.tbwFila = fila
        if col == 0:        #codiogo
            if self.tbwDetalle.item(fila, 0).text() == ' ':
                #me posiciono en la columna 1, quiero buscar el articulo
por nombre
                self.tbwDetalle.setCurrentCell(fila, 1)
            else:
                self.MuestraDetalle(Dato)
                return
        elif col == 1:      #descripcion
            self.BuscaArticulo(Dato)
        elif col == 2:      #cantidad
            pass
        elif col == 3:      #bonificacion
            pass
        elif col == 4:      #precio unitario
            pass
            
            
     def MuestraDetalle(self, Id):
        #punto A
        self.cnn = sqlite3.connect("c:\gestion\gestion.db")
        query = self.cnn.cursor()
        query.execute("SELECT * FROM articulos " +
                            "WHERE articulos_id = %s" % str(Id))
        r = query.fetchone()
        #muestro el articulo en la fila de la grilla de detalle
        #codigo articulo
 a)     item = QtGui.QTableWidgetItem(r[0])
        item.setTextAlignment(2)
        campo = str(r[0])
        item.setText(str(campo))
 1)     self.tbwDetalle.setItem(self.tbwFila, 0, item)
        #descripcion
        item1 = QtGui.QTableWidgetItem(r[1])
        item1.setTextAlignment(1)
        campo = str(r[1])
        item1.setText(campo)
        self.tbwDetalle.setItem(self.tbwFila, 1, item1)
        #precio unitario
        item2 = QtGui.QTableWidgetItem(r[5])
        item2.setTextAlignment(2)
        campo = str(r[5])
        item2.setText(campo)
        self.tbwDetalle.setItem(self.tbwFila, 4, item2)
        #muevo el cursor a la celda cantidad
        self.tbwDetalle.setCurrentCell(self.tbwFila, 2)
        
el bucle se arma a partir de 1), el codigo desde a) hasta 1), lo uso en
otras tablewidget sin este problemam alguien ve algo que esta mal?

agrego que el bucle se repite tantas veces como registros hay en la tabla
articulos, y se muestra cBArt, instancia de
ctrlBuscarArt.ctrlBArticulos(), que es una ventana que permite buscar en
la tabla de articulos.

desde ya gracias

Fernando





More information about the pyar mailing list