3500/HistoryAlarm.cpp

113 lines
4.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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();
}