#include "devicedetailform.h" #include "ui_devicedetailform.h" #include "qcustomcalendarwidget.h" #include "QDateTimeEdit" #include <QSqlDatabase> #include <QSqlError> #include <QDebug> #include <QSqlQuery> #include <QSqlRecord> #include <QMessageBox> #include <QTextCodec> #include <QUrl> #include <Windows.h> #include <mainwindow.h> #include <QProcess> #include <QDesktopServices> static QSqlDatabase db; static QString state; static QDateTimeEdit *dateEdit2,*dateEdit3; DeviceDetailForm::DeviceDetailForm(QString id,DeviceListForm *deviceListForm, QWidget *parent) : QWidget(parent), id(id), deviceListFrom(deviceListForm), ui(new Ui::DeviceDetailForm) { ui->setupUi(this); ui->devicename->viewport()->installEventFilter(this); ui->devicecode->viewport()->installEventFilter(this); ui->devicemodel->viewport()->installEventFilter(this); ui->part->viewport()->installEventFilter(this); ui->index->viewport()->installEventFilter(this); QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate(), this); QCustomCalendarWidget* calendarWidget = new QCustomCalendarWidget(this); dateEdit->setCalendarPopup(true); // 日历弹出 dateEdit->setCalendarWidget(calendarWidget); dateEdit->setContextMenuPolicy(Qt::NoContextMenu); dateEdit->setFixedSize(150, 26); dateEdit->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); calendarWidget->disconnect(SIGNAL(selectionChanged())); calendarWidget->disconnect(SIGNAL(clicked(QDate))); connect(calendarWidget, &QCustomCalendarWidget::signalSetCalendarTime, [dateEdit](const QDate& data) { dateEdit->setDate(data); }); dateEdit->setObjectName(QString::fromUtf8("devicecreate")); dateEdit->setMinimumSize(256,37); dateEdit->setMaximumSize(256,37); QFont decorationFont("Microsoft Yahei", 11); dateEdit->setFont(decorationFont); ui->createdate->addWidget(dateEdit); QDateTimeEdit *dateEdit1 = new QDateTimeEdit(QDate::currentDate(), this); QCustomCalendarWidget* calendarWidget1 = new QCustomCalendarWidget(this); dateEdit1->setCalendarPopup(true); // 日历弹出 dateEdit1->setCalendarWidget(calendarWidget1); dateEdit1->setContextMenuPolicy(Qt::NoContextMenu); dateEdit1->setFixedSize(150, 26); dateEdit1->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); calendarWidget1->disconnect(SIGNAL(selectionChanged())); calendarWidget1->disconnect(SIGNAL(clicked(QDate))); connect(calendarWidget1, &QCustomCalendarWidget::signalSetCalendarTime, [dateEdit1](const QDate& data){ dateEdit1->setDate(data); }); dateEdit1->setObjectName(QString::fromUtf8("devicecare")); dateEdit1->setMinimumSize(256,37); dateEdit1->setMaximumSize(256,37); dateEdit1->setFont(decorationFont); ui->caredate->addWidget(dateEdit1); dateEdit2 = dateEdit; dateEdit3 = dateEdit1; if(id==""){ state = "create"; }else{ state = "update"; 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){ QSqlQuery query( QString("select * from device where id =%1").arg(id),db); QSqlRecord rec = query.record(); while(query.next()) { ui->devicename->setText(query.value(QString::fromLocal8Bit("设备名称")).toString()); ui->devicecode->setText(query.value(QString::fromLocal8Bit("位号")).toString()); ui->devicemodel->setText(query.value(QString::fromLocal8Bit("规格型号")).toString()); ui->part->setText(query.value(QString::fromLocal8Bit("功能区")).toString()); ui->index->setText(query.value(QString::fromLocal8Bit("序号")).toString()); ui->station->setText(query.value(QString::fromLocal8Bit("场站")).toString()); dateEdit->setDate(query.value(QString::fromLocal8Bit("生产日期")).toDate()); dateEdit1->setDate(query.value(QString::fromLocal8Bit("维修保养时间")).toDate()); } } } connect(this,SIGNAL(sendMsg()),deviceListForm,SLOT(submit())); } DeviceDetailForm::~DeviceDetailForm() { delete ui; } void DeviceDetailForm::on_pushButton_clicked() { int pInt = QProcess::execute("taskkill /im osk.exe /f"); this->close(); } void DeviceDetailForm::on_pushButton_2_clicked() { int pInt = QProcess::execute("taskkill /im osk.exe /f"); QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312")); if(ui->devicename->toPlainText()==""){ QMessageBox::critical(0, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请填写设备名称!")); return; }else if(ui->devicecode->toPlainText()==""){ QMessageBox::critical(0, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请填写设备位号!")); return; }else if(ui->devicemodel->toPlainText()==""){ QMessageBox::critical(0, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请填写规格/型号!")); return; }else if(ui->part->toPlainText()==""){ QMessageBox::critical(0, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请填写功能区!")); return; }else{ 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(state == "create"){ str = QString::fromLocal8Bit("INSERT INTO device (设备名称, 位号, 规格型号, 功能区, 序号, 生产日期, 维修保养时间, 场站) VALUES ('%1', '%2','%3', '%4','%5', '%6','%7','%8')") .arg(ui->devicename->toPlainText()).arg(ui->devicecode->toPlainText()) .arg(ui->devicemodel->toPlainText()).arg(ui->part->toPlainText()) .arg(ui->index->toPlainText()).arg(dateEdit2->text()) .arg(dateEdit3->text()).arg(ui->station->toPlainText()); }else if(state == "update"){ str = QString::fromLocal8Bit("UPDATE device SET 设备名称='%1', 位号='%2', 规格型号='%3', 功能区='%4', 序号='%5', 生产日期='%6', 维修保养时间='%7', 场站='%9' WHERE id=%8") .arg(ui->devicename->toPlainText()).arg(ui->devicecode->toPlainText()) .arg(ui->devicemodel->toPlainText()).arg(ui->part->toPlainText()) .arg(ui->index->toPlainText()) .arg(dateEdit3->text()).arg(dateEdit2->text()).arg(id).arg(ui->station->toPlainText()); } qDebug()<<str; QSqlQuery query(str); // query.exec(); QMessageBox::information(NULL, QString::fromLocal8Bit("提示"),QString::fromLocal8Bit("提交成功!"), QMessageBox::Yes ); emit sendMsg(); this->close(); } } QString str = QString::fromLocal8Bit("INSERT INTO operation (username, part, name, operation,operationtime) VALUES ('%1', '%2','%3', '%4','%5')") .arg(deviceListFrom->username) .arg(QString::fromLocal8Bit("设备管理")) .arg(QString::fromLocal8Bit("设备详情")) .arg(QString::fromLocal8Bit("编辑详情")) .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); // qDebug()<<str; QSqlQuery query1(str); } //事件过滤器 bool DeviceDetailForm::eventFilter(QObject *watched, QEvent *event) { if(event->type()==QEvent::MouseButtonPress){ if(watched==ui->devicename->viewport() ||watched==ui->devicecode->viewport() || watched==ui->devicemodel->viewport() || watched==ui->part->viewport() || watched==ui->index->viewport() ){ int pInt = QProcess::execute("taskkill /im osk.exe /f"); QDesktopServices::openUrl(QUrl("osk.exe", QUrl::TolerantMode)); } } return QWidget::eventFilter(watched,event); }