Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- # Form implementation generated from reading ui file '/home/pos/Development/DB_Change/Login.ui'
- #
- # Created by: PyQt5 UI code generator 5.8.1
- #
- # WARNING! All changes made in this file will be lost!
- import sys
- from PyQt5.QtWidgets import QApplication,QGridLayout,QMessageBox,QWidget,QTableWidget,QTableWidgetItem ,QTabWidget,QBoxLayout
- from PyQt5 import QtCore, QtWidgets
- from PyQt5.QtCore import Qt
- from PyQt5.QtSql import QSqlDatabase,QSqlQuery
- import datetime
- import logging
- import os
- dirname ="LogFolder"
- if not os.path.isdir("./" + dirname + "/"):
- os.mkdir("./" + dirname + "/")
- DB_Browser_logger= logging.getLogger()
- DB_Browser_logger.setLevel(logging.DEBUG) # or whatever
- today=datetime.date.today()
- handler = logging.FileHandler('./LogFolder/Logfile_%s.log'%today, 'w', 'utf-8') # or whatever
- handler.setFormatter = logging.Formatter('%(name)s %(message)s') # or whatever
- DB_Browser_logger.addHandler(handler)
- __author__ = "ko john <kimo87@gmail.com>"
- class ServerTable(QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(ServerTable, self).__init__(parent=parent)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db =QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password )
- self.layout.addWidget(self.table)
- self.Seleccionar()
- self.table.itemChanged.connect(self.Actualizar)
- def Seleccionar(self):
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount(4)
- self.table.setHorizontalHeaderLabels(["Pid","Server_ip","Server_id","Server_Pwd"])
- row=0
- sql="select * from stt_server"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- pid=QTableWidgetItem(str(query.value(0)))
- server_ip=QTableWidgetItem(str(query.value(1)))
- server_id=QTableWidgetItem(str(query.value(2)))
- server_pwd=QTableWidgetItem(str(query.value(3)))
- self.table.setItem(row,0,pid)
- self.table.setItem(row, 1, server_ip)
- self.table.setItem(row, 2, server_id)
- self.table.setItem(row, 3, server_pwd)
- row=row+1
- self.db.close()
- def Actualizar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else :
- column=self.table.currentColumn()
- row=self.table.currentRow()
- Pid=self.table.item(row,0).text()
- value=self.table.currentItem().text()
- columns=["Pid","Server_ip","Server_id","Server_Pwd"]
- query=QSqlQuery()
- sql="UPDATE stt_server SET " +columns[column]+ "="+":value WHERE Pid=:Pid"
- query.prepare(sql)
- query.bindValue(":Pid",Pid)
- query.bindValue(":value",value)
- buttonReply = QMessageBox.question(self, 'Pos_DB_Browser message', "데이터를 수정합니까??",
- QMessageBox.Yes | QMessageBox.Cancel)
- if buttonReply == QMessageBox.Yes:
- estado=query.exec_()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- self.db.close()
- else :
- self.db.close()
- class StationTable(QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(StationTable, self).__init__(parent=parent)
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.layout.addWidget(self.table)
- self.Seleccionar()
- self.table.itemChanged.connect(self.Actualizar)
- def Seleccionar(self):
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount(3)
- self.table.setHorizontalHeaderLabels(['Id',"Station","Target_directory"])
- row=0
- sql="select * from stt_station"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- Id = QTableWidgetItem(str(query.value(0)))
- Station=QTableWidgetItem(str(query.value(1)))
- Target_directory=QTableWidgetItem(str(query.value(2)))
- self.table.setItem(row, 0 , Id)
- self.table.setItem(row, 1 , Station)
- self.table.setItem(row, 2 , Target_directory)
- row=row+1
- self.db.close()
- def Actualizar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- data = self.table.currentItem().text()
- estado = self.db.open()
- if estado == False:
- QMessageBox.warning(self, "Error", self.db.lastError().text(), QMessageBox.Discard)
- DB_Browser_logger.error("%s : Station_Table에서 오류가 생겼습니다." % datetime.datetime.now())
- else:
- DB_Browser_logger.info("%s : DB를 수정합니다. " % datetime.datetime.now())
- column = self.table.currentColumn()
- row = self.table.currentRow()
- id= self.table.item(row, 0).text()
- station=self.table.item(row, 1).text()
- value = self.table.currentItem().text()
- columns = ['Id',"Station","Target_directory"]
- query = QSqlQuery()
- DB_Browser_logger.info("%s : 컬럼 %s 의 index %s 값 %s 에서 %s로 수정합니다. " % (datetime.datetime.now(), columns[column] ,id ,station, value))
- sql = "UPDATE stt_station SET " + columns[column] + "=" + ":value WHERE id=:id"
- query.prepare(sql)
- query.bindValue(":id", id)
- query.bindValue(":value", value)
- buttonReply = QMessageBox.question(self, 'Pos_DB_Browser message', "데이터를 수정합니까??",
- QMessageBox.Yes | QMessageBox.Cancel)
- if buttonReply == QMessageBox.Yes:
- estado = query.exec_()
- if estado == False:
- QMessageBox.warning(self, "Error", self.db.lastError().text(), QMessageBox.Discard)
- sql2 = """UPDATE vtm_logdef_channel as channel inner join stt_logger_map as logger set logger.channel = channel.ChannelID , logger.logger_id=channel.VTMID
- where channel.station=:station and logger.id=:id"""
- query.prepare(sql2)
- query.bindValue(":station", station)
- query.bindValue(":id", id)
- estado = query.exec_()
- if estado == False:
- QMessageBox.warning(self, "Error", self.db.lastError().text(), QMessageBox.Discard)
- self.db.close()
- else :
- self.db.close()
- class Logger_MAP_Table(QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(Logger_MAP_Table, self).__init__(parent=parent)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- self.layout.addWidget(self.table)
- self.Seleccionar()
- def Seleccionar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount(5)
- self.table.setHorizontalHeaderLabels(["Id","Logger_ID","Channel","STT_Logger_ID","STT_Channel"])
- row=0
- sql="select * from stt_logger_map"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- Id=QTableWidgetItem(str(query.value(0)))
- Logger_ID=QTableWidgetItem(str(query.value(1)))
- Channel=QTableWidgetItem(str(query.value(2)))
- STT_Logger_ID=QTableWidgetItem(str(query.value(3)))
- STT_Channel=QTableWidgetItem(str(query.value(3)))
- self.table.setItem(row,0,Id)
- self.table.setItem(row, 1, Logger_ID)
- self.table.setItem(row, 2, Channel)
- self.table.setItem(row, 3, STT_Logger_ID)
- self.table.setItem(row, 4, STT_Channel)
- row=row+1
- self.db.close()
- class Logdef_Channel_Table(QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(Logdef_Channel_Table, self).__init__(parent=parent)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- self.layout.addWidget(self.table)
- self.Seleccionar()
- def Seleccionar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount(4)
- self.table.setHorizontalHeaderLabels(["VTMID","Channel_ID","SwitchID","Station"])
- row=0
- sql="select * from vtm_logdef_channel"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- VTMID=QTableWidgetItem(str(query.value(0)))
- Channel_ID=QTableWidgetItem(str(query.value(1)))
- SwitchID=QTableWidgetItem(str(query.value(2)))
- Station1=QTableWidgetItem(str(query.value(3)))
- Station2=QTableWidgetItem(str(query.value(4)))
- Station3=QTableWidgetItem(str(query.value(5)))
- self.table.setItem(row,0,VTMID)
- self.table.setItem(row, 1, Channel_ID)
- self.table.setItem(row, 2, SwitchID)
- self.table.setItem(row, 3, Station1)
- self.table.setItem(row, 4, Station2)
- self.table.setItem(row, 5, Station3)
- row=row+1
- self.db.close()
- class Voip_Setup_table(QWidget):
- def __init__(self,type,Ip,dbname,username,PW,parent=None):
- super(Voip_Setup_table, self).__init__(parent=parent)
- self.table=QTableWidget()
- self.layout = QGridLayout()
- self.setLayout(self.layout)
- self.table = QTableWidget()
- self.db_type = type
- self.db_Ip = Ip
- self.db_Name = dbname
- self.db_UsName = username
- self.db_Password = PW
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- self.layout.addWidget(self.table)
- self.Seleccionar()
- self.table.itemChanged.connect(self.Actualizar)
- def Seleccionar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else:
- self.table.setColumnCount(11)
- self.table.setHorizontalHeaderLabels(["Phone_CHannel","Phone_Ip","Phone_Number","System_CODE","MaxRecord_Time","Min_Callength",
- "Backup_Mode","Agent_Name","Chstatus","Usedtim","Dtimport"])
- row=0
- sql="select * from voipchsetup"
- query=QSqlQuery(sql)
- while query.next():
- self.table.insertRow(row)
- Phone_CHannel=QTableWidgetItem(str(query.value(0)))
- Phone_Ip=QTableWidgetItem(str(query.value(1)))
- Phone_Number=QTableWidgetItem(str(query.value(2)))
- System_CODE=QTableWidgetItem(str(query.value(3)))
- MaxRecord_Time=QTableWidgetItem(str(query.value(4)))
- Min_Callength=QTableWidgetItem(str(query.value(5)))
- Backup_Mode=QTableWidgetItem(str(query.value(6)))
- Agent_Name=QTableWidgetItem(str(query.value(7)))
- Chstatus=QTableWidgetItem(str(query.value(8)))
- Usedtim=QTableWidgetItem(str(query.value(9)))
- Dtimport=QTableWidgetItem(str(query.value(10)))
- self.table.setItem(row, 0 , Phone_CHannel)
- self.table.setItem(row, 1 , Phone_Ip)
- self.table.setItem(row, 2 , Phone_Number)
- self.table.setItem(row, 3 , System_CODE)
- self.table.setItem(row, 4 , MaxRecord_Time)
- self.table.setItem(row, 5 , Min_Callength)
- self.table.setItem(row, 6 , Backup_Mode)
- self.table.setItem(row, 7 , Agent_Name)
- self.table.setItem(row, 8 , Chstatus)
- self.table.setItem(row, 9 , Usedtim)
- self.table.setItem(row, 10, Dtimport)
- row=row+1
- self.db.close()
- def Actualizar(self):
- self.db = QSqlDatabase.addDatabase(self.db_type)
- self.db.setHostName(self.db_Ip)
- self.db.setDatabaseName(self.db_Name)
- self.db.setUserName(self.db_UsName)
- self.db.setPassword(self.db_Password)
- estado=self.db.open()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- else :
- column=self.table.currentColumn()
- row=self.table.currentRow()
- Phone_CHannel=self.table.item(row,0).text()
- value=self.table.currentItem().text()
- columns=["phone_ch","phone_ip","phone_num","system_code","maxrecordtime","mincalllength",
- "backupmode","agentname","chstatus","usedtim","dtimport"]
- query=QSqlQuery()
- sql="UPDATE voipchsetup SET " +columns[column]+ "="+":value WHERE phone_ch=:Phone_CHannel"
- query.prepare(sql)
- query.bindValue(":Phone_CHannel",Phone_CHannel)
- query.bindValue(":value",value)
- buttonReply = QMessageBox.question(self, 'Pos_DB_Browser message', "데이터를 수정합니까??",
- QMessageBox.Yes | QMessageBox.Cancel)
- if buttonReply == QMessageBox.Yes:
- estado=query.exec_()
- if estado==False:
- QMessageBox.warning(self,"Error",self.db.lastError().text(),QMessageBox.Discard)
- self.db.close()
- else :
- self.db.close()
- class MainForm(QWidget):
- def __init__(self,type,Ip,dbname,username,PW):
- QWidget.__init__(self, flags=Qt.Widget)
- DB_Browser_logger.info("%s : 프로그램을 동작 시킵니다. " % datetime.datetime.now())
- self.db_type = type
- self.db_Ip=Ip
- self.db_Name=dbname
- self.db_UsName=username
- self.db_Password=PW
- self.tbw = QTabWidget()
- self.init_widget()
- def init_widget(self):
- self.setWindowTitle("POS_DB_Browser")
- self.resize(800, 600)
- self.setMinimumSize(800,600)
- self.setMaximumSize(800,600)
- form_lbx = QBoxLayout(QBoxLayout.TopToBottom, parent=self)
- self.setLayout(form_lbx)
- form_lbx.addWidget(self.tbw)
- self.tab()
- def tab(self):
- self.tbw.addTab(ServerTable(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- ServerTable.__name__)
- self.tbw.addTab(StationTable(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- StationTable.__name__)
- self.tbw.addTab(Logger_MAP_Table(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- Logger_MAP_Table.__name__)
- self.tbw.addTab(Logdef_Channel_Table(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- Logdef_Channel_Table.__name__)
- self.tbw.addTab(Voip_Setup_table(self.db_type, self.db_Ip, self.db_Name, self.db_UsName, self.db_Password),
- Voip_Setup_table.__name__)
- class Ui_LoginFrom(QWidget):
- def setupUi(self, LoginFrom):
- LoginFrom.setObjectName("LoginFrom")
- LoginFrom.resize(350, 280)
- LoginFrom.setMinimumSize(QtCore.QSize(350, 280))
- LoginFrom.setMaximumSize(QtCore.QSize(350, 280))
- LoginFrom.setSizeIncrement(QtCore.QSize(350, 280))
- LoginFrom.setBaseSize(QtCore.QSize(350, 280))
- LoginFrom.setLocale(QtCore.QLocale(QtCore.QLocale.Korean, QtCore.QLocale.RepublicOfKorea))
- LoginFrom.setFrameShape(QtWidgets.QFrame.StyledPanel)
- LoginFrom.setFrameShadow(QtWidgets.QFrame.Raised)
- #label
- self.Servel_Label = QtWidgets.QLabel(LoginFrom)
- self.Servel_Label.setGeometry(QtCore.QRect(60, 30, 68, 17))
- self.Servel_Label.setObjectName("Servel_Label")
- self.ID_label = QtWidgets.QLabel(LoginFrom)
- self.ID_label.setGeometry(QtCore.QRect(100, 80, 31, 17))
- self.ID_label.setObjectName("ID_label")
- self.Pass_label = QtWidgets.QLabel(LoginFrom)
- self.Pass_label.setGeometry(QtCore.QRect(50, 130, 68, 17))
- self.Pass_label.setObjectName("Pass_label")
- self.DB_label = QtWidgets.QLabel(LoginFrom)
- self.DB_label.setGeometry(QtCore.QRect(50, 180, 71, 20))
- self.DB_label.setObjectName("DB_label")
- #오류형식
- self.Errorlabel = QtWidgets.QLabel(LoginFrom)
- self.Errorlabel.setGeometry(QtCore.QRect(20, 230, 201, 20))
- self.Errorlabel.setText("")
- self.Errorlabel.setObjectName("Errorlabel")
- #textbox
- self.ServerIp = QtWidgets.QLineEdit(LoginFrom)
- self.ServerIp.setGeometry(QtCore.QRect(130, 20, 211, 31))
- self.ServerIp.setInputMask("")
- self.ServerIp.setMaxLength(20)
- self.ServerIp.setObjectName("ServerIp")
- self.ID = QtWidgets.QLineEdit(LoginFrom)
- self.ID.setGeometry(QtCore.QRect(130, 70, 211, 31))
- self.ID.setMaxLength(20)
- self.ID.setObjectName("ID")
- self.Password = QtWidgets.QLineEdit(LoginFrom)
- self.Password.setGeometry(QtCore.QRect(130, 120, 211, 31))
- self.Password.setMaxLength(20)
- self.Password.setEchoMode(QtWidgets.QLineEdit.Password)
- self.Password.setObjectName("Password")
- self.Database = QtWidgets.QLineEdit(LoginFrom)
- self.Database.setGeometry(QtCore.QRect(130, 170, 211, 31))
- self.Database.setInputMask("")
- self.Database.setMaxLength(20)
- self.Database.setObjectName("Database")
- # button
- self.Login_Button = QtWidgets.QPushButton(LoginFrom)
- self.Login_Button.setGeometry(QtCore.QRect(230, 220, 111, 41))
- self.Login_Button.setObjectName("Login_Button")
- self.Login_Button.clicked.connect(self.login)
- self.retranslateUi(LoginFrom)
- QtCore.QMetaObject.connectSlotsByName(LoginFrom)
- def login(self):
- self.Databasetype="QMYSQL"
- self.server = self.ServerIp.text()
- self.user = self.ID.text()
- self.pw = self.Password.text()
- self.db = self.Database.text()
- try:
- self.mysqldb = QSqlDatabase.addDatabase(self.Databasetype)
- self.mysqldb.setHostName(self.server)
- self.mysqldb.setDatabaseName(self.user)
- self.mysqldb.setUserName(self.pw)
- self.mysqldb.setPassword(self.db)
- ok = self.mysqldb.open()
- if ok==False:
- pass
- else:
- self.dialog = MainForm(self.Databasetype,self.server,self.db,self.user,self.pw)
- self.dialog.show()
- except:
- QMessageBox.warning(self, "Error", self.db.lastError().text(), QMessageBox.Discard)
- def retranslateUi(self, LoginFrom):
- _translate = QtCore.QCoreApplication.translate
- LoginFrom.setWindowTitle(_translate("LoginFrom", "Login"))
- self.Login_Button.setText(_translate("LoginFrom", "Login"))
- self.Servel_Label.setText(_translate("LoginFrom", "Server Ip"))
- self.ID_label.setText(_translate("LoginFrom", "ID"))
- self.Pass_label.setText(_translate("LoginFrom", "Pass word"))
- self.DB_label.setText(_translate("LoginFrom", "Database"))
- if __name__ == "__main__":
- import sys
- app = QtWidgets.QApplication(sys.argv)
- LoginFrom = QtWidgets.QFrame()
- ui = Ui_LoginFrom()
- ui.setupUi(LoginFrom)
- LoginFrom.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement