Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import time
- from numpy import arange, sin, pi
- from PyQt4 import QtGui
- from PyQt4 import QtCore
- from Matplot import Ui_MainWindow
- import pypyodbc
- import matplotlib.pyplot as plt
- from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
- from matplotlib.figure import Figure
- import random
- class cursorConnect():
- def __init__(self, ip, instance):
- self.cnxn = pypyodbc.connect('DRIVER={SQL SERVER};SERVER=' + ip + ";DATABASE=" + instance + ";Trusted_Connection=yes;")
- self.cursor = self.cnxn.cursor()
- class Main(QtGui.QMainWindow): #inherit QMainWindow class from the ui created with Qt designer. This class
- def __init__(self):
- QtGui.QMainWindow.__init__(self) #instantiate the inherited class
- self.ui = Ui_MainWindow() #set self.ui to the Ui_MainWindow object
- self.ui.setupUi(self) #Run setupUi function
- self.main_widget = QtGui.QWidget(self)
- self.thePlot = MyStaticMplCanvas(self.main_widget)
- self.thePlot.__init__(self)
- self.ui.gridLayout.addWidget(self.thePlot)
- #data = [random.random() for i in range(10)]
- self.getMezzdata()
- self.setupSignals()
- def getMezzdata(self):
- mezzNames = GetData('select Name from Mezzanines')
- mezzString = []
- for mezz in mezzNames:
- mezzString.append(mezz[0])
- self.ui.listWidget_Mezz.addItems(mezzString)
- def setupSignals(self):
- self.ui.listWidget_Mezz.itemClicked.connect(self.mezzSelected)
- self.ui.listWidget_Furnace.itemClicked.connect(self.furSelected)
- self.ui.listWidget_BouleID.itemClicked.connect(self.bouleIDSelected)
- self.ui.btn_Plot.clicked.connect(self.plotIT)
- #self.ui.btn_Plot.click
- def mezzSelected(self):
- mezzitemSelected = self.ui.listWidget_Mezz.selectedItems()
- mezzitemSelected = mezzitemSelected[0].text()
- sqlStatement="select Number from Furnaces F inner join Mezzanines M on F.MezzanineFK=M.PK where name='" + mezzitemSelected + "' order by F.Number"
- furnaceNames = GetData(sqlStatement)
- #x = np.shape(furnaceNames)
- furnaceInt = []
- for furnace in furnaceNames:
- furnaceInt.append(furnace[0])
- furnaceInt.sort()
- a = (str(furnace) for furnace in furnaceInt)
- furnaceStr = []
- for furnace in furnaceInt:
- furnaceStr.append(str(furnace))
- self.ui.listWidget_Furnace.clear()
- self.ui.listWidget_Furnace.addItems(furnaceStr)
- def furSelected(self):
- mezzitemSelected = self.ui.listWidget_Mezz.selectedItems()
- print(mezzitemSelected)
- mezzitemSelected = mezzitemSelected[0].text()
- furitemselected = self.ui.listWidget_Furnace.selectedItems()
- furitemselected = furitemselected[0].text()
- sqlStatement=("SELECT BIR.BouleID from BouleIDRecords BIR inner join Furnaces F"
- " on BIR.FurnaceFK=F.PK "
- "inner join Mezzanines M "
- "on F.MezzanineFK=M.PK where M.Name='" + mezzitemSelected + "' and F.Number='" + furitemselected + "'")
- print(sqlStatement)
- bouleIDData = GetData(sqlStatement)
- print(bouleIDData)
- bouleIDInt = []
- for bouleID in bouleIDData:
- bouleIDInt.append(bouleID[0])
- bouleIDInt.sort()
- #for boule in bouleIDInt:
- # print(boule)
- bouleIDStr = []
- for bouleID in bouleIDInt:
- bouleIDStr.append(str(bouleID))
- self.ui.listWidget_BouleID.clear()
- self.ui.listWidget_BouleID.addItems(bouleIDStr)
- def bouleIDSelected(self):
- print('hello')
- cursorObject = cursorConnect("GTASFDM", "GTAT_ASFData_PROD")
- #cursorObject.cursor.execute("select * top 1 from DataProcessLogs")
- #cursorObject.cursor.fetchall()
- cursorObject.cursor.execute('select top 1 * from dataprocesslogs')
- #thedescription = cursorObject.cursor.description
- columnnames = []
- for thevalue in cursorObject.cursor.description:
- columnnames.append(thevalue[0])
- print(columnnames[2])
- printType(columnnames[0])
- self.ui.listWidget_Columns.clear()
- self.ui.listWidget_Columns.addItems(columnnames)
- def plotIT(self):
- mezzitemSelected = self.ui.listWidget_Mezz.selectedItems()
- mezzitemSelected = mezzitemSelected[0].text()
- furitemselected = self.ui.listWidget_Furnace.selectedItems()
- furitemselected = furitemselected[0].text()
- bouleIDSelected = self.ui.listWidget_BouleID.selectedItems()
- bouleIDSelected = bouleIDSelected[0].text()
- columnSelected = self.ui.listWidget_Columns.selectedItems()
- columnSelected = columnSelected[0].text()
- sqlStatement = ("select time, " + columnSelected + " from vw_RunData "
- "where mezzaninename = '" + mezzitemSelected + "' and furnacenumber = "
- "'" + furitemselected + "' and bouleid = '" + bouleIDSelected + "' order by time")
- print(sqlStatement)
- rawData = GetData(sqlStatement)
- self.thePlot.axes = self.thePlot.fig.add_subplot(111)
- print('Before plot attempt')
- self.thePlot.axes.plot([1, 2])
- print('After plot attempt')
- class MyMplCanvas(FigureCanvas):
- def __init__(self, parent=None):
- self.fig = Figure() #(figsize=(width, height, dpi=dpi))
- #self.axes = self.fig.add_subplot(111)
- #self.axes.hold(False)
- #self.compute_initial_figure()
- FigureCanvas.__init__(self, self.fig)
- self.setParent(parent)
- #FigureCanvas.setSizePolicy(self,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
- #FigureCanvas.updateGeometry(self)
- def compute_initial_figure(self):
- pass
- class MyStaticMplCanvas(MyMplCanvas):
- """Simple canvas with a sine plot."""
- def compute_initial_figure(self):
- t = arange(0.0, 3.0, 0.01)
- s = sin(2*pi*t)
- #self.axes.plot([1,2])
- #self.axes.plot(t, s)
- def GetData(SQLString):
- cnxn = pypyodbc.connect('DRIVER={SQL SERVER};SERVER=GTASFDM;DATABASE=GTAT_ASFData_PROD;Trusted_Connection=yes;')
- cursor = cnxn.cursor()
- cursor.execute(SQLString)
- results = cursor.fetchall()
- """
- data = cursor.fetchall()
- theData = []
- if column == 1:
- for row in data:
- theData.append(row[0])
- return theData
- elif column == '*':
- return data
- """
- return results
- def printType(object):
- return print(type(object))
- def convert():
- pass
- if __name__ == '__main__':
- app = QtGui.QApplication(sys.argv)
- window = Main()
- window.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement