#include "packdetailform.h" #include "ui_packdetailform.h" #include "packinfo.h" #include PackDetailForm::PackDetailForm(QWidget *parent) : QWidget(parent), ui(new Ui::PackDetailForm) { ui->setupUi(this); productList(); detailsList(); ui->treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents); } PackDetailForm::~PackDetailForm() { delete ui; } void PackDetailForm::on_pushBack_clicked() { emit back(); } void PackDetailForm::on_pushButton_clicked() { nowPageNum = 0; // changeTable(database.GetValues("product",productSqlList)); QString condition = ""; if(!ui->codeSingleLine->text().isEmpty()){ condition.append("code_single="+ui->codeSingleLine->text()+" "); } if(!ui->batch_noLine->text().isEmpty()){ if(!condition.isEmpty()){ condition.append("and "); } condition.append("batch_no="+ui->batch_noLine->text()+" "); } if(!condition.isEmpty()){ condition = "where "+ condition; } condition.append("limit 0,20"); // qDebug()<pagesNum->setText(QString::number(pageNum)+"/"+QString::number(product.size()/20)); // int pageListNum = database.GetTablePage(); // pageNumAll = pageListNum / 20; // if(pageListNum % 20 > 0) // pageNumAll ++; ui->pagesNum->setText(QString("%1/%2").arg(nowPageNum+1).arg(pageNumAll)); } //往treewidget添加数据 void PackDetailForm::changeTreeWidget(QList> productList) { if(productList.isEmpty()){ QMessageBox::information(this,tr("提示"),tr("数据为空")); return; } ui->treeWidget->clear(); product = productList; /******************************************************************/ //循环添加数据 for(int i = 0;itongbu_clicked(item,i);}); // connect(tongbu_btn, SIGNAL(clicked(bool)), this, SLOT(tongbu_clicked())); auto code_single_btn = new QPushButton("打印码单"); connect(code_single_btn,&QPushButton::clicked,[i,this](){this->code_single_clicked(i);}); auto case_nember_btn = new QPushButton("打印箱单"); connect(case_nember_btn,SIGNAL(clicked(bool)),this,SLOT(case_number_clicked())); ui->treeWidget->addTopLevelItem(item); ui->treeWidget->setItemWidget(item,7,tongbu_btn); ui->treeWidget->setItemWidget(item,8,code_single_btn); ui->treeWidget->setItemWidget(item,9,case_nember_btn); details = database.GetValues("details",detailSqlList," where code_single = "+product.at(i).value("code_single")); /*************************子项目****************************/ //treewidget子项目标题 QStringList columItemList; QTreeWidgetItem *child; columItemList<<"箱号"<<"毛重(千克/kg)"<<"净重(千克/kg)"; child = new QTreeWidgetItem(columItemList); item->addChild(child); ui->treeWidget->setCurrentItem(child); //treewidget子项目数据循环添加 for(int i=0; iaddChild(child); ui->treeWidget->setCurrentItem(child); } } /**************************************************************/ ui->pageDataNum->setText("本页数据:"+QString::number(product.length())); ui->pagesNum->setText(QString("%1/%2").arg(nowPageNum+1).arg(pageNumAll)); } //同步按钮 void PackDetailForm::tongbu_clicked(QTreeWidgetItem * item,int row) { // qDebug()<text(0); if(item->text(0) != "未同步"){ QMessageBox::information(this,tr("提示"),tr("请刷新")); return; } QString condition = " where code_single="+product.at(row).value("code_single"); details = database.GetValues("details",detailSqlList,condition); autoPack.doSend(autoPack.toJsonMap(product.at(row),details)); item->setText(0,"请刷新"); } void PackDetailForm::code_single_clicked(int row) { qDebug()<<"打印码单"; // QStringList list; // list.append("net_weight"); QString condition = " where code_single="+product.at(row).value("code_single"); djmb.mapPrintPackInfo(product.at(row),database.GetValuesList("details","net_weight",condition)); } void PackDetailForm::case_number_clicked() { qDebug()<<"打印箱单";//暂时不知道打哪个 } //上一页 void PackDetailForm::on_prevoiusPage_clicked() { if(nowPageNum<=0){ return; } nowPageNum--; changeTreeWidget(database.GetValues("product",productSqlList,"limit "+QString::number(nowPageNum*20)+",20")); } //下一页 void PackDetailForm::on_nextPage_clicked() { if(nowPageNum>=pageNumAll-1){ return; } nowPageNum++; changeTreeWidget(database.GetValues("product",productSqlList,"limit "+QString::number(nowPageNum*20)+",20")); } //跳转 void PackDetailForm::on_jump_clicked() { //判断jumpPage是否为数字,如果不是return if(ui->jumpPage->text().toInt() == false){ return; } //判断jumpPage页数是否大于总页数,如果是return if(ui->jumpPage->text().toInt()>pageNumAll){ return; } nowPageNum = ui->jumpPage->text().toInt()-1; changeTreeWidget(database.GetValues("product",productSqlList,"limit "+QString::number(nowPageNum*20)+",20")); } //用作product数据库要查询的字段 void PackDetailForm::productList() { productSqlList.append("tongbu"); productSqlList.append("goods_id"); productSqlList.append("code_single"); productSqlList.append("quantity"); productSqlList.append("batch_no"); productSqlList.append("level_id"); productSqlList.append("tube_number"); productSqlList.append("gross_weight"); productSqlList.append("net_weight"); productSqlList.append("machine_no"); productSqlList.append("packing_time"); productSqlList.append("packing_type"); productSqlList.append("carton_type"); productSqlList.append("operator_id"); productSqlList.append("category"); productSqlList.append("specs"); productSqlList.append("denier"); productSqlList.append("dtex"); productSqlList.append("fiber"); productSqlList.append("remark"); } //用作details数据库要查询的字段 void PackDetailForm::detailsList() { detailSqlList.append("code_single"); detailSqlList.append("case_number"); detailSqlList.append("box_weight"); detailSqlList.append("tube_number"); detailSqlList.append("bucket_weight"); detailSqlList.append("gross_weight"); detailSqlList.append("net_weight"); detailSqlList.append("sort"); detailSqlList.append("remark"); } ////往QTableWidget里添加数据 //void PackDetailForm::changeTable(QList> productList) //{ //// qDebug()<tableWidget->setColumnCount(11); // for(int i = 0;itableWidget->insertRow(i); // ui->tableWidget->setItem(i,0,new QTableWidgetItem(productList.at(i).value("tongbu") == "0" ? "未同步" : "同步")); // if(ui->tableWidget->item(i,0)->text()=="未同步"){ // ui->tableWidget->item(i,0)->setBackground(QBrush(QColor(255, 0, 0,180))); // }else{ // ui->tableWidget->item(i,0)->setBackground(QBrush(QColor(0, 255, 255))); // } // ui->tableWidget->setItem(i,1,new QTableWidgetItem(productList.at(i).value("code_single"))); // ui->tableWidget->setItem(i,2,new QTableWidgetItem(productList.at(i).value("batch_no"))); // ui->tableWidget->setItem(i,3,new QTableWidgetItem(productList.at(i).value("gross_weight"))); // ui->tableWidget->setItem(i,4,new QTableWidgetItem(productList.at(i).value("net_weight"))); // ui->tableWidget->setItem(i,5,new QTableWidgetItem(productList.at(i).value("quantity"))); // ui->tableWidget->setItem(i,6,new QTableWidgetItem(productList.at(i).value("packing_time"))); // auto tongbu_btn = new QPushButton("同步"); // connect(tongbu_btn,&QPushButton::clicked,[i,this](){this->tongbu_clicked(i);}); //// connect(tongbu_btn, SIGNAL(clicked(bool)), this, SLOT(tongbu_clicked())); // auto code_single_btn = new QPushButton("打印码单"); // connect(code_single_btn,SIGNAL(clicked(bool)),this,SLOT(code_single_clicked())); // auto case_nember_btn = new QPushButton("打印箱单"); // connect(case_nember_btn,SIGNAL(clicked(bool)),this,SLOT(case_number_clicked())); // auto details = new QTreeWidget(this); //// auto details_btn = new QPushButton(""); // ui->tableWidget->setCellWidget(i,7,tongbu_btn); // ui->tableWidget->setCellWidget(i,8,code_single_btn); // ui->tableWidget->setCellWidget(i,9,case_nember_btn); // ui->tableWidget->setCellWidget(i,10,details); // details->setWindowTitle("tree"); // QTreeWidgetItem* detail = new QTreeWidgetItem(QStringList()<<"详情"); //// detail->setCheckState(0, Qt::Checked); //// details->setSortingEnabled(true); // details->header()->setSortIndicator(0,Qt::AscendingOrder); // details->addTopLevelItem(detail); // details->header()->setVisible(false); // for(int i=0; i<10; ++i) // { // QStringList columItemList; // QTreeWidgetItem *child; // columItemList<<"list"; // child = new QTreeWidgetItem(columItemList); // detail->addChild(child); // details->setItemWidget(child,1,new QSpinBox); // } // } //} //同步 //void PackDetailForm::tongbu_clicked(int row) //{ // qDebug()<<"行数:" << row; // if(ui->tableWidget->item(row,0)->text()!="未同步"){ // QMessageBox::information(this,tr("提示"),tr("请刷新")); // return; // } // QString condition = " where code_single="+product.at(row).value("code_single"); // details = database.GetValues("details",detailSqlList,condition); // autoPack.doSend(autoPack.toJsonMap(product.at(row),details)); // ui->tableWidget->setItem(row,0,new QTableWidgetItem("请刷新")); // ui->tableWidget->item(row,0)->setBackground(QBrush(QColor(255,255,0))); //}