packdetailform.cpp 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. #include "packdetailform.h"
  2. #include "ui_packdetailform.h"
  3. PackDetailForm::PackDetailForm(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::PackDetailForm)
  6. {
  7. ui->setupUi(this);
  8. // connect(&packConfig,&RemotePackConfig::configUpdate,this,&PackDetailForm::upconfig);
  9. // ui->tableWidget->resizeColumnsToContents();
  10. // ui->tableWidget->resizeRowsToContents();
  11. // ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
  12. // ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
  13. productList();
  14. detailsList();
  15. ui->treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
  16. }
  17. PackDetailForm::~PackDetailForm()
  18. {
  19. delete ui;
  20. }
  21. void PackDetailForm::on_pushBack_clicked()
  22. {
  23. emit back();
  24. }
  25. void PackDetailForm::on_pushButton_clicked()
  26. {
  27. nowPageNum = 0;
  28. // changeTable(database.GetValues("product",productSqlLi st));
  29. changeTreeWidget(database.GetValues("product",productSqlList,"limit 0,20"));
  30. // ui->pagesNum->setText(QString::number(pageNum)+"/"+QString::number(product.size()/20));
  31. int pageListNum = database.GetTablePage();
  32. pageNumAll = pageListNum / 20;
  33. if(pageListNum % 20 > 0)
  34. pageNumAll ++;
  35. ui->pagesNum->setText(QString("%1/%2").arg(nowPageNum+1).arg(pageNumAll));
  36. }
  37. //往treewidget添加数据
  38. void PackDetailForm::changeTreeWidget(QList<QMap<QString,QString>> productList)
  39. {
  40. if(productList.isEmpty()){
  41. QMessageBox::information(this,tr("提示"),tr("数据为空"));
  42. return;
  43. }
  44. ui->treeWidget->clear();
  45. product = productList;
  46. /**********************************************************************************************/
  47. //循环添加数据
  48. for(int i = 0;i<productList.size();i++){
  49. QStringList list;
  50. list.append(productList.at(i).value("tongbu") == "0" ? "未同步" : "已同步");
  51. if(productList.at(i).value("tongbu") == "0"){
  52. }
  53. list.append(productList.at(i).value("code_single"));
  54. list.append(productList.at(i).value("batch_no"));
  55. list.append(productList.at(i).value("gross_weight"));
  56. list.append(productList.at(i).value("net_weight"));
  57. list.append(productList.at(i).value("quantity"));
  58. list.append(productList.at(i).value("packing_time"));
  59. auto item = new QTreeWidgetItem(list);
  60. auto tongbu_btn = new QPushButton("同步");
  61. connect(tongbu_btn,&QPushButton::clicked,[item,i,this](){this->tongbu_clicked(item,i);});
  62. // connect(tongbu_btn, SIGNAL(clicked(bool)), this, SLOT(tongbu_clicked()));
  63. auto code_single_btn = new QPushButton("打印码单");
  64. connect(code_single_btn,SIGNAL(clicked(bool)),this,SLOT(code_single_clicked()));
  65. auto case_nember_btn = new QPushButton("打印箱单");
  66. connect(case_nember_btn,SIGNAL(clicked(bool)),this,SLOT(case_number_clicked()));
  67. ui->treeWidget->addTopLevelItem(item);
  68. ui->treeWidget->setItemWidget(item,7,tongbu_btn);
  69. ui->treeWidget->setItemWidget(item,8,code_single_btn);
  70. ui->treeWidget->setItemWidget(item,9,case_nember_btn);
  71. details = database.GetValues("details",detailSqlList," where code_single = "+product.at(i).value("code_single"));
  72. for(int i=0; i<details.length(); ++i)//给A添加子项目
  73. {
  74. QStringList columItemList;
  75. QTreeWidgetItem *child;
  76. columItemList<<details.at(i).value("case_number");
  77. child = new QTreeWidgetItem(columItemList);
  78. item->addChild(child);
  79. // ui->tree->setItemWidget(child,1,new QSpinBox);
  80. ui->treeWidget->setCurrentItem(child,1);
  81. }
  82. }
  83. ui->pageDataNum->setText("本页数据:"+QString::number(product.length()));
  84. ui->pagesNum->setText(QString("%1/%2").arg(nowPageNum+1).arg(pageNumAll));
  85. }
  86. //同步按钮
  87. void PackDetailForm::tongbu_clicked(QTreeWidgetItem * item,int row)
  88. {
  89. qDebug()<<"行数:" << row;
  90. qDebug()<<item->text(0);
  91. if(item->text(0) != "未同步"){
  92. QMessageBox::information(this,tr("提示"),tr("请刷新"));
  93. return;
  94. }
  95. QString condition = " where code_single="+product.at(row).value("code_single");
  96. details = database.GetValues("details",detailSqlList,condition);
  97. autoPack.doSend(autoPack.toJsonMap(product.at(row),details));
  98. item->setText(0,"请刷新");
  99. item->setBackground(0,QBrush(QColor(255,255,0)));
  100. }
  101. void PackDetailForm::code_single_clicked()
  102. {
  103. qDebug()<<"打印码单";
  104. }
  105. void PackDetailForm::case_number_clicked()
  106. {
  107. qDebug()<<"打印箱单";
  108. }
  109. //上一页
  110. void PackDetailForm::on_prevoiusPage_clicked()
  111. {
  112. if(nowPageNum<=0){
  113. return;
  114. }
  115. nowPageNum--;
  116. changeTreeWidget(database.GetValues("product",productSqlList,"limit "+QString::number(nowPageNum)+",20"));
  117. }
  118. //下一页
  119. void PackDetailForm::on_nextPage_clicked()
  120. {
  121. if(nowPageNum>=pageNumAll-1){
  122. return;
  123. }
  124. nowPageNum++;
  125. changeTreeWidget(database.GetValues("product",productSqlList,"limit "+QString::number(nowPageNum)+",20"));
  126. }
  127. //跳转
  128. void PackDetailForm::on_jump_clicked()
  129. {
  130. if(ui->jumpPage->text().toInt()>pageNumAll){
  131. return;
  132. }
  133. changeTreeWidget(database.GetValues("product",productSqlList,"limit "+ui->jumpPage->text()+",20"));
  134. }
  135. void PackDetailForm::productList()
  136. {
  137. productSqlList.append("tongbu");
  138. productSqlList.append("goods_id");
  139. productSqlList.append("code_single");
  140. productSqlList.append("quantity");
  141. productSqlList.append("batch_no");
  142. productSqlList.append("level_id");
  143. productSqlList.append("tube_number");
  144. productSqlList.append("gross_weight");
  145. productSqlList.append("net_weight");
  146. productSqlList.append("machine_no");
  147. productSqlList.append("packing_time");
  148. productSqlList.append("packing_type");
  149. productSqlList.append("carton_type");
  150. productSqlList.append("operator_id");
  151. productSqlList.append("remark");
  152. }
  153. void PackDetailForm::detailsList()
  154. {
  155. detailSqlList.append("code_single");
  156. detailSqlList.append("case_number");
  157. detailSqlList.append("box_weight");
  158. detailSqlList.append("tube_number");
  159. detailSqlList.append("bucket_weight");
  160. detailSqlList.append("gross_weight");
  161. detailSqlList.append("net_weight");
  162. detailSqlList.append("sort");
  163. detailSqlList.append("remark");
  164. }
  165. ////往QTableWidget里添加数据
  166. //void PackDetailForm::changeTable(QList<QMap<QString,QString>> productList)
  167. //{
  168. //// qDebug()<<productList.at(0).value("goods_id");
  169. // if(productList.isEmpty()){
  170. // QMessageBox::information(this,tr("提示"),tr("数据为空"));
  171. // return;
  172. // }
  173. // product = productList;
  174. // ui->tableWidget->setColumnCount(11);
  175. // for(int i = 0;i<productList.size();i++){
  176. // ui->tableWidget->insertRow(i);
  177. // ui->tableWidget->setItem(i,0,new QTableWidgetItem(productList.at(i).value("tongbu") == "0" ? "未同步" : "同步"));
  178. // if(ui->tableWidget->item(i,0)->text()=="未同步"){
  179. // ui->tableWidget->item(i,0)->setBackground(QBrush(QColor(255, 0, 0,180)));
  180. // }else{
  181. // ui->tableWidget->item(i,0)->setBackground(QBrush(QColor(0, 255, 255)));
  182. // }
  183. // ui->tableWidget->setItem(i,1,new QTableWidgetItem(productList.at(i).value("code_single")));
  184. // ui->tableWidget->setItem(i,2,new QTableWidgetItem(productList.at(i).value("batch_no")));
  185. // ui->tableWidget->setItem(i,3,new QTableWidgetItem(productList.at(i).value("gross_weight")));
  186. // ui->tableWidget->setItem(i,4,new QTableWidgetItem(productList.at(i).value("net_weight")));
  187. // ui->tableWidget->setItem(i,5,new QTableWidgetItem(productList.at(i).value("quantity")));
  188. // ui->tableWidget->setItem(i,6,new QTableWidgetItem(productList.at(i).value("packing_time")));
  189. // auto tongbu_btn = new QPushButton("同步");
  190. // connect(tongbu_btn,&QPushButton::clicked,[i,this](){this->tongbu_clicked(i);});
  191. //// connect(tongbu_btn, SIGNAL(clicked(bool)), this, SLOT(tongbu_clicked()));
  192. // auto code_single_btn = new QPushButton("打印码单");
  193. // connect(code_single_btn,SIGNAL(clicked(bool)),this,SLOT(code_single_clicked()));
  194. // auto case_nember_btn = new QPushButton("打印箱单");
  195. // connect(case_nember_btn,SIGNAL(clicked(bool)),this,SLOT(case_number_clicked()));
  196. // auto details = new QTreeWidget(this);
  197. //// auto details_btn = new QPushButton("");
  198. // ui->tableWidget->setCellWidget(i,7,tongbu_btn);
  199. // ui->tableWidget->setCellWidget(i,8,code_single_btn);
  200. // ui->tableWidget->setCellWidget(i,9,case_nember_btn);
  201. // ui->tableWidget->setCellWidget(i,10,details);
  202. // details->setWindowTitle("tree");
  203. // QTreeWidgetItem* detail = new QTreeWidgetItem(QStringList()<<"详情");
  204. //// detail->setCheckState(0, Qt::Checked);
  205. //// details->setSortingEnabled(true);
  206. // details->header()->setSortIndicator(0,Qt::AscendingOrder);
  207. // details->addTopLevelItem(detail);
  208. // details->header()->setVisible(false);
  209. // for(int i=0; i<10; ++i)
  210. // {
  211. // QStringList columItemList;
  212. // QTreeWidgetItem *child;
  213. // columItemList<<"list";
  214. // child = new QTreeWidgetItem(columItemList);
  215. // detail->addChild(child);
  216. // details->setItemWidget(child,1,new QSpinBox);
  217. // }
  218. // }
  219. //}
  220. //同步
  221. //void PackDetailForm::tongbu_clicked(int row)
  222. //{
  223. // qDebug()<<"行数:" << row;
  224. // if(ui->tableWidget->item(row,0)->text()!="未同步"){
  225. // QMessageBox::information(this,tr("提示"),tr("请刷新"));
  226. // return;
  227. // }
  228. // QString condition = " where code_single="+product.at(row).value("code_single");
  229. // details = database.GetValues("details",detailSqlList,condition);
  230. // autoPack.doSend(autoPack.toJsonMap(product.at(row),details));
  231. // ui->tableWidget->setItem(row,0,new QTableWidgetItem("请刷新"));
  232. // ui->tableWidget->item(row,0)->setBackground(QBrush(QColor(255,255,0)));
  233. //}