3500/HistoryAlarm.cpp

113 lines
4.1 KiB
C++
Raw Normal View History

2023-04-14 19:30:30 +08:00
#include "HistoryAlarm.h"
#include "ui_HistoryAlarm.h"
2023-04-27 19:48:15 +08:00
#include <QListView>
#include "sqlitedb.h"
#include "QMyTableViewBtnDelegate.h"
#include "AlarmDetails.h"
2023-04-14 19:30:30 +08:00
CHistoryAlarm::CHistoryAlarm(QWidget *parent) :
QWidget(parent),
ui(new Ui::CHistoryAlarm)
{
ui->setupUi(this);
headerStr = QObject::tr("序号,报警级别,报警内容,报警时间,复归时间,报警详情");
model = new QStandardItemModel(ui->tableView);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行
QStringList headerList = headerStr.split(",");
model->setHorizontalHeaderLabels(headerList);
model->setColumnCount(headerList.size());
ui->tableView->setModel(model);
2023-04-17 17:40:26 +08:00
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
2023-04-14 19:30:30 +08:00
ui->tableView->setColumnWidth(2, 300);
2023-04-27 19:48:15 +08:00
ui->tableView->setColumnWidth(3, 300);
ui->tableView->setColumnWidth(4, 300);
2023-04-14 19:30:30 +08:00
ui->tableView->setAlternatingRowColors(true);
2023-04-27 19:48:15 +08:00
2023-04-14 19:30:30 +08:00
ui->tableView->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setSectionResizeMode(5,QHeaderView::ResizeToContents);
2023-04-27 19:48:15 +08:00
ui->dateTimeEdit_start->setCalendarPopup(true);
ui->dateTimeEdit_end->setCalendarPopup(true);
QDateTime curDateTime=QDateTime::currentDateTime();//通过QDateTime的currentDateTime获得当前的日期时间并赋值给curDateTime
ui->dateTimeEdit_start->setDateTime(curDateTime);
ui->dateTimeEdit_end->setDateTime(curDateTime);
ui->comboBox_channel->setView(new QListView());
connect(ui->comboBox_channel,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(on_comboBox_channel_currentTextChanged(const QString&)));
for (int i = 0; i < g_ChannelBaseInfo.size(); i++) {
ui->comboBox_channel->insertItem(i,g_ChannelBaseInfo[i].channelName);
}
2023-04-14 19:30:30 +08:00
}
CHistoryAlarm::~CHistoryAlarm()
{
delete ui;
}
2023-04-27 19:48:15 +08:00
void CHistoryAlarm::on_comboBox_channel_currentTextChanged(const QString& strChannelName)
{
int i = 0;
for (i = 0; i < g_ChannelBaseInfo.size(); i++) {
if(strChannelName == g_ChannelBaseInfo[i].channelName){
m_strChannelID = g_ChannelBaseInfo[i].channelID;
break;
}
}
}
void CHistoryAlarm::createRowItem(int Row,QVariantList RowItem)
{
model->setRowCount(Row+1);
for (int j = 0; j < RowItem.size(); ++j)
{
model->setData(model->index(Row,j,QModelIndex()),RowItem.at(j));
}
}
void CHistoryAlarm::on_pushButton_search_clicked()
{
model->removeRows(0, model->rowCount());
QDateTime dateTimeStart =ui->dateTimeEdit_start->dateTime();
QDateTime dateTimeEnd =ui->dateTimeEdit_end->dateTime();
int timestampStart = dateTimeStart.toTime_t();
int timestampEnd = dateTimeEnd.toTime_t();
QString strTableName = "t_TriggerEvent",strSql;
strSql = QString(" triggeredTime > %1 and triggeredTime < %2 order by triggeredTime ").arg(timestampStart).arg(timestampEnd);
m_vecTriggerEvent = g_SqliteDB->GetTriggerEvent(strTableName,strSql);
if(m_vecTriggerEvent.size() > 0){
for (int i = 0; i < m_vecTriggerEvent.size(); i++) {
QVariantList strRowItem ;
QString TStr = QDateTime::fromSecsSinceEpoch(m_vecTriggerEvent[i].triggeredTime).toString("yyyy-MM-dd hh:mm:ss");
strRowItem << i + 1 << m_vecTriggerEvent[i].triggeredNotification << m_vecTriggerEvent[i].triggeredFeatureName << TStr;
createRowItem(i,strRowItem);
}
QMyTableViewBtnDelegate *m_btnDelegate = new QMyTableViewBtnDelegate(QStringList()<<"详情", this);
ui->tableView->setItemDelegateForColumn(5, m_btnDelegate);
connect(m_btnDelegate, SIGNAL(editData(const QModelIndex &)), this,SLOT(Details(const QModelIndex &)));
}else{
QMessageBox::information(this, "提示", QString("未查询到数据!"));
}
}
void CHistoryAlarm::Details(const QModelIndex &index)
{
int row = index.row();
CAlarmDetails *dialog = new CAlarmDetails();
dialog->ViewData(m_vecTriggerEvent[row]);
dialog->setWindowModality(Qt::ApplicationModal);
dialog->show();
}