#include "ViewTriggerConfig.h" #include "ui_ViewTriggerConfig.h" ViewTriggerConfig::ViewTriggerConfig(QWidget *parent) : QWidget(parent), ui(new Ui::ViewTriggerConfig) { ui->setupUi(this); m_strWorkCondition = ""; headerStr = QObject::tr(" ,通道名称,特征值,高于警报值,高于危险值,\ 低于警报值,低于危险值,警报触发状态,危险触发状态,警报延时触发时长,危险延时触发时长,触发类型"); model = new QStandardItemModel(ui->tableView); ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行 QStringList headerList = headerStr.split(","); model->setHorizontalHeaderLabels(headerList); model->setColumnCount(headerList.size()); CheckBoxDelegate *pCheckDelegate = new CheckBoxDelegate(this); ui->tableView->setItemDelegateForColumn(0, pCheckDelegate); ui->tableView->setModel(model); ui->tableView->setAlternatingRowColors(true); ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); for (int i = 0; i < model->columnCount() ; i++) { if(i == 0){ ui->tableView->setColumnWidth(i, 50); } else if(i == 1){ ui->tableView->setColumnWidth(i, 200); }else if(i == 9 || i == 10){ ui->tableView->setColumnWidth(i, 200); }else{ ui->tableView->setColumnWidth(i, 150); } } QString wherecon = ""; wherecon = QString("Enable = \"1\" "); m_WorkCondition = g_SqliteDB->GetWorkCondition("t_WorkCondition",wherecon); QStringList strWorkConditionList; for (int i = 0; i < m_WorkCondition.size(); i++) { strWorkConditionList << m_WorkCondition.at(i).WorkConditionName; } ui->comboBox_workCondition->addItems(strWorkConditionList); //connect(ui->comboBox_workCondition,SIGNAL(currentTextChanged(const QString &)),this,SLOT(on_comboBox_WorkCondition_currentTextChanged(const QString&))); m_strWorkCondition = ui->comboBox_workCondition->currentText(); //LoadTriggerConfig(m_strWorkCondition); } ViewTriggerConfig::~ViewTriggerConfig() { delete ui; } //void ViewTriggerConfig::on_comboBox_WorkCondition_currentTextChanged(const QString &arg1) //{ //} void ViewTriggerConfig::on_comboBox_workCondition_currentTextChanged(const QString &arg1) { m_strWorkCondition = arg1; LoadTriggerConfig(m_strWorkCondition); } void ViewTriggerConfig::LoadTriggerConfig(const QString& strWorkCondition) { model->removeRows(0, model->rowCount()); int ii = 0,flag = -1; for (ii = 0; ii < m_WorkCondition.size(); ii++) { if(m_WorkCondition[ii].WorkConditionName == strWorkCondition){ flag = 1; break; } } if(flag == -1){ QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("工况信息加载失败!")); return; } QString strWhere = QString(" WorkConditionID = %1 and operate <> 3 ").arg(m_WorkCondition[ii].SN); m_vecTriggerConfig.clear(); QVector().swap(m_vecTriggerConfig); m_vecTriggerConfig = g_SqliteDB->GetTriggerConfig("t_TriggerConfig",strWhere); if(m_vecTriggerConfig.size() > 0){ model->setRowCount(m_vecTriggerConfig.size()); for (int i = 0; i < m_vecTriggerConfig.size(); i++) { model->setData(model->index(i,1,QModelIndex()),m_vecTriggerConfig[i].ChannelName); model->setData(model->index(i,2,QModelIndex()),m_vecTriggerConfig[i].Characteristic); if(m_vecTriggerConfig[i].AlertOver == 1) model->setData(model->index(i,3,QModelIndex()),m_vecTriggerConfig[i].AlertOverSetpoint); else model->setData(model->index(i,3,QModelIndex()),""); if(m_vecTriggerConfig[i].DangerOver) model->setData(model->index(i,4,QModelIndex()),m_vecTriggerConfig[i].DangerOverSetpoint); else model->setData(model->index(i,4,QModelIndex()),""); if(m_vecTriggerConfig[i].AlertUnder) model->setData(model->index(i,5,QModelIndex()),m_vecTriggerConfig[i].AlertUnderSetpoint); else model->setData(model->index(i,5,QModelIndex()),""); if(m_vecTriggerConfig[i].DangerUnder) model->setData(model->index(i,6,QModelIndex()),m_vecTriggerConfig[i].DangerUnderSetpoint); else model->setData(model->index(i,6,QModelIndex()),""); // model->setData(model->index(i,2,QModelIndex()),m_vecTriggerConfig[i].AlertOverSetpoint); // model->setData(model->index(i,2,QModelIndex()),m_vecTriggerConfig[i].DangerOverSetpoint); // model->setData(model->index(i,4,QModelIndex()),m_vecTriggerConfig[i].AlertUnderSetpoint); // model->setData(model->index(i,5,QModelIndex()),m_vecTriggerConfig[i].DangerUnderSetpoint); if(m_vecTriggerConfig[i].AlertTriggerStatus == "Latching") model->setData(model->index(i,7,QModelIndex()),"单次触发"); else if(m_vecTriggerConfig[i].AlertTriggerStatus == "Nonlatching") model->setData(model->index(i,7,QModelIndex()),"连续触发"); if(m_vecTriggerConfig[i].DangerTriggerStatus == "Latching") model->setData(model->index(i,8,QModelIndex()),"单次触发"); else if(m_vecTriggerConfig[i].DangerTriggerStatus == "Nonlatching") model->setData(model->index(i,8,QModelIndex()),"连续触发"); model->setData(model->index(i,9,QModelIndex()),m_vecTriggerConfig[i].AlertTriggerDelay); model->setData(model->index(i,10,QModelIndex()),m_vecTriggerConfig[i].DangerTriggerDelay); if(m_vecTriggerConfig[i].TriggerType == "LEVEL") model->setData(model->index(i,11,QModelIndex()),"阈值"); else if(m_vecTriggerConfig[i].TriggerType == "DELTA") model->setData(model->index(i,12,QModelIndex()),"偏差"); model->setData(model->index(i,13,QModelIndex()),m_vecTriggerConfig[i].ChannelID); model->setData(model->index(i,14,QModelIndex()),m_vecTriggerConfig[i].WorkConditionID); } } } void ViewTriggerConfig::on_pushButton_del_clicked() { int iRet = -1; int ii = 0,flag = -1; for (ii = 0; ii < m_WorkCondition.size(); ii++) { if(m_WorkCondition[ii].WorkConditionName == ui->comboBox_workCondition->currentText()){ flag = 1; break; } } if(flag == -1){ QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("工况信息加载失败!")); return; } for (int i = 0; i < model->rowCount(); i++) { QModelIndex indexCheck = model->index(i,0); bool check = model->data(indexCheck, Qt::UserRole).toBool(); if(check){ QString strChannelName = model->data(model->index(i,1)).toString(); QString strWorkConditionID = model->data(model->index(i,14)).toString(); QString strCharacteristic = model->data(model->index(i,2)).toString(); QString strWhere = QString("where ChannelName = '%1' and WorkConditionID = %2 and Characteristic = '%3' ").arg(strChannelName).arg(m_WorkCondition[ii].SN).arg(strCharacteristic); QString tableName = "t_TriggerConfig "; QString strSql = QString(" set operate = 3 "); strSql = strSql + strWhere; iRet = g_SqliteDB->UpdateDataSql(tableName,strSql); //iRet = g_SqliteDB->DeleteDataW(tableName,strWhere); if(iRet != 0) break; } } if(iRet == 0){ QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("删除成功!")); emit deleteTriggerEvent_sg(); } else{ QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("删除失败!")); } LoadTriggerConfig(m_strWorkCondition); }