QT 商品删除与导出数据(库存管理系统)

商品删除

void MainWidget::on_pushButton_DeleteGoods_clicked()
{
    // 1:首先:提醒用户是否确认删除此记录
    // 1:获取QMessageBox选择按钮:Yes 或 No
    int iClick=QMessageBox::warning(this,"警告","警告:删除操作是根据商品编号进行删除,请确认是否安全?",QMessageBox::Yes|QMessageBox::No);

    // 2:判断用户是否单击Yes按钮
    if(iClick==QMessageBox::Yes)
    {
        // 3:获取当前选择行进行删除:商品记录数据
        int iRow=ui->tableWidget_ListData->currentRow();

        // 4:根据index(行,列)获取对应商品编号
        QString strValue=ui->tableWidget_ListData->model()->index(iRow,0).data().toString();
        // QMessageBox::information(this,"测试","获取数据为:"+strValue);

        QSqlQuery result;
        QString strid=strValue;

        // 5:判断删除商品编号是否为空???
        if(strid==NULL)
        {
            QMessageBox::critical(this,"错误","提示:请选择要删除商品编号,请重新检查?");
            return;
        }


        // 6:实现删除
        QString sqlquery=QString("delete from commoditydatatable where StockId = %1").arg(strid);
        if(result.exec(sqlquery))
        {
            // 删除提示
            QMessageBox::information(this,"提示","删除商品记录成功!");

            // 清空表格控件数据
            ui->tableWidget_ListData->clear();

            // 设置表格控件标题(表头)
            ui->tableWidget_ListData->setHorizontalHeaderLabels(QStringList()<<"编号"<<"名称"<<"数量"<<"单价"<<"供应商家"<<"负责人"<<"入库时间"<<"出库时间"<<"备注");

            // 调用函数将数据表中数据再次展示到表格控件当中
            InitTableWidgetFunc();
        }

    }
    else
    {
        return;
    }
}

导出数据为excel

// 导出数据
#include <QFileDialog>
#include <QAxObject>
#include <QDesktopServices>

// 该函数功能:导出表格控件数据,直接生成Excel文件保存
void MainWidget::on_pushButton_LoadData_clicked()
{
    // 保存文件扩展名为:.xls
    QDateTime time;
    QString strTemp;

    // 1:获取当前系统当时作为文件名称进行保存
    time=QDateTime::currentDateTime();
    strTemp=time.toString("yyyy-MM-dd-hhmmss");
    // QMessageBox::information(this,"测试",strTemp);

    // 2:应用文件对话框来保存要导出文件名称(设置保存的文件名称)及数据信息
    QString strFileName=QFileDialog::getSaveFileName(this,tr("Excel Files"),QString("./%1%2.xls").arg(strTemp).arg("_kcgl"),tr("Excel Files(*.xls)"));
    // QMessageBox::information(this,"测试",strFileName);

    // 3:处理工作簿
    if(strFileName!=NULL)
    {
        QAxObject *excel=new QAxObject;
        if(excel->setControl("Excel.Application"));
        {
            excel->dynamicCall("SetVisible (bool Visible)",false);
            excel->setProperty("DisplayAlerts",false);

            QAxObject *workbooks=excel->querySubObject("WorkBooks"); // 获得工作簿集合
            workbooks->dynamicCall("Add"); // 创建一个工作簿
            QAxObject *workbook=excel->querySubObject("ActiveWorkBook"); // 获得当前工作簿
            QAxObject *worksheet=workbook->querySubObject("Worksheets(int)",1);
            QAxObject *cell;

            // 1:添加Excel文件表头数据
            for(int i=1;i<=ui->tableWidget_ListData->columnCount();i++)
            {
                cell=worksheet->querySubObject("Cells(int,int)",1,i);
                cell->setProperty("RowHeight",25);
                cell->dynamicCall("SetValue(const QString&)",ui->tableWidget_ListData->horizontalHeaderItem(i-1)->data(0).toString());
            }

            // 2:将表格数据保存到Excel文件当中
            for(int j=2;j<=ui->tableWidget_ListData->rowCount()+1;j++)
            {
                for(int k=1;k<=ui->tableWidget_ListData->columnCount();k++)
                {
                    cell=worksheet->querySubObject("Cells(int,int)",j,k);
                    cell->dynamicCall("SetValue(const QString&",ui->tableWidget_ListData->item(j-2,k-1)->text()+"\t");

                }
            }

            // 3:将刚才创建的Excel文件直接保存到指定的目录下
            workbook->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(strFileName)); // 保存到strFileName
            workbook->dynamicCall("Close()");
            excel->dynamicCall("Quit()");
            delete excel;
            excel=NULL;
        }
    }
}

 

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: QT是一款跨平台的C++应用程序开发框架,在搭建一套库存管理系统方面具有很大的优势。下面是关于如何使用QT搭建库存管理系统的简要步骤: 1. 数据库设计:首先,需要设计一个数据库来存储库存管理系统所需的数据,包括产品信息、库存数量、进货与销售记录等。可以使用SQLite数据库作为本地数据库或者MySQL等作为远程数据库。 2. 界面设计:使用QT提供的界面开发工具,设计一个用户友好的界面。可以使用QT的UI设计师来快速创建和管理界面。 3. 功能模块划分:根据库存管理系统的需求,将其拆分为不同的功能模块,例如产品管理、进货管理、销售管理、库存查询等。每个功能模块对应一个或多个界面和相关的业务逻辑。 4. 业务逻辑开发:根据需求,使用C++语言编写相应的业务逻辑代码。例如,在产品管理模块中,需要实现产品的新增、编辑和删除功能;在进货管理模块中,需要实现进货记录的添加和更新功能等。 5. 数据库连接:使用QT提供的数据库模块,与所选用的数据库建立连接,并编写相关的数据库操作代码,实现数据的增删改查等功能。 6. 用户交互:在界面上添加必要的用户交互功能,例如按钮、菜单、表格等,使用户可以方便地进行数据录入、查询和操作。 7. 数据校验与处理:在数据录入的过程中,进行数据校验和处理,确保数据的有效性和准确性。例如,对于产品的数量字段,需要进行数据范围的校验。 8. 报表生成:根据需求,编写报表生成的代码,将库存、进货、销售等数据按照需求生成相应的报表,方便管理者进行数据分析和决策。 以上是使用QT搭建一套库存管理系统的大致步骤,具体的实现过程需要根据实际需求进行设计和开发QT提供了丰富的开发工具和库函数,使得开发库存管理系统变得更加简单和高效。 ### 回答2: 首先,要搭建一套基于Qt库存管理系统,我们需要考虑以下几个方面: 1. 界面设计:使用Qt的界面设计功能来创建一个用户友好的界面,可以包括菜单、工具栏、表格、图表等元素,以方便用户进行库存管理操作。 2. 数据库设计:使用Qt数据库模块连接和操作数据库,设计库存管理系统所需的数据库表结构,其中包括商品信息、库存数量、进货信息、出货信息等。 3. 功能实现:根据实际需求,使用Qt的编程能力实现库存管理系统的各项功能,如添加新商品、编辑商品信息、查询库存数量、记录进货和出货等操作。 4. 数据统计与分析:利用Qt的图表和数据处理功能,对库存管理系统中的数据进行统计和分析,生成销售报表、库存报表等,以帮助用户更好地了解库存情况和经营状况。 5. 部署与交付:将搭建好的库存管理系统打包成可执行文件或生成安装程序,以便用户可以方便地部署和使用。 总结起来,搭建一套基于Qt库存管理系统需要涉及界面设计、数据库设计、功能实现、数据统计与分析等方面,通过充分利用Qt的强大功能和丰富的工具,可以快速高效地构建一个功能完备、界面友好、易于使用的库存管理系统。 ### 回答3: Qt是一款跨平台的C++开发框架,具有图形界面设计能力和丰富的功能库,可以用于搭建库存管理系统。以下是关于如何使用Qt搭建一套库存管理系统的简要介绍。 首先,我们需要定义库存管理系统的功能和需求。比如,我们需要记录和管理产品的信息,包括产品的名称、编号、价格、库存数量等。同时,我们还需要能够进行产品的出库和入库操作,计算库存余量,并生成相应的报表。 使用Qt框架,我们可以利用Qt的图形界面设计功能来创建使用者友好的界面。我们可以使用Qt的窗口类(如QMainWindow)来创建主界面,并在界面上添加所需的各种控件(如文本框、按钮、表格等)来显示和输入产品信息。我们还可以使用Qt的信号和槽机制来实现用户与界面之间的交互,比如点击按钮触发相应的操作。 在储存产品信息方面,我们可以使用Qt数据库模块(如QSqlDatabase)来连接数据库,并使用SQL语句来创建和管理产品信息表。我们可以利用Qt的表格控件(如QTableView)来显示产品信息,并提供相应的操作(比如新增、编辑和删除)来对产品信息进行管理。 对于出库和入库操作,我们可以在界面上添加相应的按钮,并在点击按钮时触发相应的操作。比如,点击“出库”按钮时,系统可以弹出一个对话框供用户输入出库商品的数量,然后更新库存数量并生成相应的出库记录。同样地,对于入库操作,系统也可以通过类似的方式实现。 最后,我们可以使用Qt的绘图功能来生成报表。根据需要,我们可以使用Qt提供的绘图类(如QChart)来创建柱状图或折线图,并根据产品的库存数量或其他指标来可视化数据。 总之,通过使用Qt框架,我们可以在图形界面操作的基础上,利用丰富的功能库和数据库模块来搭建一套库存管理系统,满足产品信息的记录、出库入库操作及报表生成等功能需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值