基于QT的销售管理系统demo

基于QT的销售管理系统demo
一、创建数据库表

  • 数据库的设计比较粗糙:

1.客户档案表

客户代码客户名称联系人联系地址订单记录
customerIdcustomerNamelinkManaddressorderRecord

2.产品报价表

产品代码产品名称单价类型
productIdproductNameunittype

3.订单表

订单号客户代码客户名称产品代码产品名称单价数量总价下单时间
OrderIdcustomerIdcustomerNameproductIdproductNameunitcounttotalorderTime

4.管理员表

Id用户名密码
自增namepassword

5.其它表
二、新建一个QT项目,命名为SaleDemo

  • 修改mainwindow.ui文件,绘制主界面,将要实现的功能绘制上去,如下图所示
    在这里插入图片描述

  • 在main.cpp文件中定义一个连接sqlserver数据库的函数OpenDatabase,主要代码如下:

    void OpenDatabase(){
    QSqlDatabase db = QSqlDatabase::addDatabase(“QODBC”);//加载SQLSERVER驱动
    //设置数据库主机ID、数据库名称、用户名、密码
    db.setDatabaseName(QString(“DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2;UID=%3;PWD=%4”).arg(“localhost”).arg(“mydb”).arg(“sa”).arg(“123456”));
    //判断数据库是否连接成功
    if(!db.open()){
    QMessageBox::warning(NULL,“FAILE”,“数据库连接失败!!”);
    }
    else
    qDebug()<<“Database connection successful”;
    }

  • 在项目中添加Qt的设计师界面类,命名为login,增加一个登录验证功能,并修改login.ui文件,界面如下:
    在这里插入图片描述

右键点击登录按钮,转到槽,修改槽函数的内容如下:

void login::on_loginButton_clicked()
{
QString name;
QString password;
name = ui->nameline->text();//获取输入的用户名,ui->nameline->text()是返回输入的值
password = ui->passwordline->text();//获取输入的密码,ui->passwordline->text()是返回输入的值
if(name==""){
QMessageBox::warning(this,“提示”,“用户名不能为空!”);
}
else if (password=="") {
QMessageBox::warning(this,“提示”,“密码不能为空!”);
}
else {
QString sql = QString(“select * from user_table where name=’%1’ and password=’%2’”).arg(name).arg(password);//查询输入的用户名和密码是否匹配
QSqlQuery query;
// qDebug()<<sql;//输入sql语句,查看语法是否正确
query.exec(sql);//执行查询语句
if(query.first()){
QMessageBox::information(this,"",“登录成功!”);
accept();
}
else{
QMessageBox::warning(this,“error”,“用户名或者密码错误!!”);
//清空输入的内容,并将光标的位置指定到nameline
ui->nameline->clear();
ui->passwordline->clear();
ui->nameline->setFocus();
}
}
}

修改main.cpp的内容:

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
OpenDatabase();//连接数据库
MainWindow w;
login log;
if(log.exec()==QDialog::Accepted){
w.show();
return a.exec();//进入消息循环
}
else
return 0;
}

到这里,我们的登录功能基本上就实现了,我们测试一下

在这里插入图片描述

三、维护查询功能模块的实现

  • 新增客户信息
    在项目中新建一个设计师界面类,如下图所示:
    在这里插入图片描述

首先修改我们的CustomerAdd.ui文件,如下图所示:
在这里插入图片描述

其中,客户名称、联系人、联系地址都是需要我们输入的,客户代码是随机生成的。
我们先来实现客户代码分配的功能,右键点击客户代码分配转到槽,进行代码编写,具体代码如下:

void CustomerAdd::on_CodeGetBtn_clicked()
{
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
int a = qrand()%100000; //随机生成0到100000的随机数
qDebug()<< a;
QString s = QString::number(a, 10);//将int类型的a转换为QString类型的s,使用QString::number()
qDebug()<< s;
ui->code->setText(s);//将生成的code显示到前端页面上
}

接下来实现新增客户信息的功能,具体代码如下:

void CustomerAdd::on_AddBtn_clicked()
{
//定义四个QString类型的变量,用于接收我们输入的内容
QString name;//客户名称
QString newcode;//客户代码
QString linkman;//联系人
QString address;//联系地址
name = ui->nameline->text();
newcode = ui->code->text();//在前面的客户代码分配函数里,label里的内容已经是QString类型了
linkman = ui->linkline->text();
address = ui->addressline->text();
QSqlQuery query;
//使用占位,将我们输入的值赋值到sql语句中
query.prepare(“insert into cus_table (customerId,customerName,linkMan,address) values(:a,:b,:c,:d)”);
query.bindValue(":a",newcode);
query.bindValue(":b",name);
query.bindValue(":c",linkman);
query.bindValue(":d",address);
if(query.exec()){
QMessageBox::information(this,“录入成功”,“新增客户信息成功”);
//新增成功后,将所有输入的信息清空,包括我们分配的代码
ui->nameline->clear();
ui->code->setText(“客户代码待分配”);
ui->linkline->clear();
ui->addressline->clear();
ui->nameline->setFocus();//将光标位置定位到我们的客户名称这一行
}
else{
QMessageBox::warning(this,“录入失败”,“新增客户信息失败”);
}
}

功能实现的代码就差不多写完了,可以测试一下:

在这里插入图片描述

再去sqlserver数据库可以看到我们的信息已经添加进去了,数据库就不截图了

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值