#include "devicelistform.h" #include "ui_devicelistform.h" #include "QTableView" #include "tablewidget.h" #include "QTextCodec" #include "devicedetailform.h" #include "realtimestatistics.h" #include <QSqlDatabase> #include <QSqlError> #include <QDebug> #include <QProcess> #include <QDesktopServices> #include <QSqlQuery> #include <QSqlRecord> #include <mainwindow.h> #include <QUrl> #include <Windows.h> #pragma comment(lib, "user32.lib") static QSqlDatabase db; static TableWidget *tableWidget; DeviceListForm::DeviceListForm(QString username,QWidget *parent) : QWidget(parent), username(username), ui(new Ui::DeviceListForm) { ui->setupUi(this); ui->textEdit->viewport()->installEventFilter(this); tableWidget = new TableWidget(this); tableWidget->btnText = QString::fromLocal8Bit("查看详情"); tableWidget->devicelistform = this; on_search_clicked(); ui->datalist->addWidget(tableWidget); } DeviceListForm::~DeviceListForm() { delete ui; } void DeviceListForm::on_export_data_clicked() { DeviceDetailForm *new_win = new DeviceDetailForm(""); new_win->setWindowTitle(QString::fromLocal8Bit("新增设备")); new_win->show(); } void DeviceListForm::on_search_clicked() { QStringList header; QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312")); if(ui->deivcetype->currentText()==QString::fromLocal8Bit("运行设备")){ header<<QString::fromLocal8Bit("设备位号")<<QString::fromLocal8Bit("设备名称") <<QString::fromLocal8Bit("规格/型号")<<QString::fromLocal8Bit("维修保养日期")<<QString::fromLocal8Bit("场站")<<QString::fromLocal8Bit("操作"); }else{ header<<QString::fromLocal8Bit("设备位号")<<QString::fromLocal8Bit("设备名称") <<QString::fromLocal8Bit("信号描述")<<QString::fromLocal8Bit("信号类型")<<QString::fromLocal8Bit("场站")<<QString::fromLocal8Bit("备注"); } tableWidget->set_title(header); tableWidget->set_columnWidth(1,130); tableWidget->set_columnWidth(2,200); tableWidget->set_columnWidth(3,160); tableWidget->set_columnWidth(4,80); tableWidget->set_columnWidth(0,130); QVector<QString> vector; QVector<QVector<QString> > curr_data; db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName(MainWindow::ip); db.setDatabaseName("brtyx"); db.setPort(3306); db.setUserName("root"); db.setPassword("123456"); bool ok = db.open(); if(ok){ QString str; if(ui->deivcetype->currentText()==QString::fromLocal8Bit("运行设备")){ if(ui->textEdit->toPlainText()==""){ str = "select * from device"; } else { str = QString::fromLocal8Bit("select * from device where 设备名称 like '%%1%' or 位号 like '%%1%' or 场站 like '%%1%'").arg(ui->textEdit->toPlainText()); } QSqlQuery query(str); QSqlRecord rec = query.record(); while(query.next()) { vector.clear(); vector.append(query.value(QString::fromLocal8Bit("位号")).toString()); vector.append(query.value(QString::fromLocal8Bit("设备名称")).toString()); vector.append(query.value(QString::fromLocal8Bit("规格型号")).toString()); vector.append(query.value(QString::fromLocal8Bit("维修保养时间")).toString()); vector.append(query.value(QString::fromLocal8Bit("场站")).toString()); vector.append(query.value("id").toString()); curr_data.append(vector); } } else { if(ui->textEdit->toPlainText()==""){ str = "select * from monitordevice"; } else if(ui->textEdit->toPlainText()!=""){ str = QString::fromLocal8Bit("select * from monitordevice where position like '%%1%' or code like '%%1%' or station like '%%1%'").arg(ui->textEdit->toPlainText()); } else { str = ""; } QSqlQuery query1(str); QSqlRecord rec1 = query1.record(); while(query1.next()) { vector.clear(); vector.append(query1.value(QString::fromLocal8Bit("code")).toString()); vector.append(query1.value(QString::fromLocal8Bit("position")).toString()); vector.append(query1.value(QString::fromLocal8Bit("signal_description")).toString()); vector.append(query1.value(QString::fromLocal8Bit("signal_type")).toString()); vector.append(query1.value(QString::fromLocal8Bit("station")).toString()); vector.append(query1.value("remark").toString()); curr_data.append(vector); } } tableWidget->curr_page = 0; tableWidget->updata_data(curr_data); } QString str = QString::fromLocal8Bit("INSERT INTO operation (username, part, name, operation,operationtime) VALUES ('%1', '%2','%3', '%4','%5')") .arg(username) .arg(QString::fromLocal8Bit("设备管理")) .arg(QString::fromLocal8Bit("设备列表")) .arg(QString::fromLocal8Bit("查看详情")) .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); // qDebug()<<str; QSqlQuery query2(str); } void DeviceListForm::submit() { QStringList header; QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312")); if(ui->deivcetype->currentText()==QString::fromLocal8Bit("运行设备")){ header<<QString::fromLocal8Bit("设备位号")<<QString::fromLocal8Bit("设备名称") <<QString::fromLocal8Bit("规格/型号")<<QString::fromLocal8Bit("维修保养日期")<<QString::fromLocal8Bit("场站")<<QString::fromLocal8Bit("操作"); }else{ header<<QString::fromLocal8Bit("设备位号")<<QString::fromLocal8Bit("设备名称") <<QString::fromLocal8Bit("信号描述")<<QString::fromLocal8Bit("信号类型")<<QString::fromLocal8Bit("场站")<<QString::fromLocal8Bit("备注"); } tableWidget->set_title(header); tableWidget->set_columnWidth(1,130); tableWidget->set_columnWidth(2,200); tableWidget->set_columnWidth(3,160); tableWidget->set_columnWidth(4,80); tableWidget->set_columnWidth(0,130); QVector<QString> vector; QVector<QVector<QString> > curr_data; db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName(MainWindow::ip); db.setDatabaseName("brtyx"); db.setPort(3306); db.setUserName("root"); db.setPassword("123456"); bool ok = db.open(); if(ok){ QString str; if(ui->deivcetype->currentText()==QString::fromLocal8Bit("运行设备")){ if(ui->textEdit->toPlainText()==""){ str = "select * from device"; } else { str = QString::fromLocal8Bit("select * from device where 设备名称 like '%%1%' or 位号 like '%%1%' or 场站 like '%%1%'").arg(ui->textEdit->toPlainText()); } QSqlQuery query(str); QSqlRecord rec = query.record(); while(query.next()) { vector.clear(); vector.append(query.value(QString::fromLocal8Bit("位号")).toString()); vector.append(query.value(QString::fromLocal8Bit("设备名称")).toString()); vector.append(query.value(QString::fromLocal8Bit("规格型号")).toString()); vector.append(query.value(QString::fromLocal8Bit("维修保养时间")).toString()); vector.append(query.value(QString::fromLocal8Bit("场站")).toString()); vector.append(query.value("id").toString()); curr_data.append(vector); } } else { if(ui->textEdit->toPlainText()==""){ str = "select * from monitordevice"; } else if(ui->textEdit->toPlainText()!=""){ str = QString::fromLocal8Bit("select * from monitordevice where position like '%%1%' or code like '%%1%' or station like '%%1%'").arg(ui->textEdit->toPlainText()); } else { str = ""; } QSqlQuery query1(str); QSqlRecord rec1 = query1.record(); while(query1.next()) { vector.clear(); vector.append(query1.value(QString::fromLocal8Bit("code")).toString()); vector.append(query1.value(QString::fromLocal8Bit("position")).toString()); vector.append(query1.value(QString::fromLocal8Bit("signal_description")).toString()); vector.append(query1.value(QString::fromLocal8Bit("signal_type")).toString()); vector.append(query1.value(QString::fromLocal8Bit("station")).toString()); vector.append(query1.value("remark").toString()); curr_data.append(vector); } } tableWidget->updata_data(curr_data); } } void DeviceListForm::check(QString id) { DeviceDetailForm *new_win = new DeviceDetailForm(id,this); new_win->setWindowTitle(QString::fromLocal8Bit("编辑设备")); new_win->show(); } //事件过滤器 bool DeviceListForm::eventFilter(QObject *watched, QEvent *event) { if(watched==ui->textEdit->viewport() && event->type()==QEvent::MouseButtonPress){ ui->textEdit->setFocus(); int pInt = QProcess::execute("taskkill /im osk.exe /f"); QDesktopServices::openUrl(QUrl("osk.exe", QUrl::TolerantMode)); } return QWidget::eventFilter(watched,event); }