113 lines
4.1 KiB
C++
113 lines
4.1 KiB
C++
#include "HistoryAlarm.h"
|
||
#include "ui_HistoryAlarm.h"
|
||
#include <QListView>
|
||
#include "sqlitedb.h"
|
||
#include "QMyTableViewBtnDelegate.h"
|
||
#include "AlarmDetails.h"
|
||
|
||
|
||
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);
|
||
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
|
||
ui->tableView->setColumnWidth(2, 300);
|
||
ui->tableView->setColumnWidth(3, 300);
|
||
ui->tableView->setColumnWidth(4, 300);
|
||
ui->tableView->setAlternatingRowColors(true);
|
||
|
||
ui->tableView->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);
|
||
ui->tableView->horizontalHeader()->setSectionResizeMode(5,QHeaderView::ResizeToContents);
|
||
|
||
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);
|
||
}
|
||
|
||
}
|
||
|
||
CHistoryAlarm::~CHistoryAlarm()
|
||
{
|
||
delete ui;
|
||
}
|
||
|
||
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();
|
||
}
|
||
|