Newer
Older
AutomaticVerification / softwareDirectory / AutoVerScheme / newcheckmethod.cpp
陈实 on 14 Mar 2024 6 KB 检定程序选择设备
#include "newcheckmethod.h"
#include "ui_newcheckmethod.h"
#include "checkdevice.h"
#include "qfiledialog.h"
#include "formcheckpoint.h"
#include <QMessageBox>
#include <QDebug>

NewCheckMethod::NewCheckMethod(QWidget *parent,QString sId) :
    QWidget(parent),
    methodId(sId),
    ui(new Ui::NewCheckMethod)
{
    ui->setupUi(this);
    ui->tableWidget->verticalHeader()->setParent(nullptr);
    for(int i=0;i<7;i++)
        ui->tableWidget->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch);
}


NewCheckMethod::~NewCheckMethod()
{
    delete ui;
}

void NewCheckMethod::getMethodInfo()
{
    if(methodId!="")
    {
        programInfo = BaseCommonApi::getVerificationProgramInfo(methodId);
        ui->lineEditName->setText(programInfo.program_name);
        ui->lineEditUser->setText(programInfo.create_name);
        ui->dateEditTime->setDateTime(programInfo.create_time);
        ui->lineEditMark->setText(programInfo.remark);
        if(programInfo.img_path!="")
        {
            //QImage img(programInfo.img_path);
            //QImage scalimg = img.scaled(ui->label_11->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
            //ui->label_11->setPixmap(QPixmap::fromImage(scalimg));
            QString strStyle = "QLabel{"
                               "image:url("+programInfo.img_path+");"
                               "}";
            qDebug() << "strStyle:" << strStyle ;
            ui->label_11->setStyleSheet(strStyle);
        }
        chooseDevices(programInfo.tested_device_id,programInfo.standard_device_id);
    }
}

void NewCheckMethod::showEvent(QShowEvent *event)
{
}

void NewCheckMethod::showCheckDevice()
{
    CheckDevice *checkWindow = new CheckDevice;
    checkWindow->newCheckWnd = this;
    checkWindow->setWindowState(Qt::WindowMaximized);
    checkWindow->setWindowModality(Qt::ApplicationModal);
    checkWindow->show();
}

void NewCheckMethod::choosePicture()
{
    QString sName = QFileDialog::getOpenFileName(this,"选择图片","","Image File(*.bmp *.jpg *.jpeg *.png)");
    //第一个参数:标准文件对话框的父窗口;第二个参数:标准文件对话框的标题;第三个参数:指定默认的目录;第四个参数:文件过滤器
    //QImage img(sName);
    //int WindowW = this->width();
    //int WindowH = this->height();
    //ui->label->setGeometry(0, 0, WindowW, WindowH);
    //QImage scalimg = img.scaled(ui->label_11->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    //ui->label_11->setPixmap(QPixmap::fromImage(scalimg));
    //ui->label_11->setPixmap(QPixmap(sName));
    QString strStyle = "QLabel{"
                       "image:url("+sName+");"
                       "}";
    //qDebug() << "strStyle:" << strStyle ;
    ui->label_11->setStyleSheet(strStyle);
    programInfo.img_path = sName;
}

void NewCheckMethod::deletePicture()
{
    ui->label_11->setStyleSheet("");
    programInfo.img_path = "";
}

void NewCheckMethod::showCheckPoint()
{
    FormCheckPoint *checkWindow = new FormCheckPoint;
    //checkWindow.setWindowState(Qt::WindowMaximized);
    checkWindow->setWindowModality(Qt::ApplicationModal);
    checkWindow->show();
}

void NewCheckMethod::on_pushButton_3_clicked()
{
    if(programInfo.id=="")
    {
        BaseCommonApi baseApi;
        qint64 id = baseApi.generateId();
        programInfo.id = QString::number(id);
        programInfo.program_name = ui->lineEditName->text();
        programInfo.create_name = ui->lineEditUser->text();
        programInfo.create_time = ui->dateEditTime->dateTime();
        programInfo.remark = ui->lineEditMark->text();
        //qDebug() << "programInfo.id" << programInfo.id ;
        if(BaseCommonApi::InsertVerificationProgramInfo(programInfo))
        {
            this->close();
        }else{
            QMessageBox::warning(this, "警告", "保存失败!");
        }
    }else{
        programInfo.program_name = ui->lineEditName->text();
        programInfo.create_name = ui->lineEditUser->text();
        programInfo.create_time = ui->dateEditTime->dateTime();
        programInfo.remark = ui->lineEditMark->text();
        if(BaseCommonApi::UpdateVerificationProgramInfo(programInfo))
        {
            this->close();
        }else{
            QMessageBox::warning(this, "警告", "保存失败!");
        }
    }
}

void NewCheckMethod::on_pushButton_4_clicked()
{
    this->close();
}

void NewCheckMethod::chooseDevices(QString checkIds, QString bizIds)
{
    programInfo.tested_device_id=checkIds;
    programInfo.standard_device_id = bizIds;
    ui->tableWidget->clearContents();
    ui->tableWidget->setRowCount(0);
    QStringList idList;
    int rowCount = 0;
    int row=0;
    if(checkIds!="")
    {
        idList = checkIds.split(",");
        for(const QString& id : idList)
        {
            QList<TestedCatDevice> result = BaseCommonApi::getTestedCatDevice(id);
            if(result.length()>0){
                rowCount = ui->tableWidget->rowCount();

                ui->tableWidget->insertRow(rowCount);
                ui->tableWidget->setItem(row, 0, new QTableWidgetItem("被检设备"));
                ui->tableWidget->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); //设置数据
                ui->tableWidget->setItem(row, 2, new QTableWidgetItem(result[0].model)); //设置数据
                ui->tableWidget->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); //设置数据
                ui->tableWidget->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); //设置数据
                ui->tableWidget->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer));
                row++;
            }
        }
        idList.clear();
    }

    if(bizIds!="")
    {
        idList = bizIds.split(",");
        for(const QString& id : idList)
        {
            QList<CatDeviceInfor> result = BaseCommonApi::getCatDeviceInfor(id);
            if(result.length()>0){
                rowCount = ui->tableWidget->rowCount();

                ui->tableWidget->insertRow(rowCount);
                ui->tableWidget->setItem(row, 0, new QTableWidgetItem("标准设备"));
                ui->tableWidget->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); //设置数据
                ui->tableWidget->setItem(row, 2, new QTableWidgetItem(result[0].model)); //设置数据
                ui->tableWidget->setItem(row, 3, new QTableWidgetItem(result[0].remark)); //设置数据
                ui->tableWidget->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); //设置数据
                ui->tableWidget->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer));
                row++;
            }
        }
        idList.clear();
    }
}