def buscarAS400(self, event): """ Carga los posibles resultados de la búsqueda del AS400 en listaResultado """ # todo: sector, subsector, producto busquedaMarca = u"'%{}%'".format(self.txMarca.GetValue().upper()) # queryMarca = "SELECT * FROM INFOCDM.CDMPMR00 JOIN INFOCDM.CDMPPR00 ON INFOCDM.CDMPMR00.MRFMSC=INFOCDM.CDMPPR00.PRFMSC AND INFOCDM.CDMPMR00.MRSUBT=INFOCDM.CDMPPR00.PRSUBT AND INFOCDM.CDMPMR00.MRPROD=INFOCDM.CDMPPR00.PRPROD WHERE CAMARC LIKE %s" % busquedaMarca queryMarca = "SELECT * FROM CDMPMR00 WHERE CAMARC LIKE %s" % busquedaMarca if self.txModelo.GetValue() != "": busquedaModelo = u"'%{}%'".format(self.txModelo.GetValue().upper()) queryModelo = " AND CAMODE LIKE %s" % busquedaModelo else: queryModelo = "" # if self.txSector.GetValue() != "": # busquedaSector = u"'%{}%'".format(self.txSector.GetValue()) # querySector = " AND PRFMSC LIKE %s" % busquedaSector # else: # querySector = "" # # Por si hace falta buscar por sector escribiéndolo # #sectoresNum = [] # # sector = self.txSector.GetValue().upper() # # sectores = [x["PRDESC"] for x in self.listaSectorSubsectorProducto if x["PRSUBT"] == '' and x["PRPROD"] == ''] # # matching = [x for x in sectores if sector in x] # # for m in matching: # # sectorNum = self.extraerSectorSubsectorProducto(m)[0] # # sectoresNum.append(sectorNum) # # busquedaSector = u"'{}'".format(sectoresNum[0]) # # querySector = " AND PRFMSC = %s" % busquedaSector # # for m in sectoresNum[1:]: # # busquedaSector = u"'{}'".format(m) # # querySector += " OR" + queryMarca + " AND PRFMSC = %s" % busquedaSector # # if self.txSubsector.GetValue() != "": # busquedaSubsector = u"'%{}%'".format(self.txSubsector.GetValue()) # querySubsector = " AND PRSUBT LIKE %s" % busquedaSubsector # else: # querySubsector = "" # # if self.txProducto.GetValue() != "": # busquedaProducto = u"'%{}%'".format(self.txProducto.GetValue()) # queryProducto = " AND PRPROD LIKE %s" % busquedaProducto # else: # queryProducto = "" self.limpiarCB() query = queryMarca + queryModelo # + querySector + querySubsector + queryProducto print query cursorAS400.execute(query) columnas = [columna[0] for columna in cursorAS400.description] for resultado in cursorAS400.fetchall(): self.listaResultado.append(dict(zip(columnas, resultado))) self.actualizarCB()
def cargarSectorSubsectoProducto(self): """ Carga todos los sectores, subsectores y productos en listaSectorSubsectorProducto """ try: cursorAS400.execute("SELECT * FROM INFOCDM.CDMPPR00") except: cursorAS400.execute("SELECT * FROM CDMPPR00") columnas = [columna[0] for columna in cursorAS400.description] for resultado in cursorAS400.fetchall(): self.listaSectorSubsectorProducto.append(dict(zip(columnas, resultado)))
def cargarSoportes(self): """ Carga todos los soportes de radio en una lista """ # cursorAS400.execute( # "SELECT * FROM INFOXXI.INFSOPORT JOIN INFOCDM.cdmppo00n ON INFOXXI.INFSOPORT.IDSOPOR1=INFOCDM.cdmppo00n.RAONDA AND INFOXXI.INFSOPORT.IDSOPOR2=INFOCDM.cdmppo00n.RACADN AND INFOXXI.INFSOPORT.IDSOPOR3=INFOCDM.cdmppo00n.RAEMIS WHERE IDMEDIOS LIKE 'RD'") try: cursorAS400.execute("SELECT * FROM INFOXXI.INFSOPORT WHERE IDMEDIOS = 'RD'") except: cursorAS400.execute("SELECT * FROM INFSOPORT WHERE IDMEDIOS = 'RD'") columnas = [columna[0] for columna in cursorAS400.description] for resultado in cursorAS400.fetchall(): self.listaSoportes.append(dict(zip(columnas, resultado)))
def cargarTipos(self): """ Carga los tipos de anuncios en listaTipoAnuncios :return: """ try: cursorAS400.execute("SELECT * FROM INFOXXI.INFFRANUN WHERE IDMEDIOS = 'RD'") except: cursorAS400.execute("SELECT * FROM INFFRANUN WHERE IDMEDIOS = 'RD'") columnas = [columna[0] for columna in cursorAS400.description] for resultado in cursorAS400.fetchall(): self.listaTipoAnuncios.append(dict(zip(columnas, resultado))) listaDesc = [] for desc in self.listaTipoAnuncios: listaDesc.append(desc["CDESCRIPCI"]) self.cbTipoAnuncio.AppendItems(listaDesc)
def cargarProgramas(self): query = "SELECT * FROM INFOCDM.cdmppo00n WHERE DIASEM = '" + self.dias_semana[ self.comienzo.isoweekday()] + "' and RAEMIS = '" + self.emision + "' AND ((PGHORA * 3600) + (PGMINT * 60)) < ((" + str( self.comienzo.hour) + " * 3600) + (" + str( self.comienzo.minute) + " * 60)) ORDER BY PGHORA DESC, PGMINT DESC FETCH FIRST 1 ROW ONLY" print "queryCargarProgramas" print query # try: cursorAS400.execute(query) # except: # cursorAS400.execute("SELECT * FROM cdmppo00n") columnas = [columna[0] for columna in cursorAS400.description] for resultado in cursorAS400.fetchall(): self.listaProgramas.append(dict(zip(columnas, resultado))) print "listaProgramas {}".format(self.listaProgramas)
def EvtChar(self, event): if event.GetKeyCode() == 8 and len(self.currentText) > 4: self.currentText = self.currentText[:-1] self.ChangeValue(self.currentText) self.choices = [] busqueda = u"'%{}%'".format(self.currentText) print busqueda cursor.execute( "SELECT DISTINCT %s FROM %s WHERE %s LIKE %s" % (self.campotabla, self.tabla, self.campotabla, busqueda) ) resultados = cursor.fetchall() for resultado in resultados: # print resultado[0] self.choices.append(resultado[0]) # si hemos borrado tod0 el texto, reiniciamos la lista de opciones if self.IsTextEmpty(): self.Clear() self.AppendItems(self.choices) else: self.actualizar(event) else: event.Skip()
def EvtText(self, event): if self.ignoreText: self.ignoreText = False event.Skip() else: self.currentText = event.GetString().upper() if len(self.currentText) == 4: self.Clear() self.choices = [] busqueda = u"'%{}%'".format(self.currentText) print busqueda cursor.execute( "SELECT DISTINCT %s FROM %s WHERE %s LIKE %s" % ( self.campotabla, self.tabla, self.campotabla, busqueda)) resultados = cursor.fetchall() for resultado in resultados: self.choices.append(resultado[0]) elif len(self.currentText) == 0: self.choices = [] self.Clear() self.actualizar(event)
def EvtChar(self, event): if event.GetKeyCode() == 8 and len(self.currentText) > 4: self.currentText = self.currentText[:-1] self.ChangeValue(self.currentText) self.choices = [] busqueda = u"'%{}%'".format(self.currentText) print busqueda cursor.execute( "SELECT DISTINCT %s FROM %s WHERE %s LIKE %s" % ( self.campotabla, self.tabla, self.campotabla, busqueda)) resultados = cursor.fetchall() for resultado in resultados: # print resultado[0] self.choices.append(resultado[0]) # si hemos borrado tod0 el texto, reiniciamos la lista de opciones if self.IsTextEmpty(): self.Clear() self.AppendItems(self.choices) else: self.actualizar(event) else: event.Skip()
def EvtText(self, event): if self.ignoreText: self.ignoreText = False event.Skip() else: self.currentText = event.GetString().upper() if len(self.currentText) == 4: self.Clear() self.choices = [] busqueda = u"'%{}%'".format(self.currentText) print busqueda cursor.execute( "SELECT DISTINCT %s FROM %s WHERE %s LIKE %s" % (self.campotabla, self.tabla, self.campotabla, busqueda) ) resultados = cursor.fetchall() for resultado in resultados: self.choices.append(resultado[0]) elif len(self.currentText) == 0: self.choices = [] self.Clear() self.actualizar(event)