#include "dialogcheckresult.h" #include "ui_dialogcheckresult.h" #include <QMessageBox> #include <QDesktopServices> DialogCheckResult::DialogCheckResult(QWidget *parent) : QDialog(parent), ui(new Ui::DialogCheckResult) { ui->setupUi(this); ui->tableWidget->verticalHeader()->setParent(nullptr); } DialogCheckResult::~DialogCheckResult() { delete ui; } void DialogCheckResult::deleteItem(QLayout *layout) { QLayoutItem *child; while ((child = layout->takeAt(0)) != nullptr) { //setParent为NULL,防止删除之后界面不消失 if(child->widget()) { child->widget()->setParent(nullptr); delete child->widget(); } else if (child->layout()) { deleteItem(child->layout()); child->layout()->deleteLater(); } delete child; } } void DialogCheckResult::initCalDataTable(int idx) { if(curHeadIdx==idx) return; curHeadIdx = idx; QString sLabel = headTableList->keys()[curHeadIdx]; const auto &dataRes = caliDataList->value(sLabel); const auto &headrs = headTableList->value(sLabel); ui->tableWidget->clearContents(); ui->tableWidget->setRowCount(0); ui->tableWidget->setColumnCount(0); ui->tableWidget->setColumnCount(headrs.count()); ui->tableWidget->setHorizontalHeaderLabels(headrs); for(int i=0;i<headrs.count();i++) { ui->tableWidget->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); } //tableWidget->setRowCount(data.count()); int rowCount = 0; for (int i = 0; i < dataRes.count(); ++i) { //获取行号 并进行添加行 rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(i, 0, new QTableWidgetItem(QString::number(i+1))); for(int j=1;j<dataRes[i].count();j++) { ui->tableWidget->setItem(i, j, new QTableWidgetItem(dataRes[i][j])); } } } void DialogCheckResult::initCheckTable(QList<QMap<QString, QList<QStringList>>> measList,QList<QMap<QString, QStringList>> headList,QString sID) { caliDataListAll = measList; headTableListAll = headList; stdId = sID; deleteItem(ui->horizontalLayoutDevice); int idx=0; curDevciceIdx=-1; for (const Dept& task : taskList) { QPushButton *btn_1 = new QPushButton(); btn_1->setText(task.sample_name); btn_1->setStyleSheet("QPushButton{" "background-color:rgb(240,240,240);" "color:rgb(51,51,51);" "}"); //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); QFont font; //font.setPointSize(12);//字体大小 font.setBold(true); btn_1->setFont(font); btn_1->setCursor(Qt::PointingHandCursor); connect(btn_1, &QPushButton::clicked, this, [this,idx]() { on_deviceButton_clicked(idx); }); ui->horizontalLayoutDevice->addWidget(btn_1); idx++; } ui->horizontalLayoutDevice->addStretch(); on_deviceButton_clicked(0); } void DialogCheckResult::on_deviceButton_clicked(int idx) { if(curDevciceIdx == idx||idx<0||idx>=taskList.length()) return; curDevciceIdx = idx; headTableList = &headTableListAll[curDevciceIdx]; caliDataList = &caliDataListAll[curDevciceIdx]; deviceId = taskList[curDevciceIdx].sample_id; ui->tableWidget->clearContents(); ui->tableWidget->setRowCount(0); deleteItem(ui->HeadListLayout); int index=0; curHeadIdx=-1; for (const auto &item : *headTableList) { // ======================================================================================== // 数据循环显示 // =================================================================================== QString sLabel = headTableList->keys()[index]; // ======================================================================================== // 按钮设置显示 // ==================================================================================== QPushButton *button = new QPushButton(sLabel, this); //设置样式 // 设置按钮大小为 56x20 //button->setFixedSize(85, 40); button->setCheckable(true); button->setAutoExclusive(true); //设置第一个按钮选中状态 if(index==0){ button->setChecked(true);} //button->setc(true); // 设置按钮样式表 button->setStyleSheet("QPushButton {" "border: 1px solid white;" // 白色边框 "border-bottom: 2px solid rgba(0, 255, 255, 1);" // 浅蓝色下划线 "background-color: rgba(242, 242, 242, 1);" // 浅灰色背景 "}" "QPushButton:hover {" "background-color: rgba(215, 215, 215, 1);;" // 鼠标悬停时变为深灰色背景 "}" "QPushButton:checked {" "color: white;" "background-color: rgb(74, 102, 186);" // 选中时变为蓝色背景 "}"); ui->HeadListLayout->addWidget(button); connect(button, &QPushButton::clicked, this, [this,index]() { //tackedWidget->setCurrentIndex(index); initCalDataTable(index); }); ++index; } ui->HeadListLayout->addStretch(); initCalDataTable(0); QList<JudgeCalibrationTable> CliTable = BaseCommonApi::getJudgeCalibrationTable(deviceId); if(CliTable.length()>0){ iEquipType = CliTable[0].belong_standard_equipment.toInt(); } catoryList = BaseCommonApi::getDeviceMeasureEquipmentCatory(deviceId); } QString DialogCheckResult::getValueByHeader(int idx,QString sLabel,QString sName){ QList<QStringList> dataRes = caliDataList->value(sLabel); const auto &headrs = headTableList->value(sLabel); for(int i=0;i<headrs.length();i++){ if(headrs[i]==sName) return dataRes[idx][i]; } return ""; } int DialogCheckResult::getDictebyItemName(QString Name) { int NewName=0; if(checkitemlist.keys().contains(Name)) { NewName=checkitemlist.value(Name); } return NewName; } void DialogCheckResult::ItemUnitSplit(QString Value,QString &data,QString &unit) { QString sData2=Value; QString sNewData,sUnit; // 正则表达式匹配数字 QRegularExpression reLetters("[a-zA-ZΩΜΩ]"); QRegularExpression reLetters1("[^a-zA-ZΩΜΩ]"); data=sData2.replace(reLetters,""); unit= Value.replace(reLetters1,""); } void DialogCheckResult::on_pushButtonPreview_clicked() { QString strPath =QCoreApplication::applicationDirPath()+"//checkTemplate.doc"; if(QFile::exists(strPath)){ WordEngine engine; engine.open(strPath); QStringList itemList; QStringList conentList; itemList <<"unit"<<"address"<<"jianAddr"<<"time2"<<"temperature"<<"humidity"; conentList <<""<<""<<ui->comboBoxPlace->currentText()<<ui->dateEditCheck->text()<<ui->lineEditTemp->text()<<ui->lineEdit_Hum->text(); engine.setMarks("unit",taskList[curDevciceIdx].customer_name); engine.setMarks("address",""); engine.setMarks("name",taskList[curDevciceIdx].sample_name); engine.setMarks("type",taskList[curDevciceIdx].sample_model); engine.setMarks("serial",taskList[curDevciceIdx].manufacture_no); engine.setMarks("factory",taskList[curDevciceIdx].manufacturer); engine.setMarks("jianAddr",ui->comboBoxPlace->currentText()); engine.setMarks("time2",ui->dateEditCheck->text()); engine.setMarks("temperature",ui->lineEditTemp->text()); engine.setMarks("humidity",ui->lineEdit_Hum->text()); QList<CatDeviceInfor> result = BaseCommonApi::getCatDeviceInfor(stdId); if(result.length()>0){ engine.setMarks("stdname",result[0].equipment_name); engine.setMarks("stdtype",result[0].model); engine.setMarks("stdno",result[0].manufacture_no); engine.setMarks("stduncert",""); engine.setMarks("stdvalid",result[0].measure_valid_date); } //engine.setBatchMarks(itemList,conentLis;t) QString strLabel = "result"; //engine.setMarks(strLabel,"1.表格1"); for (int k=headTableList->keys().length()-1;k>=0;k--) { QString sLabel = headTableList->keys()[k]; QString strTitle = QString("%1.%2").arg(k+2).arg(sLabel); const auto &headrs = headTableList->value(sLabel); const auto &dataRes = caliDataList->value(sLabel); int rows = dataRes.count()+1; int cols = headrs.length(); QAxObject* pTable = engine.insertTable(strLabel,rows,cols,strTitle); for (int i=0;i<cols;i++){ engine.setCellString(pTable,1,i+1,headrs[i]); } //tableWidget->setRowCount(data.count()); for (int i = 0; i < dataRes.count(); ++i) { engine.setCellString(pTable,i+2,1,QString::number(i+1)); for(int j=1;j<dataRes[i].count();j++) { engine.setCellString(pTable,i+2,j+1,dataRes[i][j]); } } } // QString strTitle = "1.表格1"; // int rows = measureCalList.length()+1; // int cols = measHeadList.length(); // QAxObject* pTable = engine.insertTable(strLabel,rows,cols,strTitle); // for (int i=0;i<cols;i++){ // engine.setCellString(pTable,1,i,measHeadList[i]); // } // for(int j=2;j<=rows;j++){ // SaveDeviceMeasureCalibrator measItem =measureCalList[j-2]; // engine.setCellString(pTable,j, 2, measItem.params); // engine.setCellString(pTable,j, 3, measItem.capacity); // engine.setCellString(pTable,j, 4, measItem.unit); // engine.setCellString(pTable,j, 5, measItem.frequency); // engine.setCellString(pTable,j, 6, measItem.frequency_unit); // engine.setCellString(pTable,j, 7, measItem.range_range); // engine.setCellString(pTable,j, 8, measItem.standard_value); // engine.setCellString(pTable,j, 9, measItem.resolution); // engine.setCellString(pTable,j, 10, measItem.maximum_error); // engine.setCellString(pTable,j, 11, measItem.error_param_a); // engine.setCellString(pTable,j, 12, measItem.error_param_b); // engine.setCellString(pTable,j, 15, measItem.indicating_value); // engine.setCellString(pTable,j, 19, measItem.measure_indication_value); // } QString savePath=QCoreApplication::applicationDirPath()+"//检定证书预览.doc"; engine.saveAs(savePath); QUrl fileUrl = QUrl::fromLocalFile(savePath); QDesktopServices::openUrl(fileUrl); }else{ QMessageBox::warning(this, "警告", strPath+"文件不存在!"); } } void DialogCheckResult::on_pushButtonSave_clicked() { checkitemlist.clear(); SaveDeviceMeasureInfo measInfo; BaseCommonApi api; measInfo.id = QString::number(api.generateId()); //measInfo.data_no; measInfo.order_id = taskList[curDevciceIdx].id; measInfo.sample_id=deviceId; measInfo.sample_name = taskList[curDevciceIdx].sample_name; measInfo.model = taskList[curDevciceIdx].sample_model; measInfo.manufacturer = taskList[curDevciceIdx].manufacturer; measInfo.manufacture_no = taskList[curDevciceIdx].manufacture_no; measInfo.measure_category = catoryList[0].item_category_name; measInfo.item_id=catoryList[0].eqptDeviceModelId; measInfo.temperature = ui->lineEditTemp->text(); measInfo.humidity =ui->lineEdit_Hum->text(); measInfo.measure_address=ui->comboBoxPlace->currentText(); measInfo.trace_date = ui->dateEditCheck->date(); measInfo.measure_valid_date = ui->dateEdit_Valid->dateTime(); measInfo.outcome = ui->lineEdit_Cons->text(); if(BaseCommonApi::InsertSaveDeviceMeasureInfo(measInfo)){ QStringList idList = stdId.split(","); for(const QString& id : idList) { DeviceMeasureEquipment equipment; equipment.id=QString::number(api.generateId()); equipment.data_id = measInfo.id; equipment.equipment_id = id; equipment.create_time=equipment.update_time=QDateTime::currentDateTime(); BaseCommonApi::InsertDeviceMeasureEquipment(equipment); } for (int k=0;k<headTableList->keys().length();k++) { QString sLabel = headTableList->keys()[k]; const auto &dataRes = caliDataList->value(sLabel); //tableWidget->setRowCount(data.count()); //多功能校准源 if(iEquipType==1){ for (int i = 0; i < dataRes.count(); ++i) { SaveDeviceMeasureCalibrator measItem; measItem.id = QString::number(api.generateId()); measItem.data_id = measInfo.id; measItem.item_data_id = getValueByHeader(i,sLabel,"序号"); measItem.maximum_error_formula = getValueByHeader(i,sLabel,"最大允许误差");//最大允许误差(公式) //measItem.error_param_a = item[11];//误差参数a //measItem.error_param_b = item[12];//误差参数b measItem.params = getValueByHeader(i,sLabel,"检定项目");//参数 measItem.capacity=getValueByHeader(i,sLabel,"量");//量 measItem.unit=getValueByHeader(i,sLabel,"单位");//单位 //measItem.frequency=item[5];//频率 //measItem.frequency_unit=item[6];//频率单位 measItem.range_range=getValueByHeader(i,sLabel,"量程");//量程 measItem.standard_value=getValueByHeader(i,sLabel,"标准值");//标准值(输入字段,特殊:指针式万用表输出字段) measItem.indicating_value=getValueByHeader(i,sLabel,"示值");//示值(输出字段,特殊:指针式万用表输入字段) measItem.maximum_error=getValueByHeader(i,sLabel,"最大允许误差");//最大允许误差(值) measItem.absolute_error=getValueByHeader(i,sLabel,"绝对误差");//绝对误差 measItem.resolution=getValueByHeader(i,sLabel,"分辨力");//分辨力 measItem.measure_indication_value=getValueByHeader(i,sLabel,"示值");//被检表示值 BaseCommonApi::SearchSelectTable(QString::number(iEquipType),&measItem); } } //直流稳压电源 else if(iEquipType==2){ for (int i = 0; i < dataRes.count(); ++i) { bizBusinessDeviceMeasureDataDcPower measItem; measItem.id = QString::number(api.generateId()); measItem.data_id = measInfo.id; measItem.data_type=getValueByHeader(i,sLabel,"检定项目"); measItem.output_channel=getValueByHeader(i,sLabel,"输出通道"); measItem.unit=getValueByHeader(i,sLabel,"单位"); measItem.voltage_regulator_output_value=getValueByHeader(i,sLabel,"调压器输出值"); measItem.standard_value=getValueByHeader(i,sLabel,"标准值"); measItem.maximum_error=getValueByHeader(i,sLabel,"最大允许误差"); measItem.absolute_error=getValueByHeader(i,sLabel,"绝对误差"); measItem.voltage_output_value=getValueByHeader(i,sLabel,"被检电源输出电压值"); measItem.voltage_max_difference=getValueByHeader(i,sLabel,"被检电源输出电压最大差值"); measItem.technical_index=getValueByHeader(i,sLabel,"被检电源技术指标"); measItem.voltage_regulation=getValueByHeader(i,sLabel,"电源电压调整率"); measItem.load_situation=getValueByHeader(i,sLabel,"负载情况"); measItem.voltage_difference=getValueByHeader(i,sLabel,"电压差值"); measItem.load_regulation=getValueByHeader(i,sLabel,"负载调整率"); BaseCommonApi::SearchSelectTable(QString::number(iEquipType),&measItem); } } //0.02压力活塞计 else if(iEquipType==4){ for (int i = 0; i < dataRes.count(); ++i) { DeviceMeasureDataPistonGauge measItem; measItem.id = QString::number(api.generateId()); measItem.data_id = measInfo.id; if(sLabel=="示值误差"||sLabel=="回程误差"||sLabel=="轻敲位移") measItem.data_type = "1"; else measItem.data_type = "2"; measItem.data_category = "1"; measItem.before_friction_forward_stroke = getValueByHeader(i,sLabel,"轻敲前示值-正"); measItem.before_friction_reverse_stroke = getValueByHeader(i,sLabel,"轻敲前示值-反"); measItem.after_friction_forward_stroke = getValueByHeader(i,sLabel,"轻敲后示值-正"); measItem.after_friction_reverse_stroke = getValueByHeader(i,sLabel,"轻敲后示值-反"); measItem.variation_forward_stroke = getValueByHeader(i,sLabel,"轻敲前后变动量-正"); measItem.variation_reverse_stroke = getValueByHeader(i,sLabel,"轻敲前后变动量-反"); measItem.indicating_value=getValueByHeader(i,sLabel,"标准器示值"); //BaseCommonApi::InsertDeviceMeasureDataPistonGauge(measItem); BaseCommonApi::SearchSelectTable(QString::number(iEquipType),&measItem); } } //二等铂电阻温度计标准装置 else if(iEquipType==5){ for (int i = 0; i < dataRes.count(); ++i) { DeviceMeasureDataResistanceThermometer measItem; measItem.id = QString::number(api.generateId()); measItem.data_id = measInfo.id; if(sLabel=="示值误差"||sLabel=="回程误差"||sLabel=="轻敲位移") measItem.data_type = "1"; else measItem.data_type = "2"; measItem.data_category = "1"; if(sLabel=="波动性测试"){ //measItem.upper_lower_point = measItem.unit = getValueByHeader(i,sLabel,"单位"); measItem.one_value = getValueByHeader(i,sLabel,"示值1"); measItem.two_value = getValueByHeader(i,sLabel,"示值2"); measItem.three_value = getValueByHeader(i,sLabel,"示值3"); measItem.four_value = getValueByHeader(i,sLabel,"示值4"); measItem.five_value = getValueByHeader(i,sLabel,"示值5"); measItem.six_value = getValueByHeader(i,sLabel,"示值6"); measItem.seven_value=getValueByHeader(i,sLabel,"示值7"); measItem.eight_value=getValueByHeader(i,sLabel,"示值8"); measItem.nine_value = getValueByHeader(i,sLabel,"示值9"); measItem.ten_value = getValueByHeader(i,sLabel,"示值10"); measItem.eleven_value = getValueByHeader(i,sLabel,"示值11"); measItem.twelve_value = getValueByHeader(i,sLabel,"示值12"); measItem.thirteen_value = getValueByHeader(i,sLabel,"示值13"); measItem.fourteen_value = getValueByHeader(i,sLabel,"示值14"); measItem.fifteen_value=getValueByHeader(i,sLabel,"示值15"); measItem.max_value=getValueByHeader(i,sLabel,"最大值"); measItem.min_value=getValueByHeader(i,sLabel,"最小值"); measItem.volatility=getValueByHeader(i,sLabel,"波动性"); }else if(sLabel=="均匀性测试"){ //measItem.upper_lower_point = measItem.unit = getValueByHeader(i,sLabel,"单位"); // measItem.one_value = getValueByHeader(i,sLabel,"位置"); // measItem.two_value = getValueByHeader(i,sLabel,"示值ROA1"); // measItem.three_value = getValueByHeader(i,sLabel,"示值RA1"); // measItem.four_value = getValueByHeader(i,sLabel,"RA2"); // measItem.five_value = getValueByHeader(i,sLabel,"ROA2"); // measItem.six_value = getValueByHeader(i,sLabel,"ROA3"); // measItem.seven_value=getValueByHeader(i,sLabel,"RA3"); // measItem.eight_value=getValueByHeader(i,sLabel,"RA4"); // measItem.nine_value = getValueByHeader(i,sLabel,"ROA4"); // measItem.ten_value = getValueByHeader(i,sLabel,"ROA均值"); // measItem.eleven_value = getValueByHeader(i,sLabel,"RA均值"); measItem.upper_temperature_different = getValueByHeader(i,sLabel,"上水平面温差"); measItem.lower_temperature_different = getValueByHeader(i,sLabel,"下水平面温差"); measItem.max_horizontal_temperature_different = getValueByHeader(i,sLabel,"水平最大温差"); measItem.max_work_temperature_different=getValueByHeader(i,sLabel,"工作区域最大温差"); } BaseCommonApi::SearchSelectTable(QString::number(iEquipType),&measItem); } } //频谱分析仪装置 else if(iEquipType==9){ for (int i = 0; i < dataRes.count(); ++i) { DeviceMeasureDataSpectrumAnalyzer measItem; measItem.id = QString::number(api.generateId()); measItem.data_id = measInfo.id; if (sLabel == "频率显示"){ measItem.data_type = "1"; measItem.nominal_value = getValueByHeader(i,sLabel,"标称值"); measItem.sweep_width = getValueByHeader(i,sLabel,"扫频宽度"); measItem.resolution_bandwidth = getValueByHeader(i,sLabel,"分辨力带宽"); measItem.horizontal_resolution = getValueByHeader(i,sLabel,"水平分辨率"); measItem.one_value = getValueByHeader(i,sLabel,"测量值1"); measItem.two_value = getValueByHeader(i,sLabel,"测量值2"); measItem.three_value = getValueByHeader(i,sLabel,"测量值3"); measItem.lower_index = getValueByHeader(i,sLabel,"指标下限"); measItem.average_value = getValueByHeader(i,sLabel,"均值"); measItem.upper_index = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); }else if (sLabel == "扫频宽度"){ measItem.data_type = "2"; measItem.nominal_value = getValueByHeader(i,sLabel,"标称值"); measItem.horizontal_resolution = getValueByHeader(i,sLabel,"水平分辨率"); measItem.one_value = getValueByHeader(i,sLabel,"fl1"); measItem.two_value = getValueByHeader(i,sLabel,"fr1"); measItem.three_value = getValueByHeader(i,sLabel,"fl2"); measItem.four_value = getValueByHeader(i,sLabel,"fr2"); measItem.five_value = getValueByHeader(i,sLabel,"fl3"); measItem.six_value = getValueByHeader(i,sLabel,"fr3"); measItem.lower_index = getValueByHeader(i,sLabel,"指标下限"); measItem.average_value = getValueByHeader(i,sLabel,"均值"); measItem.upper_index = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); } else if (sLabel == "中频带宽"){ measItem.data_type = "3"; measItem.nominal_value = getValueByHeader(i,sLabel,"标称值"); measItem.horizontal_resolution = getValueByHeader(i,sLabel,"水平分辨率"); measItem.one_value = getValueByHeader(i,sLabel,"fl1"); measItem.two_value = getValueByHeader(i,sLabel,"fr1"); measItem.three_value = getValueByHeader(i,sLabel,"fl2"); measItem.four_value = getValueByHeader(i,sLabel,"fr2"); measItem.five_value = getValueByHeader(i,sLabel,"fl3"); measItem.six_value = getValueByHeader(i,sLabel,"fr3"); measItem.eight_value = getValueByHeader(i,sLabel,"△f1"); measItem.nine_value = getValueByHeader(i,sLabel,"△f2"); measItem.ten_value = getValueByHeader(i,sLabel,"△f3"); measItem.lower_index = getValueByHeader(i,sLabel,"指标下限"); measItem.average_value = getValueByHeader(i,sLabel,"均值"); measItem.upper_index = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); } else if (sLabel == "中频带宽转换偏差"){ measItem.data_type = "4"; measItem.nominal_value = getValueByHeader(i,sLabel,"中频带宽"); measItem.one_value = getValueByHeader(i,sLabel,"测量值"); measItem.lower_convert_deviation = getValueByHeader(i,sLabel,"指标下限"); measItem.convert_deviation = getValueByHeader(i,sLabel,"转换偏差"); measItem.upper_convert_deviation = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); }else if (sLabel == "参考电平"){ measItem.data_type = "5"; measItem.nominal_value = getValueByHeader(i,sLabel,"标称值"); measItem.standard_attenuator_attenuation = getValueByHeader(i,sLabel,"标准衰减器衰减量"); measItem.signal_source_amplitude = getValueByHeader(i,sLabel,"信号源幅度"); measItem.lower_index = getValueByHeader(i,sLabel,"指标下限"); measItem.one_value = getValueByHeader(i,sLabel,"测量值"); measItem.upper_index = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); }else if (sLabel == "垂直刻度"){ measItem.data_type = "6"; measItem.nominal_value = getValueByHeader(i,sLabel,"标称值"); measItem.vertical_scale = getValueByHeader(i,sLabel,"垂直刻度"); measItem.standard_attenuator_attenuation = getValueByHeader(i,sLabel,"标准衰减器衰减量"); measItem.signal_source_amplitude = getValueByHeader(i,sLabel,"信号源幅度"); measItem.lower_index = getValueByHeader(i,sLabel,"指标下限"); measItem.one_value = getValueByHeader(i,sLabel,"测量值"); measItem.upper_index = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); }else if (sLabel == "输入频响"){ measItem.data_type = "7"; measItem.frequency = getValueByHeader(i,sLabel,"频率"); measItem.one_value = getValueByHeader(i,sLabel,"测量值1"); measItem.two_value = getValueByHeader(i,sLabel,"测量值2"); measItem.three_value = getValueByHeader(i,sLabel,"测量值3"); measItem.average_value = getValueByHeader(i,sLabel,"均值"); measItem.lower_index = getValueByHeader(i,sLabel,"指标下限"); measItem.input_frequency = getValueByHeader(i,sLabel,"输入频响"); measItem.upper_index = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); }else if (sLabel == "平均噪声电平"){ measItem.data_type = "8"; measItem.start_frequency = getValueByHeader(i,sLabel,"起始频率"); measItem.end_frequency = getValueByHeader(i,sLabel,"终止频率"); measItem.one_value = getValueByHeader(i,sLabel,"测量值"); measItem.corrected_value = getValueByHeader(i,sLabel,"修正值"); measItem.revised_result = getValueByHeader(i,sLabel,"修正后结果"); measItem.lower_index = getValueByHeader(i,sLabel,"指标下限"); measItem.upper_index = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); }else if (sLabel == "谐波失真"){ measItem.data_type = "9"; measItem.frequency = getValueByHeader(i,sLabel,"频率"); measItem.one_value = getValueByHeader(i,sLabel,"基波幅度"); measItem.two_value = getValueByHeader(i,sLabel,"二次谐波幅度"); measItem.three_value = getValueByHeader(i,sLabel,"二次谐波失真"); measItem.four_value = getValueByHeader(i,sLabel,"三次谐波幅度"); measItem.five_value = getValueByHeader(i,sLabel,"三次谐波失真"); measItem.six_value = getValueByHeader(i,sLabel,"四次谐波幅度"); measItem.seven_value = getValueByHeader(i,sLabel,"四次谐波失真"); measItem.upper_index_twice = getValueByHeader(i,sLabel,"二次谐波失真指标上限"); measItem.upper_index_thrice = getValueByHeader(i,sLabel,"三次谐波失真指标上限"); measItem.upper_index_quartic = getValueByHeader(i,sLabel,"四次谐波失真指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); }else if (sLabel == "输入衰减"){ measItem.data_type = "10"; measItem.frequency = getValueByHeader(i,sLabel,"频率"); measItem.one_value = getValueByHeader(i,sLabel,"测量值1"); measItem.two_value = getValueByHeader(i,sLabel,"测量值2"); measItem.three_value = getValueByHeader(i,sLabel,"测量值3"); measItem.average_value = getValueByHeader(i,sLabel,"均值"); measItem.lower_index = getValueByHeader(i,sLabel,"指标下限"); measItem.input_frequency = getValueByHeader(i,sLabel,"输入频响"); measItem.upper_index = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); }else if (sLabel == "1db增益压缩点"){ measItem.data_type = "11"; measItem.input_attenuator = getValueByHeader(i,sLabel,"输入衰减"); measItem.spectrum_level = getValueByHeader(i,sLabel,"参考电平"); measItem.one_value = getValueByHeader(i,sLabel,"测量值"); measItem.gain_compression = getValueByHeader(i,sLabel,"增益压缩"); measItem.technical_index = getValueByHeader(i,sLabel,"技术指标"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); }else if (sLabel == "校准信号"){ measItem.data_type = "12"; measItem.type_value = getValueByHeader(i,sLabel,"类型"); measItem.nominal_value = getValueByHeader(i,sLabel,"标称值"); measItem.one_value = getValueByHeader(i,sLabel,"测量值1"); measItem.two_value = getValueByHeader(i,sLabel,"测量值2"); measItem.three_value = getValueByHeader(i,sLabel,"测量值3"); measItem.lower_index = getValueByHeader(i,sLabel,"指标下限"); measItem.measure_result = getValueByHeader(i,sLabel,"测量结果"); measItem.upper_index = getValueByHeader(i,sLabel,"指标上限"); measItem.conclusion = getValueByHeader(i,sLabel,"结论"); } BaseCommonApi::SearchSelectTable(QString::number(iEquipType),&measItem); } } //信号装置 else if(iEquipType==10){ for (int i = 0; i < dataRes.count(); ++i) { DeviceMeasureDataSignalGenerator measItem; measItem.id = QString::number(api.generateId()); measItem.data_id = measInfo.id; BaseCommonApi::SearchSelectTable(QString::number(iEquipType),&measItem); } } //示波器检定装置 else if(iEquipType==13) { checkitemlist.insert("时基",1); checkitemlist.insert("直流增益",2); checkitemlist.insert("直流偏置",3); checkitemlist.insert("频带宽度",4); checkitemlist.insert("触发灵敏度",5); checkitemlist.insert("上升时间",6); checkitemlist.insert("输入电阻",7); checkitemlist.insert("校准信号",8); QString Value,Unit; //ItemUnitSplit for (int i = 0; i < dataRes.count(); ++i) { DeviceOscilloscopeCalibration measItem; measItem.id = QString::number(api.generateId()); measItem.data_id = measInfo.id; measItem.data_type = getDictebyItemName(getValueByHeader(i,sLabel,"检定项目")); ItemUnitSplit(getValueByHeader(i,sLabel,"周期时标信号"),Value,Unit); measItem.cycle_signal=Value; measItem.cycle_signal_unit=Unit; measItem.time_base_absolute_error=getValueByHeader(i,sLabel,"时基绝对误差△T/ns"); measItem.time_base_relative_error=getValueByHeader(i,sLabel,"时基相对误差△δ"); ItemUnitSplit(getValueByHeader(i,sLabel,"技术指标"),Value,Unit); measItem.technical_index=Value; measItem.technical_index_unit=Unit; measItem.conclusion=getValueByHeader(i,sLabel,"结论"); measItem.thoroughfare=getValueByHeader(i,sLabel,"通道"); ItemUnitSplit(getValueByHeader(i,sLabel,"阻抗"),Value,Unit); measItem.impedance=Value; measItem.impedance_unit=Unit; ItemUnitSplit(getValueByHeader(i,sLabel,"幅度/DIV"),Value,Unit); measItem.vertical_deflect_coefficient=Value; measItem.vertical_deflect_coefficient_unit=Unit; ItemUnitSplit(getValueByHeader(i,sLabel,"标准值"),Value,Unit); measItem.standard_value=Value; measItem.standard_value_unit=Unit; ItemUnitSplit(getValueByHeader(i,sLabel,"测量值"),Value,Unit); measItem.measure_value=Value; measItem.measure_value_unit=Unit; measItem.relative_error=getValueByHeader(i,sLabel,"相对误差"); measItem.error_value=getValueByHeader(i,sLabel,"误差"); ItemUnitSplit(getValueByHeader(i,sLabel,"频带宽度"),Value,Unit); measItem.band_width=Value; measItem.band_width_unit=Unit; ItemUnitSplit(getValueByHeader(i,sLabel,"参考幅度"),Value,Unit); measItem.reference_amplitude=Value; measItem.reference_amplitude=Unit; ItemUnitSplit(getValueByHeader(i,sLabel,"测量幅度"),Value,Unit); measItem.measure_amplitude=Value; measItem.measure_amplitude_unit=Unit; measItem.decibel_number=getValueByHeader(i,sLabel,"分贝数(dB)"); measItem.trigger_type=getValueByHeader(i,sLabel,"触发类型"); ItemUnitSplit(getValueByHeader(i,sLabel,"标称值"),Value,Unit); measItem.nominal_value=Value; measItem.nominal_value_unit=Unit; measItem.data_type=getValueByHeader(i,sLabel,"项目"); ItemUnitSplit(getValueByHeader(i,sLabel,"顶部测量值"),Value,Unit); measItem.top_measure_value=Value; measItem.top_measure_value_unit=Unit; ItemUnitSplit(getValueByHeader(i,sLabel,"底部测量值"),Value,Unit); measItem.bottom_measure_value=Value; measItem.bottom_measure_value_unit=Unit; //decibel_number BaseCommonApi::InsertDeviceOscilloscopeCalibration(measItem); } } } // for(SaveDeviceMeasureCalibrator& item:measureCalList){ // item.id = QString::number(api.generateId()); // item.data_id = measInfo.id; // BaseCommonApi::InsertVerMultiCal(item); // } QMessageBox::information(this, "提示", "保存成功!"); } else { QMessageBox::warning(this, "警告", "保存失败!"); } } void DialogCheckResult::on_pushButtonPrint_clicked() { QMessageBox::warning(this, "警告", "打印"); }