#include "Administrator.h"
Administrator::Administrator(QWidget* parent)
: QMainWindow(parent)
{
ui.setupUi(this);
opentable(tableadmin, ui.adminView, "administrator", selectadmin);
opentable(tableworker, ui.workerView, "worker", selectworker);
opentable(tableconsumer, ui.consumerView, "consumer", selectconsumer);
opentable(tableorder, ui.orderView, "order", selectorder);
opentable(tablecar, ui.carView, "car", selectcar);
table = tableadmin;
select = selectadmin;
comselect = new QComboBox;
comselect->addItems(admins);
ui.mainToolBar->addWidget(comselect);
edit = new QLineEdit;
edit->setMaximumWidth(100);
ui.mainToolBar->addWidget(edit);
Strs = Admins;
iniCarChart();
iniWorkerChart();
iniOrderChart();
}
Administrator::~Administrator()
{
}
void Administrator::on_actInsert_triggered()
{
table->insertRow(table->rowCount(), QModelIndex());
QModelIndex index = table->index(table->rowCount() - 1, 1);
select->clearSelection();
select->setCurrentIndex(index, QItemSelectionModel::Select);
if (table == tableworker)
{
table->setData(table->index(index.row(), 0), table->record(index.row() - 1).value(0).toULongLong() + 1);
table->setData(table->index(index.row(), 4), 0);
table->setData(table->index(index.row(), 5), 0);
table->setData(table->index(index.row(), 6), "空闲中");
}
ui.actSave->setEnabled(true);
ui.actCancel->setEnabled(true);
}
void Administrator::iniWorkerChart()
{
QChart* chart = new QChart();
chart->setTitle("员工业绩排行前10名");
chart->setAnimationOptions(QChart::SeriesAnimations);
ui.WorkerView->setChart(chart);
ui.WorkerView->setRenderHint(QPainter::Antialiasing);
}
void Administrator::iniCarChart()
{
QChart* chart = new QChart();
chart->setTitle("车辆型号");
chart->setAnimationOptions(QChart::SeriesAnimations);
ui.CarView->setChart(chart);
ui.CarView->setRenderHint(QPainter::Antialiasing);
}
void Administrator::iniOrderChart()
{
QChart* chart = new QChart();
chart->setTitle("公司盈利情况");
chart->setAnimationOptions(QChart::SeriesAnimations);
ui.OrderView->setChart(chart);
ui.OrderView->setRenderHint(QPainter::Antialiasing);
}
void Administrator::buildWorkerChart()
{
QChart* chart = ui.WorkerView->chart();
chart->removeAllSeries();
chart->removeAxis(chart->axisX());
chart->removeAxis(chart->axisY());
QBarSet* set = new QBarSet("业绩");
QSqlQuery query;
QStringList strs;
query.exec("select Name,Experience from worker order by Experience");
int n = query.size();
while (query.next())
{
set->append(query.value("Experience").toULongLong());
strs << query.value("Name").toString();
}
set->setColor(Qt::darkBlue);
QHorizontalBarSeries* series = new QHorizontalBarSeries();
series->append(set);
chart->addSeries(series);
QBarCategoryAxis* axisY = new QBarCategoryAxis();
axisY->append(strs);
chart->setAxisY(axisY, series);
axisY->setRange(strs[strs.count() - 10], strs.last());
QValueAxis* axisX = new QValueAxis();
axisX->setTitleText("业绩");
chart->setAxisX(axisX, series);
}
void Administrator::buildCarChart()
{
QChart* chart = ui.CarView->chart();
chart->removeAllSeries();
chart->removeAxis(chart->axisX());
chart->removeAxis(chart->axisY());
QBarSet* set = new QBarSet("种类");
QSqlQuery query;
QStringList strs;
query.exec("select Model,count(Model) from car group by Model order by Model");
int n = query.size();
while (query.next())
{
set->append(query.value("count(Model)").toULongLong());
strs << query.value("Model").toString();
}
set->setColor(Qt::color1);
QBarSeries* series = new QBarSeries();
series->append(set);
chart->addSeries(series);
QBarCategoryAxis* axisX = new QBarCategoryAxis();
axisX->append(strs);
chart->setAxisX(axisX, series);
QValueAxis* axisY = new QValueAxis();
axisY->setTitleText("车辆数");
chart->setAxisY(axisY, series);
}
void Administrator::buildOrderChart()
{
QChart* chart = ui.OrderView->chart();
chart->removeAllSeries();
chart->removeAxis(chart->axisX());
chart->removeAxis(chart->axisY());
QLineSeries* line = new QLineSeries();
QSqlQuery query;
query.exec("select sum(Pay) from `order` group by year(LDate)");
int n = query.size();
for (int i = 2010; query.next(); i++)line->append(QPointF(i, query.value(0).toFloat()));
chart->addSeries(line);
QValueAxis* axisX = new QValueAxis(), * axisY = new QValueAxis();
axisX->setTitleText("年份");
axisX->setLabelFormat("%.0f");
axisX->setTickCount(n);
axisY->setTitleText("金币");
chart->setAxisX(axisX, line);
chart->setAxisY(axisY, line);
}
void Administrator::opentable(QSqlRelationalTableModel*& table, QTableView* tableView, QString tablename, QItemSelectionModel*& select)
{
table = new QSqlRelationalTableModel(this, HX::Database);
table->setTable(tablename);
table->setEditStrategy(QSqlRelationalTableModel::OnManualSubmit);
if (!(table->select()))
{
QMessageBox::critical(this, "错误", table->lastError().text());
return;
}
QStringList strs;
if (tablename == "administrator")strs = admins;
else if (tablename == "worker")strs = workers;
else if (tablename == "car")strs = cars;
else if (tablename == "consumer")strs = consumers;
else if (tablename == "order")strs = orders;
for (int i = 0; i < strs.count(); i++)table->setHeaderData(i, Qt::Horizontal, strs[i]);
select = new QItemSelectionModel(table);
connect(select, SIGNAL(currentChanged(QModelIndex, QModelIndex)), this, SLOT(on_currentChanged(QModelIndex, QModelIndex)));
tableView->setModel(table);
tableView->setSelectionModel(select);
if (tablename == "worker" || tablename == "consumer")tableView->setColumnHidden(table->fieldIndex("Password"), true);
}
void Administrator::on_actDelete_triggered()
{
QModelIndex index = select->currentIndex();
table->removeRow(index.row());
ui.actSave->setEnabled(true);
ui.actCancel->setEnabled(true);
}
void Administrator::on_actExport_triggered()
{
QString filepath = QFileDialog::getSaveFileName(this, "保存到...", "副本", "Excel 97-2003 工作簿(*.xls);;Excel 工作簿(*.xlsx)");
if (filepath != "")
{
int row = table->rowCount();
int col = table->columnCount();
QList<QString> list;
QString HeaderRow;
for (int i = 0; i < col; i++)HeaderRow.append(table->headerData(i, Qt::Horizontal, Qt::DisplayRole).toString() + "\t");
list.push_back(HeaderRow);
for (int i = 0; i < row; i++)
{
QString rowStr = "";
for (int j = 0; j < col; j++) {
QModelIndex index = table->index(i, j);
rowStr += table->data(index).toString() + "\t";
}
list.push_back(rowStr);
}
QTextEdit textEdit;
for (int i = 0; i < list.size(); i++)textEdit.append(list.at(i));
QFile file(filepath);
if (file.open(QFile::WriteOnly | QIODevice::Text))
{
QTextStream ts(&file);
ts << textEdit.document()->toPlainText();
file.close();
QMessageBox::information(this, "导出", "数据导出成功!");
}
else QMessageBox::information(this, "导出", "文件打开错误,数据导出失败!");
}
}
void Administrator::on_actSave_triggered()
{
uint row = tableworker->rowCount() - 1;
tableworker->setData(tableworker->index(row, 7), tableworker->record(row).value(2).toString());
QSqlQuery query;
QStringList strs = { "administrator","worker","car" };
for (QString str : strs)query.exec(QString("update %1 set checked = 0 where checked = 1").arg(str));
if (!table->submitAll() && !query.isActive())QMessageBox::critical(this, "保存失败!", "错误信息:" + table->lastError().text());
else
{
ui.actSave->setEnabled(false);
ui.actCancel->setEnabled(false);
}
}
void Administrator::on_actSelect_triggered()
{
table->setFilter(QString("%1 like '%%2%'").arg(Strs[comselect->currentIndex()]).arg(edit->text()));
}
void Administrator::on_actCancel_triggered()
{
table->revertAll();
ui.actSave->setEnabled(false);
ui.actCancel->setEnabled(false);
}
void Administrator::on_currentChanged(const QModelIndex& current, const QModelIndex& previous)
{
Q_UNUSED(current);
Q_UNUSED(previous);
ui.actSave->setEnabled(table->isDirty());
ui.actCancel->setEnabled(table->isDirty());
}
void Administrat
没有合适的资源?快使用搜索试试~ 我知道了~
毕设:基于QT,采用CS架构实现的汽车4S店维修系统.zip
共30个文件
bmp:6个
cpp:5个
ui:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 172 浏览量
2023-10-21
10:17:19
上传
评论
收藏 188KB ZIP 举报
温馨提示
毕设:基于QT,采用CS架构实现的汽车4S店维修系统.zip 毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统设计 系统开发 程序开发 C++ QT 源代码毕业设计 课程设计 系统
资源推荐
资源详情
资源评论
收起资源包目录
毕设:基于QT,采用CS架构实现的汽车4S店维修系统.zip (30个子文件)
project_code_0708
HX.sln 1KB
.gitattributes 2KB
腾讯云DMC_数据导出_fix_system.sql 23KB
HX
Worker.h 929B
Administrator.ui 8KB
HX.vcxproj 6KB
Administrator.cpp 9KB
HX.h 592B
main.cpp 167B
Worker.ui 13KB
Consumer.cpp 4KB
Consumer.ui 11KB
HX.ui 7KB
HX.vcxproj.filters 2KB
Consumer.h 933B
Worker.cpp 4KB
images
exit.bmp 1KB
维修工.jpg 12KB
客户.jpg 11KB
316.bmp 1KB
登录.jpg 129KB
save1.bmp 1KB
107.bmp 1KB
delete1.bmp 1KB
管理员.jpg 8KB
324.bmp 1KB
HX.cpp 3KB
Administrator.h 2KB
HX.qrc 444B
.gitignore 6KB
共 30 条
- 1
资源评论
辣椒种子
- 粉丝: 3481
- 资源: 5724
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 稽查监控平台标准化设计数据模型设计
- 一款极好用的 Office/WPS/Word/Excel/PPT/PDF工具箱软件 OfficeUtils 2.7
- 基于STM32的家庭环境参数检测系统设计
- 夺宝答题王答题小程序源码 开源可二开 Thinkphp内核
- Linux 系统下 Hadoop 安装配置教程.md
- 用于 CH32 MCU 的 CMake 实用程序(基于 STM32-CMake Proejct
- Linux 系统下 Hadoop 安装配置教程.md
- 基于ESO的 PMSM无传感器控制仿真-Matlab 2021b
- Python Programming - Hans-Petter Halvorsen
- Oracle 安装教程.md
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功