def __init__(self, *args, **kwargs): self.i = 0 # REMOVEIT! QtGui.QWidget.__init__(self, *args, **kwargs) self.ui = Ui_FormExibir() self.ui.setupUi(self) self.setMinimumWidth(550) self.setMinimumHeight(380) self.ui.txtNome.textChanged.connect(self.nameChanged) self.ui.btTodos.clicked.connect(self.botaoTodos) self.ui.btDeletar.clicked.connect(self.deleteOS) self.podeAtualizarSomatorio = False # self.setWindowTitle("Exibição de OSs") try: # Variaveis de sessão do banco de dados Session = sessionmaker(bind=engine) self.session = Session() except Exception as e: lineno, fname = get_filename_lnumber() enviaEmail(e.message, fname, lineno) try: seta_locale(True) # Pega todos os registros da tabela OS e adequa o tableWidget à tabela self.clientes = self.session.query( OS).all( ) # .with_entities(OS.nome, OS.armacao) # # .filter_by(nome="Ronnie").first() self.ui.tableWidget.setRowCount(len(self.clientes)) # Pega os headers da tabela e os insere em tableWidget self.setHeader() # Insere os dados da tabela no tableWidget self.showData() self.podeAtualizarSomatorio = True except Exception as e: lineno, fname = get_filename_lnumber() enviaEmail(e.message, fname, lineno)
class ExibirOSS(QtGui.QWidget): def __init__(self, *args, **kwargs): self.i = 0 # REMOVEIT! QtGui.QWidget.__init__(self, *args, **kwargs) self.ui = Ui_FormExibir() self.ui.setupUi(self) self.setMinimumWidth(550) self.setMinimumHeight(380) self.ui.txtNome.textChanged.connect(self.nameChanged) self.ui.btTodos.clicked.connect(self.botaoTodos) self.ui.btDeletar.clicked.connect(self.deleteOS) self.podeAtualizarSomatorio = False # self.setWindowTitle("Exibição de OSs") try: # Variaveis de sessão do banco de dados Session = sessionmaker(bind=engine) self.session = Session() except Exception as e: lineno, fname = get_filename_lnumber() enviaEmail(e.message, fname, lineno) try: seta_locale(True) # Pega todos os registros da tabela OS e adequa o tableWidget à tabela self.clientes = self.session.query( OS).all( ) # .with_entities(OS.nome, OS.armacao) # # .filter_by(nome="Ronnie").first() self.ui.tableWidget.setRowCount(len(self.clientes)) # Pega os headers da tabela e os insere em tableWidget self.setHeader() # Insere os dados da tabela no tableWidget self.showData() self.podeAtualizarSomatorio = True except Exception as e: lineno, fname = get_filename_lnumber() enviaEmail(e.message, fname, lineno) def botaoTodos(self): self.clientes = self.session.query(OS).all() self.ui.txtNome.setText('') self.showData() self.mostrando = False pai = self.ui.textGLDP.parentWidget() if (pai is not None): for tipo in (QtGui.QLineEdit, QtGui.QTextEdit): for filhos in pai.findChildren(tipo): filhos.setText("") self.ui.btGerarRelatorio.setEnabled(True) def setHeader(self): try: self.header = [] self.bigHeader = [] self.numCol = 4 for col in self.clientes[0].__table__.columns: # if col.name not in "id": self.header.append(col.name) self.bigHeader.append(col.name.capitalize()) self.ui.tableWidget.setColumnCount(len(self.header[0:self.numCol])) self.ui.tableWidget.setHorizontalHeaderLabels(self.bigHeader[0:self.numCol]) except Exception as ex: mostrarMessageBox("Erro", u"Não há registros para exibir") lineno, fname = get_filename_lnumber() enviaEmail(ex.message, fname, lineno) def showData(self): seta_locale(True) self.ui.tableWidget.setRowCount(len(self.clientes)) self.ui.tableWidget.setColumnCount(len(self.header[0:self.numCol])) for row, cliente in enumerate(self.clientes): di = row2dict(cliente) for index, item in enumerate(self.header[0:self.numCol]): novaCel = QtGui.QTableWidgetItem(str(di[item])) # if(index == 0): naoPermitirAlteracoes(novaCel) self.ui.tableWidget.setItem(row, index, novaCel) # if( self.podeAtualizarSomatorio == True ): print(self.i) self.i += 1 #REMOVEIT! self.ui.tableWidget.update() atualizarSomatorioPrecos(self.ui.tableWidget, self.ui.lbTot) # FIXME! this call generate error! def deleteOS(self): try: idProcurada = self.ui.tableWidget.item(self.ui.tableWidget.currentRow(), 0) idP = idProcurada.text() self.session.query(OS).filter(OS.id == int(idProcurada.text())).delete() self.session.commit() self.showData() mostrarMessageBox("Deletar", "OS %s deletada" % idP) self.botaoTodos() except Exception as ex: print ex lineno, fname = get_filename_lnumber() enviaEmail(ex.message, fname, lineno) def queryOSid(self, idx, numColumns): seta_locale(True) try: oss = self.session.query(OS).filter(OS.id == idx).all() self.ui.tableWidget.setRowCount(len(oss)) self.ui.tableWidget.setColumnCount(len(self.header[0:numColumns])) self.ui.tableWidget.setHorizontalHeaderLabels(self.bigHeader[0:numColumns]) # Insere os dados da tabela no tableWidget #di = row2dict(oss) for row, cliente in enumerate(oss): di = row2dict(cliente) for index, item in enumerate(self.header[0:numColumns]): self.ui.tableWidget.setItem( row, index, QtGui.QTableWidgetItem(unicode(di[item]))) return di except Exception as ex: print ex lineno, fname = get_filename_lnumber() enviaEmail(ex.message, fname, lineno) def queryOS(self, txtnome): seta_locale(True) try: oss = self.session.query(OS).filter(OS.nome.contains(txtnome)).all() self.ui.tableWidget.setRowCount(len(oss)) # Insere os dados da tabela no tableWidget for row, cliente in enumerate(oss): di = row2dict(cliente) for index, item in enumerate(self.header[0:4]): self.ui.tableWidget.setItem( row, index, QtGui.QTableWidgetItem(str(di[item]))) atualizarSomatorioPrecos(self.ui.tableWidget, self.ui.lbTot) #< may generate error except Exception as ex: print ex lineno, fname = get_filename_lnumber() enviaEmail(ex.message, fname, lineno) def nameChanged(self): self.setHeader() self.queryOS(self.ui.txtNome.text()) def gerarPlanilha(self): # print("valor (1,1) = %s" % (self.ui.tableWidget.item(0,2).text() ) ) [todasCelulasEstaoVazias, dadosDaTabela] = getAllTableData( self.ui.tableWidget) if (todasCelulasEstaoVazias is False): r = Relatorio(dados=dadosDaTabela) r.gerarRelatorio() mostrarMessageBox("Relatorio", u"O relatório se encontrará na área de trabalho.\n") else: mostrarMessageBox( "Erro", u"O filtro escolhido não exibe dados, por favor escolha outro filtro.") pass mostrando = False def mostrarForm(self, query): self.ui.textGLDP.setText(str(query["grauLongeDP"])) self.ui.textGLOD.setText(str(query["grauLongeOD"])) self.ui.textGLODCIL.setText(str(query["grauLongeODCIL"])) self.ui.textGLODEI.setText(str(query["grauLongeODEIXO"])) self.ui.textGLOE.setText(str(query["grauLongeOE"])) self.ui.textGLOECIL.setText(str(query["grauLongeOECIL"])) self.ui.textGLOEEI.setText(str(query["grauLongeOEEIXO"])) self.ui.textGPDP.setText(str(query["grauPertoDP"])) self.ui.textGPOD.setText(str(query["grauPertoOD"])) self.ui.textGPODCIL.setText(str(query["grauPertoODCIL"])) self.ui.textGPODEI.setText(str(query["grauPertoODEIXO"])) self.ui.textGPOE.setText(str(query["grauPertoOE"])) self.ui.textGPOECIL.setText(str(query["grauPertoOECIL"])) self.ui.textGPOEEI.setText(str(query["grauPertoOEEIXO"])) def mostrarDetalhes(self): if not self.mostrando: self.ui.btGerarRelatorio.setEnabled(False) linhaAtual = self.ui.tableWidget.currentRow() if self.ui.tableWidget.rowCount() == 1: idProcurada = self.ui.tableWidget.item(0, 0) query = self.queryOSid(int(idProcurada.text()), len(self.clientes[0].__table__.columns)) self.mostrarForm(query) if (linhaAtual != -1): # ZERO e' a primeira coluna (do id procurado) idProcurada = self.ui.tableWidget.item(linhaAtual, 0) # print(" idProcurada ====== %s" % idProcurada.text()) query = self.queryOSid(int(idProcurada.text()), len(self.clientes[0].__table__.columns)) self.mostrarForm(query) self.mostrando = True else: self.ui.btGerarRelatorio.setEnabled(True) linhaAtual = self.ui.tableWidget.currentRow() if self.ui.tableWidget.rowCount() == 1: idProcurada = self.ui.tableWidget.item(0, 0) query = self.queryOSid(int(idProcurada.text()), self.numCol) if (linhaAtual != -1): # ZERO e' a primeira coluna (do id procurado) idProcurada = self.ui.tableWidget.item(linhaAtual, 0) # print(" idProcurada ====== %s" % idProcurada.text()) query = self.queryOSid(int(idProcurada.text()), self.numCol) self.mostrando = False