void mySqlRelationalDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { if (!index.isValid()) return; QSqlRelationalTableModel *sqlModel = qobject_cast<QSqlRelationalTableModel *>(model); QSortFilterProxyModel* proxyModel = NULL; if (!sqlModel ) { proxyModel = qobject_cast<QSortFilterProxyModel *>(model); if (proxyModel) sqlModel = qobject_cast<QSqlRelationalTableModel *>(proxyModel->sourceModel()); } QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0; QComboBox *combo = qobject_cast<QComboBox *>(editor); if (!sqlModel || !childModel || !combo) { QItemDelegate::setModelData(editor, model, index); return; } int currentItem = combo->currentIndex(); int childColIndex = childModel->fieldIndex(sqlModel->relation(index.column()).displayColumn()); int childEditIndex = childModel->fieldIndex(sqlModel->relation(index.column()).indexColumn()); if (proxyModel) { proxyModel->setData(index, childModel->data(childModel->index(currentItem, childColIndex), Qt::DisplayRole), Qt::DisplayRole); proxyModel->setData(index, childModel->data(childModel->index(currentItem, childEditIndex), Qt::EditRole), Qt::EditRole); } else { sqlModel->setData(index, childModel->data(childModel->index(currentItem, childColIndex), Qt::DisplayRole), Qt::DisplayRole); sqlModel->setData(index, childModel->data(childModel->index(currentItem, childEditIndex), Qt::EditRole), Qt::EditRole); } }
void MainWindow::importData() { int exam_id; QString dataFileName = QFileDialog::getOpenFileName(this,tr("Import Data From a CSV File"),QDir::homePath(),tr("CSV File (*.csv)")); if(dataFileName.isEmpty()) return; QFile dataFile(dataFileName); if(!dataFile.open(QIODevice::ReadOnly)) { QMessageBox::critical(this,tr("Open File Failed"),tr("Cannot open selected file"));; return; } QSqlTableModel* student = m_scoreView->studentListModel(); QSqlTableModel* exam = m_scoreView->examListModel(); QSqlRelationalTableModel* score = m_scoreView->scoreListModel(); QFileInfo tmp(dataFileName); QString exam_name = tmp.baseName(); exam->setFilter(QString("name = \'%1\'").arg(exam_name)); if(exam->rowCount() == 1) { QSqlRecord rq = exam->record(0); exam_id = rq.value("id").toInt(); } else { exam->insertRow(0); exam->setData(exam->index(0,Global::Exam_Name),exam_name); exam->submitAll(); exam->setFilter(QString("name = \'%1\'").arg(exam_name)); QSqlRecord rq = exam->record(0); exam_id = rq.value("id").toInt(); } QHash<QString,int> studentMap; for(int row = 0;row < student->rowCount();++row) studentMap.insert(student->data(student->index(row,1)).toString(),student->data(student->index(row,0)).toInt()); QTextStream in(&dataFile); QString record = in.readLine(); QStringList candidate_seps; candidate_seps << ";" << "," << "\t" << " "; QString real_sep; bool is_legal = false; QStringList cols; foreach(real_sep, candidate_seps) { cols = record.split(real_sep); if(cols.size() == 11) { is_legal = true; break; } }
void Liveinfo::SubmitButton() { // bool a,b,c; if(NameEdit->text().isEmpty() || ContactEdit->text().isEmpty() || IDEdit->text().isEmpty() || DaysEdit->text().isEmpty() || DespoitEdit->text().isEmpty()) { QMessageBox::critical(0,QObject::tr("Error!"),QObject::tr("Please Fill them all!"),QMessageBox::Cancel); } else { QString Ename = NameEdit->text(); QString Econtact = ContactEdit->text(); QString EID = IDEdit->text(); QString Edays = DaysEdit->text(); QString Edeposit = DespoitEdit->text(); QDate cudate = QDate::currentDate(); cudate = cudate.addDays(Edays.toInt()); Eetime = cudate.toString("yyyy-MM-dd"); QSqlTableModel *insertGuest = new QSqlTableModel; //修改Guest中的记录 insertGuest->setTable("Guest"); insertGuest->select(); // 只要指定Row=0即可插入新行 int row = 0; insertGuest->insertRows(row,1); insertGuest->setData(insertGuest->index(row, 0), QVariant(Ename)); insertGuest->setData(insertGuest->index(row, 1), QVariant(EID)); insertGuest->setData(insertGuest->index(row, 2), QVariant(Econtact)); insertGuest->setData(insertGuest->index(row, 3), QVariant(RoomNum)); // a = insertGuest->submit(); insertGuest->submit(); QSqlTableModel *insertRecord = new QSqlTableModel; //修改Record中的记录 insertRecord->setTable("Record"); insertRecord->select(); insertRecord->insertRows(row,1); insertRecord->setData(insertRecord->index(row,0),QVariant(Ename)); insertRecord->setData(insertRecord->index(row,1),QVariant(RoomNum)); insertRecord->setData(insertRecord->index(row,2),QVariant(Edays)); insertRecord->setData(insertRecord->index(row,3),QVariant(Edeposit)); insertRecord->setData(insertRecord->index(row,4),QVariant(Estime)); insertRecord->setData(insertRecord->index(row,5),QVariant(Eetime)); // b = insertRecord->submit(); insertRecord->submit(); UpdateRoom(RoomNum,1); //修改已入住的房间 // if(a && b && c) // { QMessageBox msgBox; msgBox.setText("Succeed to live in! Welcome"); msgBox.exec(); // } QDialog::accept(); } }
void simplePerson::setData(QString idx, QString tableName) { QSqlTableModel model; model.setTable(tableName); model.setFilter(QString("id = %1").arg(idx)); model.select(); id = model.data(model.index(0,0)).toString(); surname = model.data(model.index(0,1)).toString(); name = model.data(model.index(0,2)).toString(); patronimic = model.data(model.index(0,3)).toString();; }
void ChengjiaoQianyueDialog::on_pushButton_3_clicked(){ qDebug() << "add"; QSqlTableModel * model = this->dbcon->qianyue; int row = this->tableViewqianyue->currentIndex().row(); model->setData(model->index(row, 0), this->comboBoxFang->currentText()); model->setData(model->index(row, 1), this->comboBoxKe->currentText()); model->setData(model->index(row, 2), this->comboBoxRen->currentText()); model->setData(model->index(row, 3), this->spinBoxYongjin->text().toInt()); model->setData(model->index(row, 4), this->comboBoxFen->currentText()); model->setData(model->index(row, 5), this->spinBoxBianhao->text().toInt()); model->submitAll(); }
void QgsBookmarks::addClicked() { QSqlTableModel *model = qobject_cast<QSqlTableModel *>( lstBookmarks->model() ); Q_ASSERT( model ); QgsMapCanvas *canvas = QgisApp::instance()->mapCanvas(); Q_ASSERT( canvas ); QSqlQuery query( "INSERT INTO tbl_bookmarks(bookmark_id,name,project_name,xmin,ymin,xmax,ymax,projection_srid)" " VALUES (NULL,:name,:project_name,:xmin,:xmax,:ymin,:ymax,:projection_srid)", model->database() ); QString projStr( "" ); if ( QgsProject::instance() ) { if ( !QgsProject::instance()->title().isEmpty() ) { projStr = QgsProject::instance()->title(); } else if ( !QgsProject::instance()->fileName().isEmpty() ) { QFileInfo fi( QgsProject::instance()->fileName() ); projStr = fi.exists() ? fi.fileName() : ""; } } query.bindValue( ":name", tr( "New bookmark" ) ); query.bindValue( ":project_name", projStr ); query.bindValue( ":xmin", canvas->extent().xMinimum() ); query.bindValue( ":ymin", canvas->extent().yMinimum() ); query.bindValue( ":xmax", canvas->extent().xMaximum() ); query.bindValue( ":ymax", canvas->extent().yMaximum() ); query.bindValue( ":projection_srid", QVariant::fromValue( canvas->mapSettings().destinationCrs().srsid() ) ); if ( query.exec() ) { model->setSort( 0, Qt::AscendingOrder ); model->select(); lstBookmarks->scrollToBottom(); lstBookmarks->setCurrentIndex( model->index( model->rowCount() - 1, 1 ) ); lstBookmarks->edit( model->index( model->rowCount() - 1, 1 ) ); } else { QMessageBox::warning( this, tr( "Error" ), tr( "Unable to create the bookmark.\nDriver:%1\nDatabase:%2" ) .arg( query.lastError().driverText() ) .arg( query.lastError().databaseText() ) ); } }
QModelIndex MainWindow::indexOfArtist(const QString &artist) { QSqlTableModel *artistModel = model->relationModel(2); for (int i = 0; i < artistModel->rowCount(); i++) { QSqlRecord record = artistModel->record(i); if (record.value("artist") == artist) return artistModel->index(i, 1); } return QModelIndex(); }
void MainWindow::appendDataAfterCurrent() { if(ui->articleList->currentIndex().isValid()) { int res = insertDlg->exec(); if(res == QDialog::Accepted) { QSqlTableModel* mdl = mysqlDataModel->getMapTableModel(); int newRowIndex = ui->articleList->currentIndex().row() + 1; if(!mysqlDataModel->articleExists(insertDlg->getArticleName().toUpper().toStdString())) { mdl->insertRows(newRowIndex, 1); mdl->setData(mdl->index(newRowIndex, 1), insertDlg->getArticleName().toUpper()); mdl->setData(mdl->index(newRowIndex, 2), insertDlg->getArticleDescription()); mdl->setData(mdl->index(newRowIndex, 3), QString::fromStdString(TriangleNumber::getBindedStrID(insertDlg->getVote()))); mdl->submitAll(); mdl->select(); } } } }
void Database::saveUnits(QString userName, QList<Unit> units) { QSqlTableModel model; model.setTable("user"); model.select(); QString saveName; for (int i=0; i<model.rowCount(); ++i) { QSqlRecord record = model.record(i); if (record.value("name").toString()==userName) { saveName=record.value("id").toString(); break; } } saveName.prepend("save"); model.setTable(saveName); int row=0, line=0; model.select(); model.removeRows(row, model.rowCount()); model.submitAll(); while(line<units.size()) { model.insertRows(row,1); model.setData(model.index(row,0), line+1); model.setData(model.index(row,1), units[line].imageFileName); model.setData(model.index(row,2), units[line].faceLeft); model.setData(model.index(row,3), units[line].vLocation); model.setData(model.index(row,4), units[line].hLocation); model.setData(model.index(row,5), units[line].hitPoints); model.setData(model.index(row,6), units[line].totalHitPoints); model.setData(model.index(row,7), units[line].actionTime); model.setData(model.index(row,8), units[line].actionRate); model.setData(model.index(row,9), units[line].movementRange); model.setData(model.index(row,10), units[line].attackRange); model.setData(model.index(row,11), units[line].attackPower); model.setData(model.index(row,12), units[line].status); model.setData(model.index(row,13), units[line].maskFileName); model.setData(model.index(row,14), units[line].team); model.setData(model.index(row,15), units[line].unitWorth); model.submitAll(); line++; } }
void QSqlQueryModel_snippets() { { //! [16] QSqlQueryModel *model = new QSqlQueryModel; model->setQuery("SELECT name, salary FROM employee"); model->setHeaderData(0, Qt::Horizontal, tr("Name")); model->setHeaderData(1, Qt::Horizontal, tr("Salary")); //! [17] QTableView *view = new QTableView; //! [17] //! [18] view->setModel(model); //! [18] //! [19] view->show(); //! [16] //! [19] //! [20] view->setEditTriggers(QAbstractItemView::NoEditTriggers); //! [20] } //! [21] QSqlTableModel model; model.setTable("employee"); model.select(); int salary = model.record(4).value("salary").toInt(); //! [21] Q_UNUSED(salary); { //! [22] int salary = model.data(model.index(4, 2)).toInt(); //! [22] Q_UNUSED(salary); } for (int row = 0; row < model.rowCount(); ++row) { for (int col = 0; col < model.columnCount(); ++col) { qDebug() << model.data(model.index(row, col)); } } }
void SupplierManageWindow::areaUpdateCombo(bool select) { QSqlTableModel *ptrModel = m_model->relationModel(SupplierManageWindow::idArea); if(select) ptrModel->select(); ptrModel->insertRow(0); ptrModel->setData(ptrModel->index(0, ptrModel->fieldIndex("name")), trUtf8("-- Seleccione Rubro --"), Qt::EditRole); cb_area->setModel(ptrModel); cb_area->setModelColumn(ptrModel->fieldIndex("name")); cb_area->setCurrentIndex(0); }
int FacturationIO::getrowoffacturation(QSqlTableModel & modelfacturation,const QString & factureid) { int row = 0; for ( int i = 0; i < modelfacturation.rowCount(); ++i) { if (modelfacturation.data(modelfacturation.index(i,ID_FACTURE),Qt::DisplayRole).toString() == factureid) { row = i; } } return row; }
void MySqlRelationDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { if (!index.isValid()) return; QSqlRelationalTableModel *sqlModel = qobject_cast<QSqlRelationalTableModel *>(model); QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0; QComboBox *combo = qobject_cast<QComboBox *>(editor); if (!sqlModel || !childModel || !combo) { if (HandbookDialog::m_record.fieldName(index.column()).contains("IS_", Qt::CaseSensitive)) { QCheckBox * checkBox = qobject_cast<QCheckBox *>(editor); sqlModel->setData(index, checkBox->isChecked(), Qt::DisplayRole); sqlModel->setData(index, checkBox->isChecked(), Qt::EditRole); return; } else if (HandbookDialog::m_record.fieldName(index.column()).contains("DATE_", Qt::CaseSensitive)) { QDateEdit * dateEdit = qobject_cast<QDateEdit *>(editor); sqlModel->setData(index, dateEdit->date().toString("yyyy-MM-dd"), Qt::DisplayRole); sqlModel->setData(index, dateEdit->date().toString("yyyy-MM-dd"), Qt::EditRole); return; } else { QItemDelegate::setModelData(editor, model, index); return; } } int currentItem = combo->currentIndex(); int childColIndex = childModel->fieldIndex(sqlModel->relation(index.column()).displayColumn()); int childEditIndex = childModel->fieldIndex(sqlModel->relation(index.column()).indexColumn()); sqlModel->setData(index, childModel->data(childModel->index(currentItem, childColIndex), Qt::DisplayRole), Qt::DisplayRole); sqlModel->setData(index, childModel->data(childModel->index(currentItem, childEditIndex), Qt::EditRole), Qt::EditRole); }
void Browser::insertRow() { QSqlTableModel *model = qobject_cast<QSqlTableModel *>(table->model()); if (!model) return; QModelIndex insertIndex = table->currentIndex(); int row = insertIndex.row() == -1 ? 0 : insertIndex.row(); model->insertRow(row); insertIndex = model->index(row, 0); table->setCurrentIndex(insertIndex); table->edit(insertIndex); }
void MainWindow::on_currencyComboBox_currentIndexChanged(int index) { int row = ui->assetsTable->currentIndex().row(); QVariant current_value = model->data(model->index(row, currency_column_index), Qt::DisplayRole); QSqlTableModel *childModel = model->relationModel(currency_column_index); int childColIndex = childModel->fieldIndex("code"); QVariant new_value = childModel->data(childModel->index(index, childColIndex), Qt::DisplayRole); if(current_value != new_value) { mapper->submit(); } }
void MainWindow::changeVoteMark() { if(ui->articleList->currentIndex().isValid()) { int res = changeMarkDlg->exec(); if(res == QDialog::Accepted) { QSqlTableModel* mdl = mysqlDataModel->getMapTableModel(); int rowIndex = ui->articleList->currentIndex().row(); mdl->setData(mdl->index(rowIndex, 3), QString::fromStdString(TriangleNumber::getBindedStrID(changeMarkDlg->getVoteMark()))); mdl->submitAll(); mdl->select(); } } }
void FenPrincipale::insertRow() { QSqlTableModel *model = qobject_cast<QSqlTableModel *>(tablemesures->model()); if (!model) return; model->setEditStrategy(QSqlTableModel::OnManualSubmit); QModelIndex insertIndex = tablemesures->currentIndex(); int row = insertIndex.row() == -1 ? 0 : insertIndex.row(); model->insertRow(row); insertIndex = model->index(row, 0); tablemesures->setCurrentIndex(insertIndex); tablemesures->edit(insertIndex); }
void partner::setUpdate(QString idt) { QSqlTableModel model; model.setTable("Partner"); model.setFilter(QString("id = %1").arg(idt)); model.select(); id = model.data(model.index(0,0)).toInt(); ui->nameEdit->setText(model.data(model.index(0,1)).toString()); ui->surnameEdit->setText(model.data(model.index(0,2)).toString()); ui->patronimicEdit->setText(model.data(model.index(0,3)).toString()); ui->passportEdit->setText(model.data(model.index(0,4)).toString()); ui->phoneEdit->setText(model.data(model.index(0,5)).toString()); mode = updateMode; }
void SelectLiftDlg::on_pushBtnSel_clicked() { int curRow = ui->tableView->currentIndex().row(); if(curRow<0) { QMessageBox::warning(this,"警告","请先选择电梯!",QMessageBox::Yes); return; } QSqlTableModel *modelTable = new QSqlTableModel(this); modelTable->setTable("tableLift"); modelTable->select(); for(int i=0;i<modelTable->columnCount();i++) { QModelIndex index = modelTable->index(curRow,i); arrValues.push_back(modelTable->data(index).toString()); } accept(); }
bool ChangePassword::on_pushButton_clicked() { if (ui->new_2->text()!= ui->new_3->text()) { QMessageBox::information(this, tr("警告!"),tr("两次输入的密码不一致,请重新输入!")); ui->new_2->clear(); ui->new_3->clear(); return false; } root.open(); QSqlTableModel *user = new QSqlTableModel(this,root); user->setTable("user"); user->setFilter(tr("user='******' and password = '******'").arg(username,ui->old->text())); user->select(); if (user->rowCount() <= 0) { QMessageBox::information(this, tr("警告!"),tr("密码输入错误,请重新输入!")); root.close(); return false; } else { user->setData(user->index(0,1),ui->new_2->text()); user->submitAll(); root.close(); QMessageBox::information(this, tr(" 修改成功!"),tr("密码修改成功!!")); close(); return true; } root.close(); }
void sql_intro_snippets() { { //! [26] QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("bigblue"); db.setDatabaseName("flightdb"); db.setUserName("acarlson"); db.setPassword("1uTbSbAs"); bool ok = db.open(); //! [26] Q_UNUSED(ok); } { //! [27] QSqlDatabase firstDB = QSqlDatabase::addDatabase("QMYSQL", "first"); QSqlDatabase secondDB = QSqlDatabase::addDatabase("QMYSQL", "second"); //! [27] } { //! [28] QSqlDatabase defaultDB = QSqlDatabase::database(); //! [28] //! [29] QSqlDatabase firstDB = QSqlDatabase::database("first"); //! [29] //! [30] QSqlDatabase secondDB = QSqlDatabase::database("second"); //! [30] } { // SELECT1 //! [31] QSqlQuery query; query.exec("SELECT name, salary FROM employee WHERE salary > 50000"); //! [31] //! [32] while (query.next()) { QString name = query.value(0).toString(); int salary = query.value(1).toInt(); qDebug() << name << salary; } //! [32] } { // FEATURE //! [33] QSqlQuery query; int numRows; query.exec("SELECT name, salary FROM employee WHERE salary > 50000"); QSqlDatabase defaultDB = QSqlDatabase::database(); if (defaultDB.driver()->hasFeature(QSqlDriver::QuerySize)) { numRows = query.size(); } else { // this can be very slow query.last(); numRows = query.at() + 1; } //! [33] } { // INSERT1 //! [34] QSqlQuery query; query.exec("INSERT INTO employee (id, name, salary) " "VALUES (1001, 'Thad Beaumont', 65000)"); //! [34] } { // NAMED BINDING //! [35] QSqlQuery query; query.prepare("INSERT INTO employee (id, name, salary) " "VALUES (:id, :name, :salary)"); query.bindValue(":id", 1001); query.bindValue(":name", "Thad Beaumont"); query.bindValue(":salary", 65000); query.exec(); //! [35] } { // POSITIONAL BINDING //! [36] QSqlQuery query; query.prepare("INSERT INTO employee (id, name, salary) " "VALUES (?, ?, ?)"); query.addBindValue(1001); query.addBindValue("Thad Beaumont"); query.addBindValue(65000); query.exec(); //! [36] } { // UPDATE1 //! [37] QSqlQuery query; query.exec("UPDATE employee SET salary = 70000 WHERE id = 1003"); //! [37] } { // DELETE1 //! [38] QSqlQuery query; query.exec("DELETE FROM employee WHERE id = 1007"); //! [38] } { // TRANSACTION //! [39] QSqlDatabase::database().transaction(); QSqlQuery query; query.exec("SELECT id FROM employee WHERE name = 'Torild Halvorsen'"); if (query.next()) { int employeeId = query.value(0).toInt(); query.exec("INSERT INTO project (id, name, ownerid) " "VALUES (201, 'Manhattan Project', " + QString::number(employeeId) + ')'); } QSqlDatabase::database().commit(); //! [39] } { // SQLQUERYMODEL1 //! [40] QSqlQueryModel model; model.setQuery("SELECT * FROM employee"); for (int i = 0; i < model.rowCount(); ++i) { int id = model.record(i).value("id").toInt(); QString name = model.record(i).value("name").toString(); qDebug() << id << name; } //! [40] } { // SQLTABLEMODEL1 //! [41] QSqlTableModel model; model.setTable("employee"); model.setFilter("salary > 50000"); model.setSort(2, Qt::DescendingOrder); model.select(); for (int i = 0; i < model.rowCount(); ++i) { QString name = model.record(i).value("name").toString(); int salary = model.record(i).value("salary").toInt(); qDebug() << name << salary; } //! [41] } { // SQLTABLEMODEL2 QSqlTableModel model; model.setTable("employee"); //! [42] for (int i = 0; i < model.rowCount(); ++i) { QSqlRecord record = model.record(i); double salary = record.value("salary").toInt(); salary *= 1.1; record.setValue("salary", salary); model.setRecord(i, record); } model.submitAll(); //! [42] // SQLTABLEMODEL3 int row = 1; int column = 2; //! [43] model.setData(model.index(row, column), 75000); model.submitAll(); //! [43] // SQLTABLEMODEL4 //! [44] model.insertRows(row, 1); model.setData(model.index(row, 0), 1013); model.setData(model.index(row, 1), "Peter Gordon"); model.setData(model.index(row, 2), 68500); model.submitAll(); //! [44] //! [45] model.removeRows(row, 5); //! [45] //! [46] model.submitAll(); //! [46] } }
void event::on_confirm_clicked() { QString discount = ui->discount->text(); int numflag1=1,a=1; for(int i=0;i<discount.size();i++) if ((discount[i]<'0')||(discount[i]>'9')) { numflag1=0; break; } if(numflag1==0) { QMessageBox::critical(NULL, "警告","折扣输入格式有误!"); a=0; } float dis = discount.toFloat(); if(dis<1||dis>100) { QMessageBox::critical(NULL, "警告","折扣输入格式有误!"); a=0; } float d =1-dis/100; if(ui->book->isChecked()) { QSqlTableModel model; model.setTable("commodity"); model.setFilter(QObject::tr("column = 1 ")); //根据类别进行筛选 model.select(); //显示结果 for (int i = 0; i < model.rowCount(); i++) { qDebug()<<model.record(i); qDebug()<<d; model.setData(model.index(i,7),d); double p= model.record(i).value("primeprice").toFloat(); double a = d*p; int yy = (int)(a*100+1.0e-6); double b = (double)yy/100; model.setData(model.index(i,4),b); model.submitAll(); qDebug()<<model.record(i); } if(a==1) { QMessageBox::information(NULL, "成功","信息更改成功!"); accept(); } } else if(ui->clothes->isChecked()) { QSqlTableModel model; model.setTable("commodity"); model.setFilter(QObject::tr("column = 2 ")); //根据类别进行筛选 model.select(); //显示结果 for (int i = 0; i < model.rowCount(); i++) { qDebug()<<model.record(i); qDebug()<<d; model.setData(model.index(i,7),d); double p= model.record(i).value("primeprice").toFloat(); double a = d*p; int yy = (int)(a*100+1.0e-6); double b = (double)yy/100; model.setData(model.index(i,4),b); model.submitAll(); qDebug()<<model.record(i); } if(a==1) { QMessageBox::information(NULL, "成功","信息更改成功!"); accept(); } } else if(ui->food->isChecked()) { QSqlTableModel model; model.setTable("commodity"); model.setFilter(QObject::tr("column = 3 ")); //根据类别进行筛选 model.select(); //显示结果 qDebug()<<model.rowCount(); for (int i = 0; i < model.rowCount(); i++) { qDebug()<<model.record(i); qDebug()<<d; model.setData(model.index(i,7),d); double p= model.record(i).value("primeprice").toFloat(); double a = d*p; int yy = (int)(a*100+1.0e-6); double b = (double)yy/100; model.setData(model.index(i,4),b); model.submitAll(); qDebug()<<model.record(i); } if(a==1) { QMessageBox::information(NULL, "成功","信息更改成功!"); accept(); } } else if(ui->electronic->isChecked()) { QSqlTableModel model; model.setTable("commodity"); model.setFilter(QObject::tr("column = 4 ")); //根据类别进行筛选 model.select(); //显示结果 for (int i = 0; i < model.rowCount(); i++) { qDebug()<<model.record(i); qDebug()<<d; model.setData(model.index(i,7),d); double p= model.record(i).value("primeprice").toFloat(); double a = d*p; int yy = (int)(a*100+1.0e-6); double b = (double)yy/100; model.setData(model.index(i,4),b); model.submitAll(); qDebug()<<model.record(i); } if(a==1) { QMessageBox::information(NULL, "成功","信息更改成功!"); accept(); } } else { QMessageBox::critical(NULL, "警告","请选择商品!"); } }
bool DocumentSaverDB::saveDocument(KraftDoc *doc ) { bool result = false; if( ! doc ) return result; QSqlTableModel model; model.setTable("document"); QSqlRecord record; kDebug() << "############### Document Save ################" << endl; if( doc->isNew() ) { record = model.record(); } else { model.setFilter("docID=" + doc->docID().toString()); model.select(); if ( model.rowCount() > 0 ) { record = model.record(0); } else { kError() << "Could not select document record" << endl; return result; } // The document was already saved. } if( !doc->isNew() && doc->docTypeChanged() && doc->newIdent() ) { // an existing doc has a new document type. Fix the doc number cycle and pick a new ident DocType dt( doc->docType() ); QString ident = dt.generateDocumentIdent( doc ); doc->setIdent( ident ); } fillDocumentBuffer( record, doc ); if( doc->isNew() ) { kDebug() << "Doc is new, inserting" << endl; if( !model.insertRecord(-1, record)) { QSqlError err = model.lastError(); kDebug() << "################# SQL Error: " << err.text(); } model.submitAll(); dbID id = KraftDB::self()->getLastInsertID(); doc->setDocID( id ); // get the uniq id and write it into the db DocType dt( doc->docType() ); QString ident = dt.generateDocumentIdent( doc ); doc->setIdent( ident ); model.setFilter("docID=" + id.toString()); model.select(); if ( model.rowCount() > 0 ) { model.setData(model.index(0, 1), ident); model.submitAll(); } } else { kDebug() << "Doc is not new, updating #" << doc->docID().intID() << endl; record.setValue( "docID", doc->docID().toString() ); model.setRecord(0, record); model.submitAll(); } saveDocumentPositions( doc ); kDebug() << "Saved document no " << doc->docID().toString() << endl; return result; }
void estore::on_confirm_clicked() { int num = ui->num->text().toInt(); QSqlTableModel model; model.setTable("commodity"); model.setFilter(tr("number = '%1'").arg(num)); model.select(); if(model.rowCount()==1)//查询到有一个结果 { QString name =model.record(0).value("name").toString(); QString description =model.record(0).value("description").toString(); double primeprice = model.record(0).value("primeprice").toDouble(); double saleprice = model.record(0).value("saleprice").toDouble(); int column = model.record(0).value("column").toInt(); int sum = model.record(0).value("sum").toInt(); double discount = model.record(0).value("discount").toDouble(); QString publishmentbrand =model.record(0).value("publishmentbrand").toString(); QString ISBNmaterialcolumn =model.record(0).value("ISBNmaterialcolumn").toString(); QString date =model.record(0).value("date").toString(); QString pagenumbersizeweight =model.record(0).value("pagenumbersizeweight").toString(); QString si = ui->sum->text(); int suminput= si.toInt(); int numflag1=1; for(int i=0;i<si.size();i++) if ((si[i]<'0')||(si[i]>'9')) { numflag1=0; break; } if(si.size()==0) { QMessageBox::critical(NULL, "错误","数量未填写!"); } else if(numflag1==0) { QMessageBox::critical(NULL, "错误","数量填写格式错误!"); } else if(suminput > sum ) { QMessageBox::warning(NULL, tr("错误"), tr("输入商品数量大于库存!")); } else { confirm c(name, suminput); if(c.exec()==QDialog::Accepted) { if (addTrolley(num, name, description, primeprice, saleprice,column, suminput, discount, publishmentbrand, ISBNmaterialcolumn, date, pagenumbersizeweight)) { model.setData(model.index(0,6),sum-suminput); model.submitAll(); QMessageBox::information(NULL, tr("成功"), tr("商品成功添加至购物车!")); accept(); } } } }else { QMessageBox::warning(NULL, tr("错误"), tr("未查询到商品!")); } }
void MainWindow::slotBtnReadCard() { std::string strTxtbrwInfos = ""; QString strQTxtbrwInfos; #ifdef USE_CH375 if(ch375rw.bIsOpened) { ch375rw.Read(0x00,48); Sleep(TIME_DELAY); UCHAR *chData = ch375rw.Read(0x00,48); if(chData==NULL) { return; } strTxtbrwInfos = "卡号:"+ch375rw.strCardID+"\n"; switch(int(chData[1]))//卡类型 { case 0x01://用户卡 { strTxtbrwInfos += "卡类型:用户卡\n"; dsUserCard.chars2DS(chData); break; } case 0x2://普通管理人卡 strTxtbrwInfos += "卡类型:普通管理人卡\n"; break; case 0x3://高级管理人卡 strTxtbrwInfos += "卡类型:高级管理人卡\n"; break; case 0x04://黑名单(启禁用卡) { strTxtbrwInfos += "卡类型:启禁用卡\n"; dsEnableCard.chars2DS(chData); if(dsEnableCard.structEnableCard.EnableType==0x01)//按卡号 { strTxtbrwInfos += "启禁用类型:按卡号\n"; } if(dsEnableCard.structEnableCard.EnableType==0x02)//按房号 { strTxtbrwInfos += "启禁用类型:按房号\n"; } std::string strLimitCardType=""; if(dsEnableCard.structEnableCard.LimitCardType==0x01) { strLimitCardType="用户卡"; } if(dsEnableCard.structEnableCard.LimitCardType==0x02) { strLimitCardType="管理人卡"; } int nLiftNum = dsEnableCard.structEnableCard.LiftNum; strTxtbrwInfos += "可用电梯:"+TypeConvert::intNormal2stdstring(nLiftNum)+"\n"; if(dsEnableCard.structEnableCard.Num1[0]==0x00) { std::string strIsEnable1=""; if(dsEnableCard.structEnableCard.IsEnable1==0x01) { strIsEnable1="启用"; } if(dsEnableCard.structEnableCard.IsEnable1==0x02) { strIsEnable1="禁用"; } std::string strNum1=""; for(int i=0;i<4;i++) { int nNum1=dsEnableCard.structEnableCard.Num1[i]; strNum1 += TypeConvert::intDec2stdstring(nNum1); } if(dsEnableCard.structEnableCard.EnableType==0x01) { strTxtbrwInfos += strLimitCardType+"卡号:"+ strNum1.substr(3,5)+" "+strIsEnable1+"\n"; } if(dsEnableCard.structEnableCard.EnableType==0x02) { strTxtbrwInfos += "房号:"+strNum1.substr(4,4)+" "+strIsEnable1+"\n"; } } if(dsEnableCard.structEnableCard.Num2[0]==0x00) { std::string strIsEnable2=""; if(dsEnableCard.structEnableCard.IsEnable2==0x01) { strIsEnable2="启用"; } if(dsEnableCard.structEnableCard.IsEnable2==0x02) { strIsEnable2="禁用"; } std::string strNum2=""; for(int i=0;i<4;i++) { int nNum2=dsEnableCard.structEnableCard.Num2[i]; strNum2 += TypeConvert::intDec2stdstring(nNum2); } if(dsEnableCard.structEnableCard.EnableType==0x01) { strTxtbrwInfos += strLimitCardType+"卡号:"+ strNum2.substr(3,5)+" "+strIsEnable2+"\n"; } if(dsEnableCard.structEnableCard.EnableType==0x02) { strTxtbrwInfos += "房号:"+strNum2.substr(4,4)+" "+strIsEnable2+"\n"; } } if(dsEnableCard.structEnableCard.Num3[0]==0x00) { std::string strIsEnable3=""; if(dsEnableCard.structEnableCard.IsEnable3==0x01) { strIsEnable3="启用"; } if(dsEnableCard.structEnableCard.IsEnable3==0x02) { strIsEnable3="禁用"; } std::string strNum3=""; for(int i=0;i<4;i++) { int nNum3=dsEnableCard.structEnableCard.Num3[i]; strNum3 += TypeConvert::intDec2stdstring(nNum3); } if(dsEnableCard.structEnableCard.EnableType==0x01) { strTxtbrwInfos += strLimitCardType+"卡号:"+ strNum3.substr(3,5)+" "+strIsEnable3+"\n"; } if(dsEnableCard.structEnableCard.EnableType==0x02) { strTxtbrwInfos += "房号:"+strNum3.substr(4,4)+" "+strIsEnable3+"\n"; } } if(dsEnableCard.structEnableCard.Num4[0]==0x00) { std::string strIsEnable4=""; if(dsEnableCard.structEnableCard.IsEnable4==0x01) { strIsEnable4="启用"; } if(dsEnableCard.structEnableCard.IsEnable4==0x02) { strIsEnable4="禁用"; } std::string strNum4=""; for(int i=0;i<4;i++) { int nNum4=dsEnableCard.structEnableCard.Num4[i]; strNum4 += TypeConvert::intDec2stdstring(nNum4); } if(dsEnableCard.structEnableCard.EnableType==0x01) { strTxtbrwInfos += strLimitCardType+"卡号:"+ strNum4.substr(3,5)+" "+strIsEnable4+"\n"; } if(dsEnableCard.structEnableCard.EnableType==0x02) { strTxtbrwInfos += "房号:"+strNum4.substr(4,4)+" "+strIsEnable4+"\n"; } } break; } case 0x06://时间矫正卡 { strTxtbrwInfos += "卡类型:时间矫正卡\n"; dsTimeSet.chars2DS(chData); switch(dsTimeSet.structTimeSet.TimeSetType) { case SetType::SetControlerTime: { strTxtbrwInfos += "时间卡功能:控制器时间设置\n"; std::vector<std::string> vectorDateTime; for(int i=0;i<6;i++) { int nTemp=dsTimeSet.structTimeSet.ControlerTime[i]; vectorDateTime.push_back(TypeConvert::intHex2stdstring(nTemp)); } std::string strDateTime = vectorDateTime[0]+ vectorDateTime[1]+"-"+ vectorDateTime[2]+"-"+vectorDateTime[3]+" "+ vectorDateTime[4]+":"+vectorDateTime[5]; strTxtbrwInfos += "控制器时间:"+strDateTime+"\n"; break; } case SetType::SetKeyResponseTime: { strTxtbrwInfos += "时间卡功能:按钮响应时间设置\n"; float fTimeOne= float(dsTimeSet.structTimeSet.SingleSelectTime)/10; short sTimeMul=dsTimeSet.structTimeSet.MultiSelectTime; std::string strTimeOne=TypeConvert::float2stdstring(fTimeOne); std::string strTimeMul=TypeConvert::intDec2stdstring(sTimeMul); strTxtbrwInfos += "单选按键响应时间:"+strTimeOne+"秒\n"+ "多选按键响应时间:"+strTimeMul+"秒\n"; break; } case SetType::SetVisitorResponseTime: { strTxtbrwInfos += "时间卡功能:访客按钮响应时间设置\n"; int nHI=dsTimeSet.structTimeSet.VisitorTime[0]; int nLO=dsTimeSet.structTimeSet.VisitorTime[1]; int nTimeVisit=nHI*256+nLO; std::string strTimeVisit = TypeConvert::intNormal2stdstring(nTimeVisit); strTxtbrwInfos += "访客按键响应时间:"+strTimeVisit+"秒\n"; break; } } break; } case 0x7://电梯运行卡 { strTxtbrwInfos += "卡类型:电梯运行卡\n"; break; } case 0x08://系统开关卡 { strTxtbrwInfos += "卡类型:系统开关卡\n"; dsSysSwitchCard.chars2DS(chData); switch (dsSysSwitchCard.structSysSwitchCard.SwitchCardType) { case SWCardType::SysSwitch: { strTxtbrwInfos+="开关卡分类:系统开关卡\n"; break; } case SWCardType::LayerSwitch: { strTxtbrwInfos+="开关卡分类:分层开关卡\n"; if(dsSysSwitchCard.structSysSwitchCard.SwitchFlag==0x11) { strTxtbrwInfos+="开关标识:开放\n"; } if(dsSysSwitchCard.structSysSwitchCard.SwitchFlag==0x22) { strTxtbrwInfos+="开关标识:关闭\n"; } //电梯编号 int nLiftNum=0; for(int i=0;i<32;i++) { for(int j=0;j<8;j++) { if ( (dsSysSwitchCard.structSysSwitchCard.LiftNum[i] & (1<<j)) == pow(2,j) ) { nLiftNum=i*8+(j+1); break; } } } strTxtbrwInfos+="可用电梯号:"+TypeConvert::intNormal2stdstring(nLiftNum)+"\n"; //受控楼层 strTxtbrwInfos+="受控楼层:"; strTxtbrwInfos+="A门:"; for(int i=0;i<6;i++) { for(int j=0;j<8;j++) { if ( (dsSysSwitchCard.structSysSwitchCard.FloorsA[i]&(1<<j)) == pow(2,j) ) { int nFloor = i*8+(j+1); strTxtbrwInfos+=TypeConvert::intNormal2stdstring(nFloor)+","; } } } strTxtbrwInfos.erase(strTxtbrwInfos.end()-1); strTxtbrwInfos+="\n"; break; } case SWCardType::PublicFloorsSet: { strTxtbrwInfos+="开关卡分类:公共楼层设置卡\n"; if(dsSysSwitchCard.structSysSwitchCard.SwitchFlag==0x11) { strTxtbrwInfos+="开关标识:开放\n"; } if(dsSysSwitchCard.structSysSwitchCard.SwitchFlag==0x22) { strTxtbrwInfos+="开关标识:关闭\n"; } //电梯编号 int nLiftNum=1; for(int i=0;i<32;i++) { for(int j=0;j<8;j++) { if ( (dsSysSwitchCard.structSysSwitchCard.LiftNum[i]&(1<<j)) == pow(2,j) ) { nLiftNum=i*8+(j+1); } } } strTxtbrwInfos+="可用电梯号:"+TypeConvert::intNormal2stdstring(nLiftNum)+"\n"; //受控楼层 strTxtbrwInfos+="受控楼层:"; strTxtbrwInfos+="A门:"; for(int i=0;i<6;i++) { for(int j=0;j<8;j++) { if ( (dsSysSwitchCard.structSysSwitchCard.FloorsA[i]&(1<<j)) == pow(2,j) ) { int nFloor = i*8+(j+1); strTxtbrwInfos+=TypeConvert::intNormal2stdstring(nFloor)+","; } } } strTxtbrwInfos.erase(strTxtbrwInfos.end()-1); strTxtbrwInfos+="\n"; break; } default: break; } break; } case 0x0A://通讯地址设定卡 { strTxtbrwInfos += "卡类型:通讯地址设定卡\n"; int nAddr = chData[2]; strTxtbrwInfos += "地址:"+TypeConvert::intNormal2stdstring(nAddr)+"\n"; break; } case 0x0B://清内存卡 { strTxtbrwInfos += "卡类型:清内存卡\n"; break; } default: { strTxtbrwInfos += "此卡为新卡\n"; break; } } } else { strTxtbrwInfos = "请插入读卡器!"; } ch375rw.Beep(1); strQTxtbrwInfos=QString::fromStdString(strTxtbrwInfos); #endif static int countClick=0; countClick++; switch(countClick) { case 1: { strQTxtbrwInfos="用户卡\n"; std::vector<QString> arrFiledsUsrCards; arrFiledsUsrCards.push_back("卡号"); arrFiledsUsrCards.push_back("业主姓名"); arrFiledsUsrCards.push_back("业主门牌"); arrFiledsUsrCards.push_back("联系电话"); arrFiledsUsrCards.push_back("限制日期"); arrFiledsUsrCards.push_back("可用电梯"); arrFiledsUsrCards.push_back("可用楼层"); arrFiledsUsrCards.push_back("房间编号"); QSqlTableModel *modelTableUsrCard = new QSqlTableModel(this); modelTableUsrCard->setTable("tableUsrCard"); modelTableUsrCard->select(); int rowLast = modelTableUsrCard->rowCount()-1; for(int i=0;i<8;i++) { QModelIndex indexModelLast = modelTableUsrCard->index(rowLast,i); QString strUsrCardLast = modelTableUsrCard->data(indexModelLast).toString(); strQTxtbrwInfos += arrFiledsUsrCards[i] + ":"+strUsrCardLast+"\n"; } break; } case 2: { strQTxtbrwInfos="此卡为新卡!\n"; break; } } txtbrwInfos->setText(strQTxtbrwInfos); }
void TableEditor::removeSelectedRows() { int currentTab = tabWidget->currentIndex(); QTableView *tv = agentsTable; QSqlTableModel *stm = agentsModel; QString table = "agents"; int idColumn = 0; if (currentTab == 1) { tv = determinationsTable; stm = determinationsModel; table = "determinations"; } else if (currentTab == 2) { tv = imagesTable; stm = imagesModel; table = "images"; idColumn = 20; } else if (currentTab == 3) { tv = taxaTable; stm = taxaModel; table = "taxa"; idColumn = 1; } else if (currentTab == 4) { tv = organismsTable; stm = organismsModel; table = "organisms"; } else if (currentTab == 5) { tv = sensuTable; stm = sensuModel; table = "sensu"; } QItemSelectionModel *selected = tv->selectionModel(); QModelIndexList rowList = selected->selectedIndexes(); for (int i = rowList.count()-1; i >= 0; i--) { stm->removeRow(rowList.at(i).row(), rowList.at(i).parent()); QString identifier; if (table == "determinations") { QString orgID = stm->data(stm->index(rowList.at(i).row(),0),Qt::DisplayRole).toString(); QString date = stm->data(stm->index(rowList.at(i).row(),2),Qt::DisplayRole).toString(); QString tsnID = stm->data(stm->index(rowList.at(i).row(),4),Qt::DisplayRole).toString(); QString source = stm->data(stm->index(rowList.at(i).row(),5),Qt::DisplayRole).toString(); reversions.append("INSERT OR REPLACE INTO determinations SELECT * FROM pub_determinations " "WHERE dsw_identified = '" + orgID + "' AND " "dwc_dateIdentified = '" + date + "' AND " "tsnID = '" + tsnID + "' AND " "nameAccordingToID = '" + source + "' LIMIT 1"); } else { identifier = stm->data(stm->index(rowList.at(i).row(),idColumn),Qt::DisplayRole).toString(); reversions.append("INSERT OR REPLACE INTO " + table + " SELECT * FROM pub_" + table + " WHERE dcterms_identifier = '" + identifier + "' LIMIT 1"); } } }
TestTreeView::TestTreeView(QWidget *parent) : QWidget(parent) { SqlConnection::getInstance(); /** * Vue représentant l'arbre * Envoi les signaux Datachanged pour mettre à jour la base de donnée * La vue n'est pas directement connectée au model */ TreeView* treeView = new TreeView; /** * Création du model */ QSqlRelationalTableModel*model = new QSqlRelationalTableModel(); model->setTable("Course"); int semesterIndex = model->fieldIndex("semesterId"); int courseIndex = model->fieldIndex("name"); // Relation (Liste des semestre) model->setRelation(semesterIndex, QSqlRelation("Semester", "id", "name")); model->select(); QSqlTableModel* relmodel = model->relationModel(semesterIndex); TreeModel* treeModel = new TreeModel(0,1); /** Construction de l'arbre (treeView) */ for(int row=0; row < relmodel->rowCount(); row++){ // Parcours de la liste les semestre QString SemesterName = relmodel->index(row,1).data().toString(); QStandardItem* semester = new QStandardItem(SemesterName); treeModel->appendRow(semester); // Ajout des fils (cours) for(int i=0; i < model->rowCount(); i++){ QString s = model->index(i,semesterIndex).data().toString(); if(s == SemesterName){ QStandardItem* course = new QStandardItem(model->index(i,courseIndex).data().toString()); semester->appendRow(course); } } } /** * ces signaux ne marche pas forcément * le but est de détecté si le model change depuis un autre widget * Il faudra mettre à jour l'arbre dans ce cas; */ // Si le model change connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(update(QModelIndex,QModelIndex))); // si la relation change (ne marche pas !?) connect(relmodel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(update(QModelIndex,QModelIndex))); QVBoxLayout* layout = new QVBoxLayout(this); layout->setContentsMargins(0,0,0,0); treeView->setSelectionBehavior(QAbstractItemView::SelectRows); treeView->setItemDelegate(new TreeDelegate ); treeView->setModel(treeModel); layout->addWidget(treeView); resize(800,300); }