Newer
Older
AutomaticVerification / softwareDirectory / AutoVerScheme / checkdevice.cpp
#include "checkdevice.h"
#include "ui_checkdevice.h"
#include "basecommonapi.h"
#include <QCheckBox>
#include <QMessageBox>
#include "PageControl.h"

CheckDevice::CheckDevice(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::CheckDevice)
{
    ui->setupUi(this);
    /*ui->tableWidget_3->setColumnWidth(0, 80);
    for(int i=1;i<4;i++)
        ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch);*/
    ui->tableWidget_4->setColumnWidth(0, 80);
    for(int i=1;i<5;i++)
        ui->tableWidget_4->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch);
    //getCheckDevice();
    getStandardDevice();
}

CheckDevice::~CheckDevice()
{
    testedDeviceList.clear();
    bizDeviceList.clear();
    delete ui;
}

void CheckDevice::getCheckDevice()
{
    /*testedDeviceList.clear();
    ui->tableWidget_3->clearContents();
    ui->tableWidget_3->setRowCount(0);
    int rowCount=0;
    int row=0;
    testedDeviceList = BaseCommonApi::getTestedDevice();
    QString sFilterName = ui->lineEdit_7->text();
    QString sFilterModel = ui->lineEdit_8->text();
    for(int i=testedDeviceList.length()-1;i>=0;i--){
        bool bAdd=true;
        if(sFilterName!=""&&!testedDeviceList[i].equipment_name.contains(sFilterName)){
            bAdd=false;
        }
        if(sFilterModel!=""&&!testedDeviceList[i].model.contains(sFilterModel)){
            bAdd=false;
        }
        if(!bAdd){
            testedDeviceList.removeAt(i);
        }
    }
    for (const TestedDevice& bizDevice : testedDeviceList) {
        rowCount = ui->tableWidget_3->rowCount();
        ui->tableWidget_3->insertRow(rowCount);
        //QCheckBox *checkBox = new QCheckBox;
        //ui->tableWidget_3->setCellWidget(row, 0, checkBox);
        QTableWidgetItem* p_check = new QTableWidgetItem();
        p_check->setCheckState(Qt::Unchecked);        //设置首列为 CheckBox 控件
        ui->tableWidget_3->setItem(row,0,p_check);
        ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem(bizDevice.equipment_name));
        ui->tableWidget_3->setItem(row, 2, new QTableWidgetItem(bizDevice.model));
        ui->tableWidget_3->setItem(row, 3, new QTableWidgetItem(bizDevice.help_instruction));
        row++;
    }*/
}

void CheckDevice::getStandardDevice()
{
    bizDeviceList.clear();
    bizDeviceList = BaseCommonApi::getBizDeviceManage();
    QString sFilterName = ui->lineEdit_10->text();
    QString sFilterModel = ui->lineEdit_11->text();
    QString sFilterNo = ui->lineEdit_12->text();
    for(int i=bizDeviceList.length()-1;i>=0;i--){
        bool bAdd=true;
        if(sFilterName!=""&&!bizDeviceList[i].equipment_name.contains(sFilterName)){
            bAdd=false;
        }
        if(sFilterModel!=""&&!bizDeviceList[i].model.contains(sFilterModel)){
            bAdd=false;
        }
        if(sFilterNo!=""&&!bizDeviceList[i].manufacture_no.contains(sFilterNo)){
            bAdd=false;
        }
        if(!bAdd){
            bizDeviceList.removeAt(i);
        }
    }
    page=20;
    pageIndex=-1;
    PagedTableWidget *pagedTable = new PagedTableWidget(this,  ui->HBoxPageLayout);
    pagedTable->setData(bizDeviceList.count(), page); // 每页10行
    connect(pagedTable, SIGNAL(pageChanged(int)), this,SLOT(onpageChanged(int)));
    this->onpageChanged(0);
}

void CheckDevice::onpageChanged(int currPage)
{
    if(pageIndex==currPage)
        return;
    qDebug() << currPage;
    pageIndex =currPage;
    // 计算当前页的开始和结束索引
    int start = pageIndex * page;
    int end = std::min(start + page, bizDeviceList.size());
    ui->tableWidget_4->clearContents();
    ui->tableWidget_4->setRowCount(0);
    int rowCount=0;
    int row=0;
    for (int i=start;i<end; i++) {
        const BizDevice& bizDevice = bizDeviceList[i];
        rowCount = ui->tableWidget_4->rowCount();
        ui->tableWidget_4->insertRow(rowCount);
        //QCheckBox *checkBox = new QCheckBox;
        //ui->tableWidget_4->setCellWidget(row, 0, checkBox);
        QTableWidgetItem* p_check = new QTableWidgetItem();
        p_check->setCheckState(Qt::Unchecked);
        ui->tableWidget_4->setItem(row,0,p_check);
        ui->tableWidget_4->setItem(row, 1, new QTableWidgetItem(bizDevice.equipment_name));
        ui->tableWidget_4->setItem(row, 2, new QTableWidgetItem(bizDevice.model));
        ui->tableWidget_4->setItem(row, 3, new QTableWidgetItem(bizDevice.manufacture_no));
        ui->tableWidget_4->setItem(row, 4, new QTableWidgetItem(bizDevice.manufacturer));
        row++;
    }
}

void CheckDevice::on_pushButton_19_clicked()
{
    QString checkIds="";
    QString bizIds = "";
    /*for(int i=0;i<ui->tableWidget_3->rowCount();i++){
        if(ui->tableWidget_3->item(i,0)->checkState()==Qt::Checked){
            if(checkIds=="")
                checkIds = testedDeviceList[i].id;
            else
                checkIds+=","+testedDeviceList[i].id;
        }
    }*/
    int start = pageIndex * page;
    for(int i=0;i<ui->tableWidget_4->rowCount();i++){
        if(ui->tableWidget_4->item(i,0)->checkState()==Qt::Checked){
            if(bizIds=="")
                bizIds = bizDeviceList[i+start].id;
            else
                bizIds+=","+bizDeviceList[i+start].id;
        }
    }
    /*if(checkIds==""){
        QMessageBox::warning(this, "提示", "请选择被检设备!");
        return;
    }*/
    if(bizIds==""){
        QMessageBox::warning(this, "提示", "请选择标准设备!");
        return;
    }
    //newCheckWnd->chooseDevices(checkIds,bizIds);
    this->close();
}

void CheckDevice::on_pushButton_15_clicked()
{
    //getCheckDevice();
}

void CheckDevice::on_pushButton_16_clicked()
{
    //ui->lineEdit_7->setText("");
    //ui->lineEdit_8->setText("");
    //getCheckDevice();
}

void CheckDevice::on_pushButton_17_clicked()
{
    getStandardDevice();
}

void CheckDevice::on_pushButton_18_clicked()
{
    ui->lineEdit_10->setText("");
    ui->lineEdit_11->setText("");
    ui->lineEdit_12->setText("");
    getStandardDevice();
}