student_menu::student_menu(QWidget *parent, QString db_login) : menu_base(parent), ui(new Ui::student_menu) { ui->setupUi(this); if(db_login.length()) { QString qtext("SELECT DISTINCT ON(l.id_pupil) \ s.id_pupil,class_num(c.creation_date)||c.letter AS class, fio(s.last_name, s.first_name, s.patronim) AS fio\ FROM schooler_logins l \ LEFT JOIN schoolers s ON l.id_pupil=s.id_pupil \ LEFT JOIN admission_schoolers ass ON s.id_pupil=ass.id_pupil \ LEFT JOIN classes c ON ass.id_class=c.id_class \ WHERE l.db_login=? \ ORDER BY l.id_pupil ASC,date DESC; "); QSqlQuery query; query.prepare(qtext); query.addBindValue(db_login); query.exec(); if (query.lastError().type()!=QSqlError::NoError){ QMessageBox msg; msg.setText(query.lastError().text()); msg.exec(); return; } if(query.next()) { student_id = query.value(0).toInt(); class_name = query.value(1).toString(); QString fio = query.value(2).toString(); this->setWindowTitle(fio); } query.finish(); }
char conv_ctoi (char c) { if (class_num (c)) { return c - '0'; } else if (class_upper (c)) { return c - 'A' + (char) 10; } return (char) (-1); }