def handel_data(self): wb = openpyxl.load_workbook(self.filename) results = get_yan_info(wb) count_data = { "jia": { "count": 0, "price": 0 }, "si": { "count": 0, "price": 0 }, "fei": { "count": 0, "price": 0 }, "count": 0, "price": 0, "is_tiao": False, "has_card": True } self.table_info.setRowCount(len(results)) for index, result in enumerate(results): # 渲染数据 self.table_info.setItem(index, 0, QTableWidgetItem(result["yan_id"])) self.table_info.setItem(index, 1, QTableWidgetItem(result["yan_name"])) self.table_info.setItem(index, 2, QTableWidgetItem(result["yan_price"])) self.table_info.setItem(index, 3, QTableWidgetItem(result["yan_unit"])) self.table_info.setItem(index, 4, QTableWidgetItem(result["yan_sort"])) self.table_info.setItem(index, 5, QTableWidgetItem(result["yan_count"])) self.table_info.setItem(index, 6, QTableWidgetItem(result["yan_total"])) # 统计数据 count_data["count"] += int(result["yan_count"]) count_data["price"] += float(result["yan_total"]) if result["yan_sort"] == "假": count_data["jia"]["count"] += int(result["yan_count"]) count_data["jia"]["price"] += float(result["yan_total"]) elif result["yan_sort"] == "非": count_data["fei"]["count"] += int(result["yan_count"]) count_data["fei"]["price"] += float(result["yan_total"]) else: count_data["si"]["count"] += int(result["yan_count"]) count_data["si"]["price"] += float(result["yan_total"]) if "条" in result["yan_unit"]: count_data["is_tiao"] = True # 判断有证与否 ws = wb["许可证照片"] if ws["A1"].value == "无证": count_data["has_card"] = False return count_data
def __init__(self, base_path): super(PrintYiBan, self).__init__() self.filename = base_path + "案件信息.xlsx" self.base_path = base_path wb = openpyxl.load_workbook(self.filename) style_str = "QLabel{font-size: 30px;}" + "QLineEdit{font-size: 30px;}" + \ "QPushButton{font-size: 25px; background-color: green; min-height: 35px}" + \ "QComboBox{font-size: 30px;}" + "QCheckBox{font-size: 30px;}" + \ "QHeaderView{font-size: 25px;} QTableWidget{font-size: 25px;}" + \ "QDateTimeEdit{font-size: 30px;} QMessageBox{font-size: 30px;}" self.setStyleSheet(style_str) self.browser = QWebEngineView() self.browser.settings().setAttribute( QWebEngineSettings.AllowRunningInsecureContent, True) url = "C:/html_tmp/yiban.html" self.browser.load(QUrl(url)) layout = QGridLayout() yan_data = get_yan_info(wb) row_index = 0 for i in range(math.ceil(len(yan_data) / 10)): print_xbtz = PrintBtn(index=i, name="先保通知单%d" % (i + 1)) print_xbtz.clicked.connect(self.print_xbtz) layout.addWidget(print_xbtz, row_index, 0) row_index += 1 # 现场勘验笔录 btn_print_ky = QPushButton("现场勘验笔录") btn_print_ky.clicked.connect(self.print_ky) layout.addWidget(btn_print_ky, row_index, 0) row_index += 1 # 抽样记录 chou_data = get_chou_data(wb["一般案件"]) for i in range(math.ceil(len(chou_data) / 15)): print_chou = PrintBtn(index=i, name="抽样记录表%d" % (i + 1)) print_chou.clicked.connect(self.print_chou) layout.addWidget(print_chou, row_index, 0) row_index += 1 self.btn_print_fm = QPushButton("打印封面") self.btn_print_fm.clicked.connect(self.print_fm) layout.addWidget(self.btn_print_fm, row_index + 1, 0) self.btn_back = QPushButton("修改数据") layout.addWidget(self.btn_back, row_index + 2, 0) self.btn_next = QPushButton("下一步") layout.addWidget(self.btn_next, row_index + 3, 0) layout.addWidget(self.browser, row_index + 4, 0) self.setLayout(layout)
def __init__(self, base_path): super(PrintLingHe, self).__init__() self.filename = base_path + "案件信息.xlsx" self.base_path = base_path style_str = "QLabel{font-size: 30px;}" + "QLineEdit{font-size: 30px;}" + \ "QPushButton{font-size: 25px; background-color: green; min-height: 30px}" + \ "QComboBox{font-size: 30px;}" + "QCheckBox{font-size: 30px;}" + \ "QHeaderView{font-size: 25px;} QTableWidget{font-size: 25px;}" + \ "QDateTimeEdit{font-size: 30px;} QMessageBox{font-size: 30px;}" self.setStyleSheet(style_str) wb = openpyxl.load_workbook(self.filename) self.browser = QWebEngineView() self.browser.settings().setAttribute(QWebEngineSettings.AllowRunningInsecureContent, True) layout = QGridLayout() yan_data = get_yan_info(wb) row_index = 0 for i in range(math.ceil(len(yan_data) / 10)): print_zy = PrintBtn(index=i, name="打印自愿处理单%d" % (i + 1)) print_zy.clicked.connect(self.print_zy) layout.addWidget(print_zy, row_index, 0) row_index += 1 for i in range(math.ceil(len(yan_data) / 10)): print_ky = PrintBtn(index=i, name="现场勘验笔录%d" % (i + 1)) print_ky.clicked.connect(self.print_ky) layout.addWidget(print_ky, row_index, 0) row_index += 1 # 打印封面 self.btn_print_fm = QPushButton("打印封面") self.btn_print_fm.clicked.connect(self.print_fm) layout.addWidget(self.btn_print_fm, row_index + 1, 0) self.btn_back = QPushButton("修改数据") layout.addWidget(self.btn_back, row_index + 2, 0) self.btn_next = QPushButton("下一步") layout.addWidget(self.btn_next, row_index + 3, 0) self.setLayout(layout)
def initYanData(self): wb = openpyxl.load_workbook(self.filename) results = get_yan_info(wb) for result in results: self.tableAddInfo(result)
def __init__(self, base_path): super(YiBanCY, self).__init__() self.filename = base_path + "案件信息.xlsx" self.base_path = base_path style_str = "QLabel{font-size: 30px;}" + "QLineEdit{font-size: 30px;}" + \ "QPushButton{font-size: 25px; background-color: green; min-height: 35px}" + \ "QComboBox{font-size: 30px;}" + "QCheckBox{font-size: 30px;}" + \ "QHeaderView{font-size: 25px;} QTableWidget{font-size: 25px;}" + \ "QDateTimeEdit{font-size: 30px;} QMessageBox{font-size: 30px;} QTextEdit{font-color: red}" self.setStyleSheet(style_str) init_data = self.get_init_info() layout = QGridLayout() # 开始时间 self.label_start_time = QLabel("开始时间") if init_data["start_time"]: self.edit_start_time = QDateTimeEdit( datetime.strptime(init_data["start_time"], "%Y-%m-%d %H:%M")) else: self.edit_start_time = QDateTimeEdit(datetime.now()) self.edit_start_time.setDisplayFormat("yyyy-MM-dd HH:mm") layout.addWidget(self.label_start_time, 0, 0) layout.addWidget(self.edit_start_time, 0, 1) # 结束时间 self.label_end_time = QLabel("结束时间") if init_data["end_time"]: self.edit_end_time = QDateTimeEdit( datetime.strptime(init_data["end_time"], "%Y-%m-%d %H:%M")) else: self.edit_end_time = QDateTimeEdit(datetime.now()) self.edit_end_time.setDisplayFormat("yyyy-MM-dd HH:mm") layout.addWidget(self.label_end_time, 0, 2) layout.addWidget(self.edit_end_time, 0, 3) # 被检查人(工商户字号,公司名称) self.label_beijiancharen = QLabel("被检查人(工商户字号,公司名称)") if init_data["beijiancharen"]: self.edit_beijiancharen = QLineEdit(init_data["beijiancharen"]) else: self.edit_beijiancharen = QLineEdit() layout.addWidget(self.label_beijiancharen, 1, 0) layout.addWidget(self.edit_beijiancharen, 1, 1) # 联系方式 self.label_lianxifangshi = QLabel("联系方式") if init_data["lianxifangshi"]: self.edit_lianxifangshi = QLineEdit(init_data["lianxifangshi"]) else: self.edit_lianxifangshi = QLineEdit() layout.addWidget(self.label_lianxifangshi, 1, 2) layout.addWidget(self.edit_lianxifangshi, 1, 3) # 经营者姓名(法定代表人) self.label_jingyingzhe = QLabel("经营者姓名(法定代表人)") if init_data["jingyingzhe"]: self.edit_jingyingzhe = QLineEdit(init_data["jingyingzhe"]) else: self.edit_jingyingzhe = QLineEdit() layout.addWidget(self.label_jingyingzhe, 2, 0) layout.addWidget(self.edit_jingyingzhe, 2, 1) # 身份证件号码 self.label_shenfenzheng = QLabel("身份证件号码") if init_data["shenfenzheng"]: self.edit_shenfenzheng = QLineEdit(init_data["shenfenzheng"]) else: self.edit_shenfenzheng = QLineEdit() layout.addWidget(self.label_shenfenzheng, 2, 2) layout.addWidget(self.edit_shenfenzheng, 2, 3) # 身份证件地址 self.label_shenfenzheng_dizhi = QLabel("身份证件地址") if init_data["shenfenzheng_dizhi"]: self.edit_shenfenzheng_dizhi = QLineEdit( init_data["shenfenzheng_dizhi"]) else: self.edit_shenfenzheng_dizhi = QLineEdit() layout.addWidget(self.label_shenfenzheng_dizhi, 3, 0) layout.addWidget(self.edit_shenfenzheng_dizhi, 3, 1) # 烟草专卖许可证号码 self.label_xukezheng = QLabel("烟草专卖许可证号码") if init_data["xukezheng"]: self.edit_xukezheng = QLineEdit(init_data["xukezheng"]) else: self.edit_xukezheng = QLineEdit() layout.addWidget(self.label_xukezheng, 3, 2) layout.addWidget(self.edit_xukezheng, 3, 3) # 零售户类型 self.label_lingshouhu = QLabel("零售户类型") self.edit_lingshouhu = QComboBox() self.edit_lingshouhu.addItems(["个体零售户", "企业零售户"]) if init_data["lingshouhu"]: self.edit_lingshouhu.setCurrentText(init_data["lingshouhu"]) layout.addWidget(self.label_lingshouhu, 4, 0) layout.addWidget(self.edit_lingshouhu, 4, 1) # 举报时间(非举报不填写) self.jvbao_time = QLabel("举报时间(非举报不填写)") if init_data["jvbao_time"]: self.edit_jvbao_time = QDateTimeEdit( datetime.strptime(init_data["jvbao_time"], "%Y-%m-%d %H:%M")) else: self.edit_jvbao_time = QDateTimeEdit( datetime.strptime("2000-01-01 00:00", "%Y-%m-%d %H:%M")) self.edit_jvbao_time.setDisplayFormat("yyyy-MM-dd HH:mm") layout.addWidget(self.jvbao_time, 4, 2) layout.addWidget(self.edit_jvbao_time, 4, 3) # 案发时间 self.label_qita_guanxiren = QLabel("其他关系人") if init_data["qita_guanxiren"]: self.edit_qita_guanxiren = QLineEdit(init_data["qita_guanxiren"]) else: self.edit_qita_guanxiren = QLineEdit("店员") layout.addWidget(self.label_qita_guanxiren, 5, 0) layout.addWidget(self.edit_qita_guanxiren, 5, 1) # 执法人员 self.label_zhifarenyuan = QLabel("执法人员") if init_data["zhifarenyuan"]: self.edit_zhifarenyuan = QLineEdit(init_data["zhifarenyuan"]) else: self.edit_zhifarenyuan = QLineEdit() layout.addWidget(self.label_zhifarenyuan, 5, 2) layout.addWidget(self.edit_zhifarenyuan, 5, 3) # 许可证有效期 self.label_xukezheng_end = QLabel("许可证有效期") if init_data["xukezheng_end"]: self.edit_xukezheng_end = QDateEdit( datetime.strptime(init_data["xukezheng_end"], "%Y-%m-%d").date()) else: self.edit_xukezheng_end = QDateEdit(datetime.now().date()) self.edit_xukezheng_end.setDisplayFormat("yyyy-MM-dd") layout.addWidget(self.label_xukezheng_end, 6, 0) layout.addWidget(self.edit_xukezheng_end, 6, 1) # 许可证地址 self.label_location = QLabel("许可证地址") if init_data["location"]: self.edit_location = QLineEdit(init_data["location"]) else: self.edit_location = QLineEdit() layout.addWidget(self.label_location, 6, 2) layout.addWidget(self.edit_location, 6, 3) # 案由选择 self.label_anyou = QLabel("案由") self.edit_anyou = AnYou(init_data["anyou"]) layout.addWidget(self.label_anyou, 7, 0) layout.addWidget(self.edit_anyou, 7, 1, 1, 3) # 抽样规则 rule_str = '<p><font color="red">1.数量不足两条:抽取一条或全部数量形成试样。</font></p>' rule_str += '<p><font color="red">2.数量2件以下:所有样品中抽取1~2条形成试样。</font></p>' rule_str += '<p><font color="red">3.数量5件以下:每件抽取1~2条,形成样本,再从样本中随机抽取2条形成试样。</font></p>' rule_str += '<p><font color="red">4.数量5件~10件:每件中随机抽取1条,形成样本,在从样本中随机抽取2条形成试样。</font></p>' rule_str += '<p><font color="red">5.数量10件~50件:随机抽取10件,从每件中随机抽取1条,形成样本,再从样本中随机抽取2~5条形成试样。</font></p>' rule_str += '<p><font color="red">6.数量50件以上:随机抽取20件,从每件中随机抽取1条,形成样本,再从样本中随机抽取5~10条形成试样。</font></p>' self.chou_rule = QTextEdit() self.chou_rule.setHtml(rule_str) self.chou_rule.setFixedHeight(130) self.label_chou_rule = QLabel("抽样规则") layout.addWidget(self.label_chou_rule, 8, 0) layout.addWidget(self.chou_rule, 8, 1, 1, 3) # 抽样记录表 self.table_info = QTableWidget() self.table_info.setColumnCount(4) self.table_info.setHorizontalHeaderLabels( ["物品名称", "品牌规格", "查获数量(条)", "抽样数量(条)"]) self.table_info.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) if not init_data["chou_data"]: wb = openpyxl.load_workbook(self.filename) yan_datas = get_yan_info(wb) for yan_data in yan_datas: init_data["chou_data"].append({ "yan_name": yan_data["yan_name"], "yan_count": yan_data["yan_count"], "yan_chou": 1, "yan_pinzhong": yan_data["yan_pinzhong"] }) self.init_table(init_data["chou_data"]) # 提交按钮 self.btn_finish = QPushButton("完成") layout.addWidget(self.table_info, 9, 0, 1, 4) layout.addWidget(self.btn_finish, 10, 0, 1, 4) self.setLayout(layout)
def __init__(self, base_path): super(XiaoWeiXB, self).__init__() self.filename = base_path + "案件信息.xlsx" self.base_path = base_path style_str = "QLabel{font-size: 30px;}" + "QLineEdit{font-size: 30px;}" + \ "QPushButton{font-size: 25px; background-color: green; min-height: 30px}" + \ "QComboBox{font-size: 30px;}" + "QCheckBox{font-size: 30px;}" + \ "QHeaderView{font-size: 25px;} QTableWidget{font-size: 25px;}" + \ "QDateTimeEdit{font-size: 30px;} QMessageBox{font-size: 30px;}" self.setStyleSheet(style_str) init_data = self.get_init_info() layout = QGridLayout() # 开始时间 self.label_start_time = QLabel("开始时间") if init_data["start_time"]: self.edit_start_time = QDateTimeEdit( datetime.strptime(init_data["start_time"], "%Y-%m-%d %H:%M")) else: self.edit_start_time = QDateTimeEdit(datetime.now()) self.edit_start_time.setDisplayFormat("yyyy-MM-dd HH:mm") layout.addWidget(self.label_start_time, 0, 0) layout.addWidget(self.edit_start_time, 0, 1) # 结束时间 self.label_end_time = QLabel("结束时间") if init_data["end_time"]: self.edit_end_time = QDateTimeEdit( datetime.strptime(init_data["end_time"], "%Y-%m-%d %H:%M")) else: self.edit_end_time = QDateTimeEdit(datetime.now()) self.edit_end_time.setDisplayFormat("yyyy-MM-dd HH:mm") layout.addWidget(self.label_end_time, 0, 2) layout.addWidget(self.edit_end_time, 0, 3) # 被检查人(工商户字号,公司名称) self.label_beijiancharen = QLabel("被检查人(工商户字号,公司名称)") if init_data["beijiancharen"]: self.edit_beijiancharen = QLineEdit(init_data["beijiancharen"]) else: self.edit_beijiancharen = QLineEdit() layout.addWidget(self.label_beijiancharen, 1, 0) layout.addWidget(self.edit_beijiancharen, 1, 1) # 联系方式 self.label_lianxifangshi = QLabel("联系方式") if init_data["lianxifangshi"]: self.edit_lianxifangshi = QLineEdit(init_data["lianxifangshi"]) else: self.edit_lianxifangshi = QLineEdit() layout.addWidget(self.label_lianxifangshi, 1, 2) layout.addWidget(self.edit_lianxifangshi, 1, 3) # 经营者姓名(法定代表人) self.label_jingyingzhe = QLabel("经营者姓名(法定代表人)") if init_data["jingyingzhe"]: self.edit_jingyingzhe = QLineEdit(init_data["jingyingzhe"]) else: self.edit_jingyingzhe = QLineEdit() layout.addWidget(self.label_jingyingzhe, 2, 0) layout.addWidget(self.edit_jingyingzhe, 2, 1) # 身份证件号码 self.label_shenfenzheng = QLabel("身份证件号码") if init_data["shenfenzheng"]: self.edit_shenfenzheng = QLineEdit(init_data["shenfenzheng"]) else: self.edit_shenfenzheng = QLineEdit() layout.addWidget(self.label_shenfenzheng, 2, 2) layout.addWidget(self.edit_shenfenzheng, 2, 3) # 身份证件地址 self.label_shenfenzheng_dizhi = QLabel("身份证件地址") if init_data["shenfenzheng_dizhi"]: self.edit_shenfenzheng_dizhi = QLineEdit( init_data["shenfenzheng_dizhi"]) else: self.edit_shenfenzheng_dizhi = QLineEdit() layout.addWidget(self.label_shenfenzheng_dizhi, 3, 0) layout.addWidget(self.edit_shenfenzheng_dizhi, 3, 1) # 烟草专卖许可证号码 self.label_xukezheng = QLabel("烟草专卖许可证号码") if init_data["xukezheng"]: self.edit_xukezheng = QLineEdit(init_data["xukezheng"]) else: self.edit_xukezheng = QLineEdit() layout.addWidget(self.label_xukezheng, 3, 2) layout.addWidget(self.edit_xukezheng, 3, 3) # 委托人姓名 self.label_weituoren = QLabel("委托人姓名") if init_data["weituoren"]: self.edit_weituoren = QLineEdit(init_data["weituoren"]) else: self.edit_weituoren = QLineEdit() layout.addWidget(self.label_weituoren, 4, 0) layout.addWidget(self.edit_weituoren, 4, 1) # 身份证件号码 self.label_shenfenzheng1 = QLabel("身份证件号码") if init_data["shenfenzheng1"]: self.edit_shenfenzheng1 = QLineEdit(init_data["shenfenzheng1"]) else: self.edit_shenfenzheng1 = QLineEdit() layout.addWidget(self.label_shenfenzheng1, 4, 2) layout.addWidget(self.edit_shenfenzheng1, 4, 3) # 案由选择 self.label_anyou = QLabel("案由") layout.addWidget(self.label_anyou, 5, 0) self.edit_anyou = AnYou(init_data["anyou"]) layout.addWidget(self.edit_anyou, 5, 1, 1, 3) self.label_location = QLabel("许可证地址") self.edit_location = QLineEdit() if init_data["location"]: self.edit_location.setText(init_data["location"]) layout.addWidget(self.label_location, 6, 0) layout.addWidget(self.edit_location, 6, 1) # 分类table self.table_info = QTableWidget() self.table_info.setColumnCount(6) self.table_info.setHorizontalHeaderLabels( ["品牌", "规格", "数量", "总价", "特征1", "特征2"]) self.table_info.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) wb = openpyxl.load_workbook(self.filename) yan_datas = get_yan_info(wb) wb.close() self.setUI_table(yan_datas) layout.addWidget(self.table_info, 7, 0, 1, 4) # 完成按钮 self.btn_finish = QPushButton("完成") layout.addWidget(self.btn_finish, 8, 0, 1, 4) # 设置格式 self.setLayout(layout)