538 lines
24 KiB
C++
538 lines
24 KiB
C++
#include "WokingConditionConfig.h"
|
|
#include "ui_WokingConditionConfig.h"
|
|
#include <QComboBox>
|
|
#include <QMenu>
|
|
#include <QStyleFactory>
|
|
#include <QListView>
|
|
|
|
|
|
CWokingConditionConfig::CWokingConditionConfig(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::CWokingConditionConfig)
|
|
{
|
|
ui->setupUi(this);
|
|
headerStr = QObject::tr("工况参数,范围下,范围上,百分比判断,波动判断,波动范围下,波动范围上");
|
|
model = new QStandardItemModel(ui->tableView);
|
|
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
|
|
//ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行
|
|
QStringList headerList = headerStr.split(",");
|
|
model->setHorizontalHeaderLabels(headerList);
|
|
model->setColumnCount(headerList.size());
|
|
ui->tableView->setModel(model);
|
|
|
|
ui->tableView->setAlternatingRowColors(true);
|
|
ui->tableView->setColumnWidth(0, 200);
|
|
//ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
|
//ui->tableView->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);
|
|
|
|
|
|
ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu);
|
|
ui->treeView->setStyle(QStyleFactory::create("windows"));
|
|
|
|
treeModel = new QStandardItemModel(ui->treeView); //创建模型指定父类
|
|
ui->treeView->setModel(treeModel);
|
|
ui->treeView->setHeaderHidden(true);
|
|
ui->comboBox_unitType->setView(new QListView());
|
|
this->setWindowTitle("工况逻辑配置");
|
|
m_Index = 0;
|
|
|
|
QRegExp exp("[0-9\\.-]+$");
|
|
QValidator *Validator = new QRegExpValidator(exp);
|
|
ui->lineEdit_Interval->setValidator(Validator);
|
|
ui->treeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
|
}
|
|
|
|
CWokingConditionConfig::~CWokingConditionConfig()
|
|
{
|
|
delete ui;
|
|
}
|
|
QWidget *CWokingConditionConfig::CreateCombox(int flag)
|
|
{
|
|
if(flag == 0){
|
|
QComboBox* cmb = new QComboBox();
|
|
QStringList strList ;
|
|
strList << "是" << "否";
|
|
cmb->addItems(strList);
|
|
return cmb;
|
|
}else if(flag == 1){
|
|
QComboBox* cmb = new QComboBox();
|
|
QStringList strList ;
|
|
strList << "否" << "是";
|
|
cmb->addItems(strList);
|
|
return cmb;
|
|
}
|
|
}
|
|
QStandardItem* CWokingConditionConfig::add_checkBox_model(int flag)
|
|
{
|
|
QStandardItem *item = new QStandardItem();
|
|
item->setCheckable(true);
|
|
if(!flag){
|
|
item->setCheckState(Qt::Unchecked);
|
|
}else{
|
|
item->setCheckState(Qt::Checked);
|
|
}
|
|
//item->setEditable(false);
|
|
return item;
|
|
}
|
|
|
|
void CWokingConditionConfig::\
|
|
InitConfig(int index,QString& strWorkConditionType,\
|
|
QStringList& strChannelName,WorkCondition_t& workCondition,\
|
|
QVector<WorkConditionChannels_t>& workConditionChannels,QVector<WorkConditionInfo_t>& WorkConditionInfo)
|
|
{
|
|
qDebug() << "InitConfig" <<endl;
|
|
for(int i = 0;i < treeModel->rowCount() ;i++){
|
|
treeModel->removeRow(i);
|
|
}
|
|
m_WorkConditionChannels = workConditionChannels;
|
|
qDebug() << "m_WorkConditionChannels" << m_WorkConditionChannels.size() << endl;
|
|
m_strChannelName.clear();
|
|
m_strChannelName = strChannelName;
|
|
m_Index = index;
|
|
qDebug() << m_strChannelName << endl;
|
|
ui->lineEdit_workContion->setText(strWorkConditionType);
|
|
ui->comboBox_unitType->clear();
|
|
ui->comboBox_unitType->addItem("请选择通道...");
|
|
ui->comboBox_unitType->addItems(m_strChannelName);
|
|
if(WorkConditionInfo.size() > 0){
|
|
|
|
QStringList ChannelName;
|
|
QString str = QString("%1").arg(workCondition.CheckWorkConditionInterval);
|
|
ui->lineEdit_Interval->setText(str);
|
|
ui->textEdit_Description->setText(workCondition.Description);
|
|
for (int i = 0; i < WorkConditionInfo.size() ; i++) {
|
|
model->setRowCount(i+1);
|
|
|
|
if(WorkConditionInfo[i].EnRangeLower == "1")
|
|
model->setItem(i, 1, add_checkBox_model(1));
|
|
else
|
|
model->setItem(i, 1, add_checkBox_model());
|
|
|
|
if(WorkConditionInfo[i].EnRangeUpper == "1")
|
|
model->setItem(i, 2, add_checkBox_model(1));
|
|
else
|
|
model->setItem(i, 2, add_checkBox_model());
|
|
|
|
if(WorkConditionInfo[i].EnVolatilityRangeLower == "1")
|
|
model->setItem(i, 5, add_checkBox_model(1));
|
|
else
|
|
model->setItem(i, 5, add_checkBox_model());
|
|
|
|
if(WorkConditionInfo[i].EnVolatilityRangeUpper == "1")
|
|
model->setItem(i, 6, add_checkBox_model(1));
|
|
else
|
|
model->setItem(i, 6, add_checkBox_model());
|
|
|
|
|
|
model->setData(model->index(i,0,QModelIndex()),WorkConditionInfo[i].DisplayName);
|
|
model->setData(model->index(i,1,QModelIndex()),WorkConditionInfo[i].LowerSideOfRange);
|
|
model->setData(model->index(i,2,QModelIndex()),WorkConditionInfo[i].UpperSideOfRange);
|
|
if(WorkConditionInfo[i].EnLowerSideOfRangePercent == "1"){
|
|
ui->tableView->setIndexWidget(model->index(i, 3), CreateCombox(0));
|
|
}else{
|
|
ui->tableView->setIndexWidget(model->index(i, 3), CreateCombox(1));
|
|
}
|
|
if(WorkConditionInfo[i].EnableCheckVolatility == "1"){
|
|
ui->tableView->setIndexWidget(model->index(i, 4), CreateCombox(0));
|
|
}else{
|
|
ui->tableView->setIndexWidget(model->index(i, 4), CreateCombox(1));
|
|
}
|
|
|
|
model->setData(model->index(i,5,QModelIndex()),WorkConditionInfo[i].LowerSideOfVolatilityRange);
|
|
model->setData(model->index(i,6,QModelIndex()),WorkConditionInfo[i].UpperSideOfVolatilityRange);
|
|
|
|
|
|
QJsonObject m_JsonObjWorkConditionRules;
|
|
for (int j = 0; j < g_ChannelBaseInfo.size() ; j++) {
|
|
if(WorkConditionInfo[i].ChannelName == g_ChannelBaseInfo[j].channelName){
|
|
m_JsonObjWorkConditionRules["BoardNo"] = g_ChannelBaseInfo[j].bordNo;
|
|
m_JsonObjWorkConditionRules["ChannelName"] = g_ChannelBaseInfo[j].channelName;
|
|
m_JsonObjWorkConditionRules["ChannelNoInBoard"] = g_ChannelBaseInfo[j].channelNoInBoard;
|
|
}
|
|
}
|
|
m_JsonArrayWorkConditionRules.append(m_JsonObjWorkConditionRules);
|
|
ChannelName.append(WorkConditionInfo[i].DisplayName);
|
|
}
|
|
QJsonDocument doc = QJsonDocument::fromJson(workCondition.WorkConditionJudgeLogicRules.toUtf8());
|
|
QJsonObject obj = doc.object();
|
|
QJsonObject WorkConditionJudgeLogicRulesObj = obj;
|
|
if(WorkConditionJudgeLogicRulesObj.contains("logicAND")){
|
|
QJsonValue arrayValue = WorkConditionJudgeLogicRulesObj.value(QStringLiteral("logicAND"));
|
|
if(arrayValue.isArray()){
|
|
QJsonArray array = arrayValue.toArray();
|
|
QString subprimaryTitle = "logicAND";
|
|
QList<QStandardItem*> items1;
|
|
QStandardItem* item1 = new QStandardItem(subprimaryTitle);
|
|
treeModel->appendRow(item1);
|
|
for (int i = 0; i < array.size(); i++) {
|
|
QJsonObject tempObj2 = array[i].toObject();
|
|
if (tempObj2.contains(QStringLiteral("logicOR"))){
|
|
QJsonValue arrayValue = tempObj2.value(QStringLiteral("logicOR"));
|
|
QStandardItem *itemOR = new QStandardItem(QString("logicOR"));
|
|
item1->appendRow(itemOR);
|
|
QJsonArray array = arrayValue.toArray();
|
|
for (int kk = 0; kk < array.size(); kk++) {
|
|
QList<QStandardItem*> items2;
|
|
QStandardItem* item3 = new QStandardItem(array.at(kk)["DispalyName"].toString());
|
|
items2.append(item3);
|
|
itemOR->appendRow(items2);
|
|
}
|
|
}else{
|
|
QList<QStandardItem*> items2;
|
|
QStandardItem* item3 = new QStandardItem(array.at(i)["DispalyName"].toString());
|
|
items2.append(item3);
|
|
item1->appendRow(items2);
|
|
}
|
|
}
|
|
}else {
|
|
|
|
}
|
|
}
|
|
if(WorkConditionJudgeLogicRulesObj.contains("logicOR")){
|
|
QJsonValue arrayValue = WorkConditionJudgeLogicRulesObj.value(QStringLiteral("logicOR"));
|
|
if(arrayValue.isArray()){
|
|
QJsonArray array = arrayValue.toArray();
|
|
QString subprimaryTitle = "logicOR";
|
|
QList<QStandardItem*> items1;
|
|
QStandardItem* item1 = new QStandardItem(subprimaryTitle);
|
|
treeModel->appendRow(item1);
|
|
for (int i = 0; i < array.size(); i++) {
|
|
QJsonObject tempObj2 = array[i].toObject();
|
|
if (tempObj2.contains(QStringLiteral("logicAND"))){
|
|
QJsonValue arrayValue = tempObj2.value(QStringLiteral("logicAND"));
|
|
QStandardItem *itemAnd = new QStandardItem(QString("logicAND"));
|
|
item1->appendRow(itemAnd);
|
|
QJsonArray array = arrayValue.toArray();
|
|
for (int kk = 0; kk < array.size(); kk++) {
|
|
QList<QStandardItem*> items2;
|
|
QStandardItem* item3 = new QStandardItem(array.at(kk)["DispalyName"].toString());
|
|
items2.append(item3);
|
|
itemAnd->appendRow(items2);
|
|
}
|
|
}else{
|
|
QList<QStandardItem*> items2;
|
|
QStandardItem* item3 = new QStandardItem(array.at(i)["DispalyName"].toString());
|
|
items2.append(item3);
|
|
item1->appendRow(items2);
|
|
}
|
|
|
|
}
|
|
}else {
|
|
|
|
}
|
|
}
|
|
}else{
|
|
|
|
}
|
|
|
|
QObject::connect(ui->tableView ,SIGNAL(customContextMenuRequested(const QPoint &)),this,SLOT(on_treeView_customContextMenuRequested(const QPoint &)));
|
|
|
|
}
|
|
|
|
void CWokingConditionConfig::on_pushButton_addUnit_clicked()
|
|
{
|
|
int rowCount = model->rowCount();
|
|
qDebug() << rowCount << endl;
|
|
model->setRowCount(rowCount+1);
|
|
|
|
ui->tableView->setIndexWidget(model->index(rowCount, 3), CreateCombox(1));
|
|
ui->tableView->setIndexWidget(model->index(rowCount, 4), CreateCombox(1));
|
|
model->setItem(rowCount, 1, add_checkBox_model());
|
|
model->setItem(rowCount, 2, add_checkBox_model());
|
|
model->setItem(rowCount, 5, add_checkBox_model());
|
|
model->setItem(rowCount, 6, add_checkBox_model());
|
|
model->setData(model->index(rowCount,0,QModelIndex()),"");
|
|
model->setData(model->index(rowCount,1,QModelIndex()),"");
|
|
model->setData(model->index(rowCount,2,QModelIndex()),"");
|
|
model->setData(model->index(rowCount,5,QModelIndex()),"");
|
|
model->setData(model->index(rowCount,6,QModelIndex()),"");
|
|
}
|
|
|
|
|
|
void CWokingConditionConfig::on_comboBox_unitType_currentTextChanged(const QString &arg1)
|
|
{
|
|
int row = ui-> tableView ->currentIndex().row();//获得当前行索引
|
|
QJsonObject m_JsonObjWorkConditionRules;
|
|
int repetitionCount = 0;
|
|
for (int i = 0; i < model->rowCount(); i++) {
|
|
QModelIndex index = model->index(i,0);
|
|
QString strData = model->data(index).toString();
|
|
if(strData.contains(arg1)){
|
|
repetitionCount++;
|
|
}
|
|
}
|
|
if(repetitionCount > 0){
|
|
QString strChannelName = QString("%1%2").arg(repetitionCount).arg(arg1);
|
|
model->setData(model->index(row,0,QModelIndex()),strChannelName);
|
|
}
|
|
else{
|
|
model->setData(model->index(row,0,QModelIndex()),arg1);
|
|
}
|
|
for (int i = 0; i < g_ChannelBaseInfo.size() ; i++) {
|
|
if(arg1.contains(g_ChannelBaseInfo[i].channelName)){
|
|
m_JsonObjWorkConditionRules["BoardNo"] = g_ChannelBaseInfo[i].bordNo;
|
|
m_JsonObjWorkConditionRules["ChannelName"] = g_ChannelBaseInfo[i].channelName;
|
|
m_JsonObjWorkConditionRules["ChannelNoInBoard"] = g_ChannelBaseInfo[i].channelNoInBoard;
|
|
m_JsonObjWorkConditionRules["DispalyName"] = arg1;
|
|
}
|
|
}
|
|
m_JsonArrayWorkConditionRules.append(m_JsonObjWorkConditionRules);
|
|
qDebug() << m_JsonArrayWorkConditionRules <<endl;
|
|
}
|
|
|
|
void CWokingConditionConfig::slotDeleteItem()
|
|
{
|
|
QModelIndex curIndex = ui->treeView->currentIndex();
|
|
//QModelIndex index = curIndex.sibling(curIndex.row(),0); //同一行第一列元素的index
|
|
if(curIndex.isValid())
|
|
{
|
|
QStandardItem* item = treeModel->itemFromIndex(curIndex);
|
|
QString text = item->text();
|
|
qDebug() << text <<endl;
|
|
treeModel->removeRow(curIndex.row(),curIndex.parent());
|
|
}
|
|
}
|
|
void CWokingConditionConfig::on_treeView_customContextMenuRequested(const QPoint &pos)
|
|
{
|
|
qDebug() << "on_treeView_customContextMenuRequested" <<endl;
|
|
QModelIndex curIndex = ui->treeView->indexAt(pos); //当前点击的元素的index
|
|
QModelIndex index = curIndex.sibling(curIndex.row(),0); //该行的第1列元素的index
|
|
QMenu menu;
|
|
if (index.isValid())
|
|
{
|
|
//可获取元素的文本、data,进行其他判断处理
|
|
//QStandardItem* item = mModel->itemFromIndex(index);
|
|
//QString text = item->text();
|
|
//QVariant data = item->data(Qt::UserRole + 1);
|
|
//...
|
|
|
|
//添加一行菜单,进行展开
|
|
menu.addAction(QStringLiteral("删除"), this, SLOT(slotDeleteItem()));
|
|
menu.addSeparator(); //添加一个分隔线
|
|
//menu.addAction(QStringLiteral("增加"), this, SLOT(slotTreeMenuCollapse(bool)));
|
|
}
|
|
menu.exec(QCursor::pos()); //显示菜单
|
|
}
|
|
|
|
|
|
void CWokingConditionConfig::on_pushButton_and_clicked()
|
|
{
|
|
QModelIndex index = ui->treeView->currentIndex();
|
|
if(index.isValid())
|
|
{
|
|
QStandardItem* item = treeModel->itemFromIndex(index);
|
|
QString subprimaryTitle = "logicAND";
|
|
QStandardItem* item1 = new QStandardItem(subprimaryTitle);
|
|
item->appendRow(item1);
|
|
}else{
|
|
QString subprimaryTitle = "logicAND";
|
|
QList<QStandardItem*> items1;
|
|
QStandardItem* item1 = new QStandardItem(subprimaryTitle);
|
|
treeModel->appendRow(item1);
|
|
}
|
|
}
|
|
|
|
|
|
void CWokingConditionConfig::on_pushButton_or_clicked()
|
|
{
|
|
QModelIndex index = ui->treeView->currentIndex();
|
|
qDebug() << index.row() <<endl;
|
|
if(index.isValid())
|
|
{
|
|
QStandardItem* item = treeModel->itemFromIndex(index);
|
|
QString subprimaryTitle = "logicOR";
|
|
QStandardItem* item1 = new QStandardItem(subprimaryTitle);
|
|
item->appendRow(item1);
|
|
}else{
|
|
QString subprimaryTitle = "logicOR";
|
|
QList<QStandardItem*> items1;
|
|
QStandardItem* item1 = new QStandardItem(subprimaryTitle);
|
|
treeModel->appendRow(item1);
|
|
}
|
|
}
|
|
|
|
QJsonArray CWokingConditionConfig::GetItem(QStandardItem *item)
|
|
{
|
|
QJsonArray array;
|
|
QJsonObject jsonObj;
|
|
if(item->hasChildren())
|
|
{
|
|
for(int i = 0;i < item->rowCount() ;i++)
|
|
{
|
|
QStandardItem * childitem = item->child(i);
|
|
qDebug() << "childitem = " << childitem->text();
|
|
if(childitem->text() == "logicOR" || childitem->text() == "logicAND"){
|
|
QJsonObject jsonObjLogic;
|
|
jsonObjLogic[childitem->text()] = GetItem(childitem);
|
|
array.append(jsonObjLogic);
|
|
}else{
|
|
for (int i = 0; i < m_ArrayWorkConditionRules.size() ; i++) {
|
|
if(m_ArrayWorkConditionRules.at(i)["DispalyName"] == childitem->text()){
|
|
jsonObj["WC_NO"] = m_ArrayWorkConditionRules.at(i)["WC_NO"];
|
|
jsonObj["DispalyName"] = m_ArrayWorkConditionRules.at(i)["DispalyName"];
|
|
}
|
|
}
|
|
array.append(jsonObj);
|
|
}
|
|
}
|
|
return array;
|
|
}
|
|
}
|
|
void CWokingConditionConfig::on_pushButton_save_clicked()
|
|
{
|
|
|
|
if(treeModel->rowCount() < 1){
|
|
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("请选择正确的组态逻辑"));
|
|
return;
|
|
}
|
|
|
|
for(int i=0; i< m_ArrayWorkConditionRules.size(); i++)
|
|
{
|
|
m_ArrayWorkConditionRules.removeAt(i);
|
|
}
|
|
for (int i = 0; i < model->rowCount(); i++) {
|
|
|
|
QJsonObject jsonObj;
|
|
QStringList strDataList;
|
|
for (int j = 0; j < model->columnCount(); j++) {
|
|
QModelIndex index = model->index(i,j);
|
|
QString strData = model->data(index).toString();
|
|
|
|
if(j == 0){
|
|
for (int ii = 0; ii < m_WorkConditionChannels.size();ii++ ) {
|
|
//qDebug() <<"============="<< m_WorkConditionChannels[ii].ChannelName << strData << endl;
|
|
if(strData.contains(m_WorkConditionChannels[ii].ChannelName) && m_WorkConditionChannels[ii].ChannelName != ""){
|
|
jsonObj["BoardNo"] = m_WorkConditionChannels[ii].BoardNo;
|
|
jsonObj["ChannelName"] = m_WorkConditionChannels[ii].ChannelName;
|
|
jsonObj["ChannelNoInBoard"] = m_WorkConditionChannels[ii].ChannelNoInBoard;
|
|
jsonObj["WorkConditionChannelType"] = m_WorkConditionChannels[ii].WorkConditionChannelType;
|
|
jsonObj["ChannelID"] = m_WorkConditionChannels[ii].channelID;
|
|
jsonObj["DispalyName"] = strData;
|
|
}
|
|
}
|
|
}
|
|
if(j == 1){
|
|
QStandardItem *item = model->itemFromIndex(index);
|
|
if(item->checkState() == Qt::Unchecked)
|
|
jsonObj["EnRangeLower"] = false;
|
|
else if(item->checkState() == Qt::Checked)
|
|
jsonObj["EnRangeLower"] = true;
|
|
jsonObj["LowerSideOfRange"] = model->data(index).toString();
|
|
}
|
|
if(j == 2){
|
|
QStandardItem *item = model->itemFromIndex(index);
|
|
if(item->checkState() == Qt::Unchecked)
|
|
jsonObj["EnRangeUpper"] = false;
|
|
else if(item->checkState() == Qt::Checked)
|
|
jsonObj["EnRangeUpper"] = true;
|
|
jsonObj["UpperSideOfRange"] = model->data(index).toString();
|
|
}
|
|
if(j == 5){
|
|
QStandardItem *item = model->itemFromIndex(index);
|
|
if(item->checkState() == Qt::Unchecked)
|
|
jsonObj["EnVolatilityRangeLower"] = false;
|
|
else if(item->checkState() == Qt::Checked)
|
|
jsonObj["EnVolatilityRangeLower"] = true;
|
|
jsonObj["LowerSideOfVolatilityRange"] = model->data(index).toString();
|
|
}
|
|
if(j == 6){
|
|
QStandardItem *item = model->itemFromIndex(index);
|
|
if(item->checkState() == Qt::Unchecked)
|
|
jsonObj["EnVolatilityRangeUpper"] = false;
|
|
else if(item->checkState() == Qt::Checked)
|
|
jsonObj["EnVolatilityRangeUpper"] = true;
|
|
jsonObj["UpperSideOfVolatilityRange"] = model->data(index).toString();
|
|
}
|
|
if(j == 3){
|
|
QComboBox *comBox = (QComboBox*)(ui->tableView->indexWidget(index));
|
|
if(comBox->currentText() == "是"){
|
|
jsonObj["EnSideOfRangePercent"] = true;
|
|
}else if(comBox->currentText() == "否"){
|
|
jsonObj["EnSideOfRangePercent"] = false;
|
|
}
|
|
}
|
|
if(j == 4){
|
|
QComboBox *comBox = (QComboBox*)(ui->tableView->indexWidget(index));
|
|
if(comBox->currentText() == "是"){
|
|
jsonObj["EnableCheckVolatility"] = true;
|
|
}else if(comBox->currentText() == "否"){
|
|
jsonObj["EnableCheckVolatility"] = false;
|
|
}
|
|
}
|
|
}
|
|
jsonObj["WC_NO"] = i+1;
|
|
QString strTableName = "t_WorkConditionRules";
|
|
QString strWhere = QString(" SN = '%1' and ChannelId = '%2' and displayName = '%3' ").
|
|
arg(m_Index).arg(jsonObj["ChannelID"].toString()).arg(jsonObj["DispalyName"].toString());
|
|
|
|
QString strSql = "count(*)";
|
|
int iRet = g_SqliteDB->QueryData(strTableName,strSql,strWhere);
|
|
if(iRet > 0){
|
|
strSql = QString(" set EnLowerSideOfRangePercent = '%1',EnRangeUpper = '%2',EnRangeLower = '%3',EnVolatilityRangeUpper = '%4',EnVolatilityRangeLower = '%5',\
|
|
EnableCheckVolatility = '%6',LowerSideOfRange = '%7',UpperSideOfRange = '%8',LowerSideOfVolatilityRange = '%9',UpperSideOfVolatilityRange = '%10',WC_NO = %11 where SN = '%12' and ChannelId = '%13' and displayName = '%14'").arg(jsonObj["EnSideOfRangePercent"].toBool()).arg(jsonObj["EnRangeUpper"].toBool()).\
|
|
arg(jsonObj["EnRangeLower"].toBool()).arg(jsonObj["EnVolatilityRangeUpper"].toBool()).arg(jsonObj["EnVolatilityRangeLower"].toBool()).arg(jsonObj["EnableCheckVolatility"].toBool()).arg(jsonObj["LowerSideOfRange"].toString()).arg(jsonObj["UpperSideOfRange"].toString()).arg(jsonObj["LowerSideOfVolatilityRange"].toString()).arg(jsonObj["UpperSideOfVolatilityRange"].toString()).\
|
|
arg(i+1).arg(m_Index).arg(jsonObj["ChannelID"].toString()).arg(jsonObj["DispalyName"].toString());
|
|
g_SqliteDB->UpdateDataSql(strTableName,strSql);
|
|
}else
|
|
{
|
|
strSql = QString(" values('%1',%2,'%3','%4','%5',%6,'%7','%8','%9','%10','%11','%12','%13','%14',%15,%16,%17,'%18');").arg(jsonObj["ChannelID"].toString()).arg(jsonObj["BoardNo"].toInt()).arg(jsonObj["ChannelName"].toString()).arg(jsonObj["ChannelNoInBoard"].toInt()).arg(jsonObj["EnSideOfRangePercent"].toBool()).\
|
|
arg(jsonObj["EnRangeUpper"].toBool()).arg(jsonObj["EnRangeLower"].toBool()).arg(jsonObj["EnVolatilityRangeUpper"].toBool()).arg(jsonObj["EnVolatilityRangeLower"].toBool()).arg(jsonObj["EnableCheckVolatility"].toBool()).arg(jsonObj["LowerSideOfRange"].toString()).\
|
|
arg(jsonObj["UpperSideOfRange"].toString()).arg(jsonObj["LowerSideOfVolatilityRange"].toString()).arg(jsonObj["UpperSideOfVolatilityRange"].toString()).arg(jsonObj["WorkConditionChannelType"].toInt()).arg(m_Index).arg(i+1).arg(jsonObj["DispalyName"].toString());
|
|
g_SqliteDB->InsertData(strTableName,strSql);
|
|
}
|
|
|
|
m_ArrayWorkConditionRules.append(jsonObj);
|
|
}
|
|
qDebug() << m_ArrayWorkConditionRules << endl;
|
|
QJsonObject jsonObj2;
|
|
for(int i = 0;i < treeModel->rowCount() ;i++)
|
|
{
|
|
QStandardItem *item = treeModel->item(i);
|
|
qDebug() <<"item = " << item->text();
|
|
qDebug() << item->rowCount() << endl;
|
|
jsonObj2[item->text()] = GetItem(item);
|
|
}
|
|
qDebug() << jsonObj2 << endl;
|
|
QJsonObject WorkConditionsInfoObj;
|
|
WorkConditionsInfoObj["WorkConditionJudgeLogicRules"] = jsonObj2;
|
|
WorkConditionsInfoObj["WorkConditionRules"] = m_ArrayWorkConditionRules;
|
|
QString str = QString("%1").arg(m_Index);
|
|
WorkConditionsInfoObj["SN"] = str;
|
|
WorkConditionsInfoObj["CheckWorkConditionInterval"] = ui->lineEdit_Interval->text().toInt();
|
|
WorkConditionsInfoObj["Description"] = ui->textEdit_Description->toPlainText();
|
|
// WorkConditionsInfoObj["Enable"] = m_WorkCondition.Enable;
|
|
// WorkConditionsInfoObj["StartWorkCondition"] = m_WorkCondition.StartWorkCondition;
|
|
WorkConditionsInfoObj["WorkConditionName"] = ui->lineEdit_workContion->text();
|
|
|
|
qDebug() << WorkConditionsInfoObj << endl;
|
|
sigWorkConditon(WorkConditionsInfoObj);
|
|
this->close();
|
|
|
|
}
|
|
|
|
|
|
void CWokingConditionConfig::on_comboBox_unitType_textActivated(const QString &arg1)
|
|
{
|
|
qDebug() << "on_comboBox_unitType_textActivated" << endl;
|
|
}
|
|
|
|
|
|
void CWokingConditionConfig::on_pushButton_del_clicked()
|
|
{
|
|
int row = ui->tableView->currentIndex().row();//获得当前行索引
|
|
qDebug() << "row" <<row <<endl;
|
|
|
|
QString strData = model->data(model->index(row,0)).toString();
|
|
QString strTableName = "t_WorkConditionRules";
|
|
QString strWhere = QString("SN = '%1' and ChannelName = '%2' ").arg(m_Index).arg(strData);
|
|
int iRet = g_SqliteDB->DeleteDataW(strTableName,strWhere);
|
|
if(iRet == 0){
|
|
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("删除成功!"));
|
|
}else{
|
|
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("删除失败!"));
|
|
}
|
|
model->removeRow(row);
|
|
|
|
}
|
|
|