master
2290867136 2 years ago
parent 0732c2ec8a
commit 15a4f2403e

@ -0,0 +1,28 @@
#include "add_administration.h"
#include "ui_add_administration.h"
#include "administration.h"
add_administration::add_administration(QWidget *parent) :
QDialog(parent),
ui(new Ui::add_administration)
{
ui->setupUi(this);
}
add_administration::~add_administration()
{
delete ui;
}
void add_administration::on_pushButton_clicked()
{
administration *ad = new administration;
QSqlQuery query((db));
query.prepare("INSERT into room VALUES(:n,1,1,1,1,NULL,NULL);");
query.bindValue(":n",ui->lineEdit->text());
query.exec();
QMessageBox::information(this,tr("提示"),("添加成功,请刷新"));
}

@ -0,0 +1,28 @@
#ifndef ADD_ADMINISTRATION_H
#define ADD_ADMINISTRATION_H
#include <QDialog>
#include <qsqldatabase.h>
#include <administration.h>
namespace Ui {
class add_administration;
}
class add_administration : public QDialog
{
Q_OBJECT
public:
explicit add_administration(QWidget *parent = nullptr);
~add_administration();
private slots:
void on_pushButton_clicked();
private:
Ui::add_administration *ui;
QSqlDatabase db;
};
#endif // ADD_ADMINISTRATION_H

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>add_administration</class>
<widget class="QDialog" name="add_administration">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>140</x>
<y>240</y>
<width>80</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string>确定</string>
</property>
</widget>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>90</x>
<y>90</y>
<width>191</width>
<height>81</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>房间号:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit"/>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

@ -1,6 +1,7 @@
#include "administration.h"
#include "ui_administration.h"
#include "registers.h"
#include "add_administration.h"
administration::administration(QWidget *parent) :
QMainWindow(parent),
@ -37,11 +38,16 @@ void administration::paintEvent(QPaintEvent*)
ui->AcounTable->hide();
ui->HotelTable->hide();
on_Hman_clicked();
}
void administration::init_account(){
findall2();
flush_data2(userinfo);
value_customer = ui->AcounTable->model()->rowCount();
findall3();
flush_data3(userinfo);
ui->AcounTable->setHorizontalHeaderLabels({"客户账号","密码","姓名","性别","身份证"});
}
@ -115,19 +121,14 @@ void administration::on_Add_clicked()
else if(tool == 1){
int cols=ui->HotelTable->columnCount();
int rows=ui->HotelTable->rowCount();
qDebug()<<rows;
ui->HotelTable->insertRow(rows);
for(int i=0;i<cols;i++)
{
ui->HotelTable->setItem(rows,i,new QTableWidgetItem(""));
}
ui->HotelTable->selectRow(rows);
QSqlQuery query((db));
query.prepare("INSERT into room VALUES(:n,1,1,1,1,NULL,NULL);");
query.bindValue(":n",QRandomGenerator::global()->bounded(10000));
query.exec();
QMessageBox::information(this,tr("提示"),("添加成功"));
init_hotel();
add_administration *ad = new add_administration;
ad->show();
}
else QMessageBox::about(this,"警告","出错");
}
@ -136,17 +137,36 @@ void administration::on_Add_clicked()
void administration::on_Del_clicked()
{
if(tool == 0){
//if(row <= value_customer-userinfo.size()+1){
QSqlQuery query((db));
QTableWidgetItem *item = ui->AcounTable->currentItem();
QString n = 0;
n = ui->AcounTable->model()->index(item->row(),0).data().toString();//n是房间号
n = ui->AcounTable->model()->index(item->row(),0).data().toString();
int num = n.toInt();
query.prepare("DELETE from customer where account = :num ");
query.bindValue(":num",num);
query.bindValue(":num",n);
query.exec();
query.prepare("DELETE from employee where account = :num ");
query.bindValue(":num",n);
query.exec();
if(item==Q_NULLPTR)return;
ui->AcounTable->removeRow(item->row());
QMessageBox::information(this,tr("提示"),("删除成功"));
init_account();
// }
/* else if(row > value_customer-userinfo.size()){
QSqlQuery query((db));
QTableWidgetItem *item = ui->AcounTable->currentItem();
QString n = 0;
n = ui->AcounTable->model()->index(item->row(),0).data().toString();//n是房间号
int num = n.toInt();
if(item==Q_NULLPTR)return;
ui->AcounTable->removeRow(item->row());
QMessageBox::information(this,tr("提示"),("删除成功"));
init_account();
}*/
}
else if(tool == 1){
@ -167,11 +187,12 @@ void administration::on_Del_clicked()
}
//修改操作//???
//修改操作
void administration::on_Modify_clicked()
{
int c = row;
if(tool == 0){
//if(row <= value_customer-userinfo.size()){
QSqlQuery query((db));
QString n1 = 0;
n1 = ui->AcounTable->model()->index(c,0).data().toString();//n是房间号
@ -180,27 +201,43 @@ void administration::on_Modify_clicked()
n2 = ui->AcounTable->model()->index(c,1).data().toString();
query.prepare("UPDATE customer set password=:QS where account = :num");
query.bindValue(":QS",n2);
query.bindValue(":num",num);
query.bindValue(":num",n1);
query.exec();
QString n3 = 0;
n3 = ui->AcounTable->model()->index(c,2).data().toString();
query.prepare("UPDATE customer set name=:QS where account = :num");
query.bindValue(":QS",n3);
query.bindValue(":num",num);
query.bindValue(":num",n1);
query.exec();
QString n4 = 0;
n4 = ui->AcounTable->model()->index(c,3).data().toString();
query.prepare("UPDATE customer set gender=:QS where account = :num");
query.bindValue(":QS",n4);
query.bindValue(":num",num);
query.bindValue(":num",n1);
query.exec();
QString n5 = 0;
n5 = ui->AcounTable->model()->index(c,4).data().toString();
query.prepare("UPDATE customer set id=:QS where account = :num");
query.bindValue(":QS",n5);
query.bindValue(":num",num);
query.bindValue(":num",n1);
query.exec();
query.prepare("UPDATE employee set password=:QS where account = :num");
query.bindValue(":QS",n2);
query.bindValue(":num",n1);
query.exec();
init_account();
// }
/* else if(row > value_customer-userinfo.size()){
QSqlQuery query((db));
QString n1 = 0;
n1 = ui->AcounTable->model()->index(row,0).data().toString();//n是房间号
num = n1.toInt();
QString n2 = "0";
n2 = ui->AcounTable->model()->index(row,1).data().toString();
init_account();*/
//}
}
else if(tool == 1){
@ -274,6 +311,33 @@ void administration::flush_data(QVector<QVector<QString>>&userinfo)//插入数
}
}
}
void administration::flush_data3(QVector<QVector<QString>>&userinfo)//插入数据 完成
{
//ui->AcounTable->clear();
if(!userinfo.size())return;
ui->AcounTable->setRowCount(userinfo.size()+ui->AcounTable->model()->rowCount());//行
//ui->AcounTable->setColumnCount(5);//列
for(int i=0;i<userinfo.size();i++)
{
for(int j=0;j<userinfo[0].size();j++)
{
QTableWidgetItem *QW = new QTableWidgetItem(userinfo[i][j]);
QTableWidgetItem *QW2 = new QTableWidgetItem("/");
QTableWidgetItem *QW3 = new QTableWidgetItem("/");
QTableWidgetItem *QW4 = new QTableWidgetItem("/");
ui->AcounTable->setItem(i+ui->AcounTable->model()->rowCount()-userinfo.size(),j,QW);//行 列 内容
ui->AcounTable->setItem(i+ui->AcounTable->model()->rowCount()-userinfo.size(),2,QW2);
ui->AcounTable->setItem(i+ui->AcounTable->model()->rowCount()-userinfo.size(),3,QW3);
ui->AcounTable->setItem(i+ui->AcounTable->model()->rowCount()-userinfo.size(),4,QW4);
QW->setTextAlignment(Qt::AlignCenter);//设置中心对齐
QW2->setTextAlignment(Qt::AlignCenter);
QW3->setTextAlignment(Qt::AlignCenter);
QW4->setTextAlignment(Qt::AlignCenter);
}
}
}
//搜索
void administration::findall()//显示全部 完成
{
@ -313,35 +377,60 @@ void administration::findall2()//显示全部 完成
}
}
void administration::on_Search_clicked()
void administration::findall3()//显示全部 完成
{
userinfo.clear();//清楚存储向量rec的向量的数据
QSqlQuery query((db));
query.prepare("select * from employee");
if(query.exec())
{
while (query.next()) {
QVector<QString>rec;
for(int i=0;i<query.record().count();i++)
{
rec.push_back(query.record().value(i).toString());//将sql搜索到的一行记录塞入rec向量
}
userinfo.push_back(rec);//将rec向量塞入向量
}
}
}
void administration::on_Search_clicked()
{
QString number=ui->lineEdit->text();
if(number == NULL && tool == 0){
findall2();
flush_data2(userinfo);
init_account();
}
else if(number == NULL && tool == 1){
findall();
flush_data(userinfo);
init_hotel();
}
else if(find_byname2(number) && tool == 0)
{
flush_data2(userinfo);
userinfo.clear();
if(ui->AcounTable->model()->index(0,0).data().toString() != NULL)condition_search = 1;
if(condition_search == 0 && find_byname3(number) && tool == 0){
flush_data2(userinfo);
userinfo.clear();
}
condition_search = 0;
}
else if(find_byname(number) && tool == 1){
flush_data(userinfo);
userinfo.clear();
}
else QMessageBox::critical(nullptr, "错误", "未知的错误", QMessageBox::Retry);
ui->AcounTable->setHorizontalHeaderLabels({"客户账号","密码","姓名","性别","身份证"});
ui->HotelTable->setHorizontalHeaderLabels({"房间号","房间类型","是否带窗","负责人","状态"});//设置表头
}
bool administration::find_byname(QString n)//搜索 完成
{
int number = n.toInt();
@ -360,7 +449,6 @@ bool administration::find_byname(QString n)//搜索 完成
rec.push_back(query.record().value("status").toString());
rec.push_back(query.record().value("checkout_time").toString());
rec.push_back(query.record().value("customer_id").toString());
userinfo.push_back(rec);
}
return true;
@ -390,6 +478,25 @@ bool administration::find_byname2(QString n)//搜索
return false;
}
bool administration::find_byname3(QString n)//搜索
{
userinfo.clear();
QSqlQuery query(db);
query.prepare("select * from employee where account like :number;");//以开头搜索 不行
query.bindValue(":number",n);
if(query.exec())
{
while (query.next()) {
QVector<QString>rec;
rec.push_back(query.record().value("account").toString());
rec.push_back(query.record().value("password").toString());
userinfo.push_back(rec);
}
return true;
}
return false;
}
void administration::on_AcounTable_itemClicked(QTableWidgetItem *item)
{
row = item->row();
@ -403,3 +510,4 @@ void administration::on_HotelTable_itemClicked(QTableWidgetItem *item)
qDebug() << "当前选中行: " << row;
}

@ -31,6 +31,7 @@ public:
void init();
void findall();
void findall2();
void findall3();
void init_hotel();
void init_account();
@ -59,15 +60,20 @@ private:
QLabel *labels;
void flush_data(QVector<QVector<QString>>&userinfo);
void flush_data2(QVector<QVector<QString>>&userinfo);
void flush_data3(QVector<QVector<QString>>&userinfo);
QVector<QVector<QString>>userinfo;
bool find_byname(QString name);
bool find_byname2(QString name);
bool find_byname3(QString name);
QSqlDatabase db;
int row;
int n = 1000;
int m =1000;
int tool = 0;
int num;
int value_customer;
int value_employee;
int condition_search = 0;
};
#endif // ADMINISTRATION_H

Loading…
Cancel
Save