///////////////////////////////////////////////////////////////////////////////////////////////////////////// // Datei: admin_sql_041.cpp // Autor: Yongxin Yu // // // Version 0.41 (30 12 2002 / 01 01 2003 / 02 01 2003) // Neu: // - Auslagerung connection.h // - Leiter in Tutor umbenannt // - Man kann mit der rechten Maustaste in Tabellen INSERT;UPDATE.. durchführen!!! // - Tabellen sind nach einzelnen Spalten sortierbar // - Kennwort im Login verdeckt // - RESET BUTTON beim Login funktioniert // - Neuordnung der Tabs (Neu: Punke / Testseite) // // // Version 0.4 (27 12 2002) // Neu: // - Anbindung an MySql // - Anzeige der Tabelleninhalte // // // Version: 0.31 (03 12 2002) // Neu: // - Student Hinzufügen Dialog erweitert // - Student Ändern Dialog erweitert // Version: 0.3 // Neu: // - Neue Größe des Login_Dialog's // - Beenden - Button auf dem Login_Dialog // // Kompilieraufruf (etwa) : g++ -I/usr/lib/qt3/include -L/usr/lib/qt3/lib -o admin_main3 admin_main3.cpp -lqt // qt3 ist vielleicht durch qt2 zu ersetzen ////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include #include #include #include #include #include #include #include #include #include #include // QSQL Header #include #include #include #include //test #include #include #include "./conn.h" ///////////////// MAIN ///////////////////////////////////////// int main (int argc, char **argv) { QApplication myapp(argc,argv); // Database Connection START create_connection(); // Database Connection END // Definition des Hauptfensters QMainWindow* mainwin = new QMainWindow(); mainwin->setGeometry(0,0,800,550); mainwin->setCaption("Admin Programm 0.41"); // Definition des Benutzerwechseldialogs QDialog* login_dialog = new QDialog(); login_dialog->setGeometry(20,20,400,300); login_dialog->setCaption("Admin Programm 0.41"); // Definition des Hinzufügen Dialog Student QDialog* student_dialog = new QDialog(); student_dialog->setGeometry(100,100,380,450); // Definition des Bearbeiten Dialog Student2 QDialog* student_dialog2 = new QDialog(); student_dialog2->setGeometry(100,100,380,450); // Definition des Bearbeiten Dialog Student3 QDialog* student3_dialog = new QDialog(); student3_dialog->setGeometry(100,100,400,100); /////////////////////////////////////////////// // Dialog Benutzerwechsel // QLabel *mylabel = new QLabel("Login",login_dialog); mylabel->setGeometry(0,10,400,50); mylabel->setFont(QFont("Times",24,QFont::Bold)); mylabel->setAlignment(4); QLabel *benutzer_label = new QLabel("Benutzer:",login_dialog); benutzer_label->setGeometry(30,75,400,30); benutzer_label->setFont(QFont("Times",18)); QLabel *kennwort_label = new QLabel("Kennwort:",login_dialog); kennwort_label->setGeometry(30,110,400,30); kennwort_label->setFont(QFont("Times",18)); QLineEdit* benutzer2 = new QLineEdit(login_dialog); benutzer2->setGeometry(200,75,150,30); QLineEdit* kennwort = new QLineEdit(login_dialog); kennwort->setGeometry(200,110,150,30); kennwort->setEchoMode(QLineEdit::Password); QPushButton* button_benutzer_login = new QPushButton("Login", login_dialog); button_benutzer_login->setGeometry(20,200,100,30); QObject::connect(button_benutzer_login, SIGNAL(clicked()), mainwin, SLOT(show())); // Hauptfenster anzeigen QObject::connect(button_benutzer_login, SIGNAL(clicked()), login_dialog, SLOT(hide())); // Login Dialog "verstecken" QPushButton* button_benutzer_reset = new QPushButton("Reset", login_dialog); button_benutzer_reset->setGeometry(140,200,100,30); QObject::connect(button_benutzer_reset, SIGNAL(clicked()), kennwort, SLOT(clear())); QObject::connect(button_benutzer_reset, SIGNAL(clicked()), benutzer2, SLOT(clear())); QPushButton* button_benutzer_quit = new QPushButton("Beenden", login_dialog); button_benutzer_quit->setGeometry(260,200,100,30); QObject::connect(button_benutzer_quit, SIGNAL(clicked()), login_dialog, SLOT(close()) ); ////////////////////////////////////////////////////////////////////////////////////////// // Dialog Student // ////////////////////////////////////////////////////////////////////////////////////////// QLabel *dialog_student = new QLabel("Student hinzufügen",student_dialog); dialog_student->setGeometry(50,0,200,30); dialog_student->setFont(QFont("Times",20,QFont::Bold)); QLabel* dialog_student_matnr = new QLabel("MatNr",student_dialog); dialog_student_matnr->setGeometry(10,40,100,25); QLineEdit* dialog_student_matnr_line = new QLineEdit(student_dialog); dialog_student_matnr_line->setGeometry(150,40,100,25); QLabel* dialog_student_vorname = new QLabel("Vorname",student_dialog); dialog_student_vorname->setGeometry(10,70,100,25); QLineEdit* dialog_student_vorname_line = new QLineEdit(student_dialog); dialog_student_vorname_line->setGeometry(150,70,180,25); QLabel* dialog_student_name = new QLabel("Name",student_dialog); dialog_student_name->setGeometry(10,100,100,25); QLineEdit* dialog_student_name_line = new QLineEdit(student_dialog); dialog_student_name_line->setGeometry(150,100,180,25); QLabel* dialog_student_gebort = new QLabel("Geburtsort",student_dialog); dialog_student_gebort->setGeometry(10,130,100,25); QLineEdit* dialog_student_gebort_line = new QLineEdit(student_dialog); dialog_student_gebort_line->setGeometry(150,130,180,25); QLabel* dialog_student_plz = new QLabel("PLZ Geburtsort",student_dialog); dialog_student_plz->setGeometry(10,160,100,25); QLineEdit* dialog_student_plz_line = new QLineEdit(student_dialog); dialog_student_plz_line->setGeometry(150,160,50,25); QLabel* dialog_student_gebdatum = new QLabel("Geburtsdatum",student_dialog); dialog_student_gebdatum->setGeometry(10,190,100,25); QLineEdit* dialog_student_gebdatum_line = new QLineEdit(student_dialog); dialog_student_gebdatum_line->setGeometry(150,190,80,25); QLabel* dialog_student_email = new QLabel("Email",student_dialog); dialog_student_email->setGeometry(10,220,100,25); QLineEdit* dialog_student_email_line = new QLineEdit(student_dialog); dialog_student_email_line->setGeometry(150,220,180,25); QLabel* dialog_student_passwort = new QLabel("Passwort",student_dialog); dialog_student_passwort->setGeometry(10,250,100,25); QLineEdit* dialog_student_passwort_line = new QLineEdit(student_dialog); dialog_student_passwort_line->setGeometry(150,250,100,25); QLabel* dialog_student_studgang = new QLabel("Studiengang",student_dialog); dialog_student_studgang->setGeometry(10,280,100,25); QLineEdit* dialog_student_studgang_line = new QLineEdit(student_dialog); dialog_student_studgang_line->setGeometry(150,280,150,25); QLabel* dialog_student_studrich = new QLabel("Studienrichtung",student_dialog); dialog_student_studrich->setGeometry(10,310,100,25); QLineEdit* dialog_student_studrich_line = new QLineEdit(student_dialog); dialog_student_studrich_line->setGeometry(150,310,150,25); QLabel* dialog_student_semester = new QLabel("Fachsemester",student_dialog); dialog_student_semester->setGeometry(10,340,100,25); QLineEdit* dialog_student_semester_line = new QLineEdit(student_dialog); dialog_student_semester_line->setGeometry(150,340,50,25); QLabel* dialog_student_regdatum = new QLabel("Registrierdatum",student_dialog); dialog_student_regdatum->setGeometry(10,370,100,25); QLineEdit* dialog_student_regdatum_line = new QLineEdit(student_dialog); dialog_student_regdatum_line->setGeometry(150,370,80,25); QPushButton* dialog_student_ok = new QPushButton("O.K.",student_dialog); dialog_student_ok->setGeometry(10,400,100,30); QObject::connect(dialog_student_ok, SIGNAL(clicked()), student_dialog, SLOT(close())); QPushButton* dialog_student_exit = new QPushButton("Abbruch.",student_dialog); dialog_student_exit->setGeometry(150,400,100,30); QObject::connect(dialog_student_exit, SIGNAL(clicked()), student_dialog, SLOT(close())); ////////////////////////////////////////////////////////////////////////////////////////// // Dialog Student 2 // ////////////////////////////////////////////////////////////////////////////////////////// QLabel *dialog_student2 = new QLabel("Student bearbeiten",student_dialog2); dialog_student2->setGeometry(50,0,200,30); dialog_student2->setFont(QFont("Times",20,QFont::Bold)); QLabel* dialog_student_matnr2 = new QLabel("MatNr",student_dialog2); dialog_student_matnr2->setGeometry(10,40,100,25); QLineEdit* dialog_student_matnr_line2 = new QLineEdit(student_dialog2); dialog_student_matnr_line2->setGeometry(150,40,100,25); QLabel* dialog_student_vorname2 = new QLabel("Vorname",student_dialog2); dialog_student_vorname2->setGeometry(10,70,100,25); QLineEdit* dialog_student_vorname_line2 = new QLineEdit(student_dialog2); dialog_student_vorname_line2->setGeometry(150,70,180,25); QLabel* dialog_student_name2 = new QLabel("Name",student_dialog2); dialog_student_name2->setGeometry(10,100,100,25); QLineEdit* dialog_student_name_line2 = new QLineEdit(student_dialog2); dialog_student_name_line2->setGeometry(150,100,180,25); QLabel* dialog_student_gebort2 = new QLabel("Geburtsort",student_dialog2); dialog_student_gebort2->setGeometry(10,130,100,25); QLineEdit* dialog_student_gebort_line2 = new QLineEdit(student_dialog2); dialog_student_gebort_line2->setGeometry(150,130,180,25); QLabel* dialog_student_plz2 = new QLabel("PLZ Geburtsort",student_dialog2); dialog_student_plz2->setGeometry(10,160,100,25); QLineEdit* dialog_student_plz_line2 = new QLineEdit(student_dialog2); dialog_student_plz_line2->setGeometry(150,160,50,25); QLabel* dialog_student_gebdatum2 = new QLabel("Geburtsdatum",student_dialog2); dialog_student_gebdatum2->setGeometry(10,190,100,25); QLineEdit* dialog_student_gebdatum_line2 = new QLineEdit(student_dialog2); dialog_student_gebdatum_line2->setGeometry(150,190,80,25); QLabel* dialog_student_email2 = new QLabel("Email",student_dialog2); dialog_student_email2->setGeometry(10,220,100,25); QLineEdit* dialog_student_email_line2 = new QLineEdit(student_dialog2); dialog_student_email_line2->setGeometry(150,220,180,25); QLabel* dialog_student_passwort2 = new QLabel("Passwort",student_dialog2); dialog_student_passwort2->setGeometry(10,250,100,25); QLineEdit* dialog_student_passwort_line2 = new QLineEdit(student_dialog2); dialog_student_passwort_line2->setGeometry(150,250,100,25); QLabel* dialog_student_studgang2 = new QLabel("Studiengang",student_dialog2); dialog_student_studgang2->setGeometry(10,280,100,25); QLineEdit* dialog_student_studgang_line2 = new QLineEdit(student_dialog2); dialog_student_studgang_line2->setGeometry(150,280,150,25); QLabel* dialog_student_studrich2 = new QLabel("Studienrichtung",student_dialog2); dialog_student_studrich2->setGeometry(10,310,100,25); QLineEdit* dialog_student_studrich_line2 = new QLineEdit(student_dialog2); dialog_student_studrich_line2->setGeometry(150,310,150,25); QLabel* dialog_student_semester2 = new QLabel("Fachsemester",student_dialog2); dialog_student_semester2->setGeometry(10,340,100,25); QLineEdit* dialog_student_semester_line2 = new QLineEdit(student_dialog2); dialog_student_semester_line2->setGeometry(150,340,50,25); QLabel* dialog_student_regdatum2 = new QLabel("Registrierdatum",student_dialog2); dialog_student_regdatum2->setGeometry(10,370,100,25); QLineEdit* dialog_student_regdatum_line2 = new QLineEdit(student_dialog2); dialog_student_regdatum_line2->setGeometry(150,370,80,25); QPushButton* dialog_student_ok2 = new QPushButton("O.K.",student_dialog2); dialog_student_ok2->setGeometry(10,400,100,30); QObject::connect(dialog_student_ok2, SIGNAL(clicked()), student_dialog2, SLOT(close())); QPushButton* dialog_student_exit2 = new QPushButton("Abbruch.",student_dialog2); dialog_student_exit2->setGeometry(150,400,100,30); QObject::connect(dialog_student_exit2, SIGNAL(clicked()), student_dialog2, SLOT(close())); ////////////////////////////////////////////////////////////////////////////////////////// // Dialog Student 3 // ////////////////////////////////////////////////////////////////////////////////////////// QLabel *dialog_student3 = new QLabel("Wollen Sie den gewählten Studenten löschen?",student3_dialog); dialog_student3->setGeometry(0,20,400,30); dialog_student3->setAlignment(4); // 4 heisst center dialog_student3->setFont(QFont("Times",10,QFont::Bold)); QPushButton* dialog_student3_ok = new QPushButton("Ja",student3_dialog); dialog_student3_ok->setGeometry(50,60,100,30); QObject::connect(dialog_student3_ok, SIGNAL(clicked()), student3_dialog, SLOT(close())); QPushButton* dialog_student3_exit = new QPushButton("Nein.",student3_dialog); dialog_student3_exit->setGeometry(250,60,100,30); QObject::connect(dialog_student3_exit, SIGNAL(clicked()), student3_dialog, SLOT(close())); /////////////////////////////////////////////////////////////////////////////////////////// // +++ Hauptfenster +++ // /////////////////////////////////////////////////////////////////////////////////////////// // einzelne Registerseiten QWidget* widget1 = new QWidget(); QWidget* widget2 = new QWidget(); QWidget* widget3 = new QWidget(); QWidget* widget4 = new QWidget(); QWidget* widget5 = new QWidget(); QWidget* widget10 =new QWidget(); // Inhalt Seite 1 Student QSqlCursor studCur( "Student" ); QDataTable *studTable = new QDataTable(&studCur,TRUE,widget1); studTable->setGeometry(10,50,740,390); studTable->setSorting(TRUE); studTable->refresh(); studTable->show(); QPushButton* erster_Button = new QPushButton("Hinzufügen", widget1); erster_Button->setGeometry(10,10,100,30); QObject::connect(erster_Button, SIGNAL(clicked()), student_dialog, SLOT(exec())); QPushButton* zweiter_Button = new QPushButton("Bearbeiten", widget1); zweiter_Button->setGeometry(120,10,100,30); QObject::connect(zweiter_Button, SIGNAL(clicked()), student_dialog2, SLOT(exec())); QPushButton* dritter_Button = new QPushButton("Löschen", widget1); dritter_Button->setGeometry(230,10,100,30); QObject::connect(dritter_Button, SIGNAL(clicked()), student3_dialog, SLOT(exec())); QPushButton* vierter_Button = new QPushButton("Aktualisiern", widget1); vierter_Button->setGeometry(340,10,100,30); QObject::connect(vierter_Button, SIGNAL(clicked()), studTable, SLOT(refresh())); // Inahlt Seite 2 Punktestände QGroupBox* punkteUebung = new QGroupBox("Punkte Übung",widget2); punkteUebung->setGeometry(5,5,700,200); QGroupBox* punkteKlausur = new QGroupBox("Punkte Klausur",widget2); punkteKlausur->setGeometry(5,205,700,200); QSqlCursor PktUebCur( "PunkteUebung" ); QDataTable *PktUebTable = new QDataTable(&PktUebCur,TRUE,punkteUebung); PktUebTable->setGeometry(10,15,650,180); PktUebTable->setSorting(TRUE); PktUebTable->refresh(); PktUebTable->show(); QSqlCursor PktKlaCur( "PunkteKlausur" ); QDataTable *PktKlaTable = new QDataTable(&PktKlaCur,TRUE,punkteKlausur); PktKlaTable->setGeometry(10,15,650,180); PktKlaTable->setSorting(TRUE); PktKlaTable->refresh(); PktKlaTable->show(); // Inhalt Seite 3 Übungen QGroupBox* gruppen = new QGroupBox("Gruppen",widget3); gruppen->setGeometry(5,5,375,400); QGroupBox* tutor = new QGroupBox("Tutor",widget3); tutor->setGeometry(385,5,375,400); QPushButton* erster_Button_Seite5 = new QPushButton("Hinzufügen", gruppen); erster_Button_Seite5->setGeometry(10,20,100,30); // QObject::connect(erster_Button_Seite2, SIGNAL(clicked()), &myapp, SLOT(quit())); QPushButton* zweiter_Button_Seite5 = new QPushButton("Bearbeiten", gruppen); zweiter_Button_Seite5->setGeometry(120,20,100,30); // QObject::connect(zweiter_Button_Seite2, SIGNAL(clicked()), &myapp, SLOT(quit())); QPushButton* dritter_Button_Seite5 = new QPushButton("Löschen", gruppen); dritter_Button_Seite5->setGeometry(230,20,100,30); QPushButton* erster_Button_Seite6 = new QPushButton("Hinzufügen", tutor); erster_Button_Seite6->setGeometry(10,20,100,30); // QObject::connect(erster_Button_Seite2, SIGNAL(clicked()), &myapp, SLOT(quit())); QPushButton* zweiter_Button_Seite6 = new QPushButton("Bearbeiten", tutor); zweiter_Button_Seite6->setGeometry(120,20,100,30); // QObject::connect(zweiter_Button_Seite2, SIGNAL(clicked()), &myapp, SLOT(quit())); QPushButton* dritter_Button_Seite6 = new QPushButton("Löschen", tutor); dritter_Button_Seite6->setGeometry(230,20,100,30); // SQL Tabelle Gruppen QSqlCursor uebungCur( "Gruppe" ); QDataTable *uebungTable = new QDataTable(&uebungCur,TRUE,gruppen); uebungTable->setGeometry(10,70,350,300); uebungTable->setSorting(TRUE); uebungTable->refresh(); uebungTable->show(); // SQL Tabelle Leiter QSqlCursor tutorCur( "Tutor" ); QDataTable *tutorTable = new QDataTable(&tutorCur,TRUE,tutor); tutorTable->setGeometry(10,70,350,300); tutorTable->setSorting(TRUE); tutorTable->refresh(); tutorTable->show(); // Inhalt Seite 4 Klausur QPushButton* erster_Button_Seite4 = new QPushButton("Hinzufügen", widget4); erster_Button_Seite4->setGeometry(10,10,100,30); // QObject::connect(erster_Button_Seite4, SIGNAL(clicked()), &myapp, SLOT(quit())); QPushButton* zweiter_Button_Seite4 = new QPushButton("Bearbeiten", widget4); zweiter_Button_Seite4->setGeometry(120,10,100,30); // QObject::connect(zweiter_Button_Seite4, SIGNAL(clicked()), &myapp, SLOT(quit())); QPushButton* dritter_Button_Seite4 = new QPushButton("Löschen", widget4); dritter_Button_Seite4->setGeometry(230,10,100,30); // QObject::connect(dritter_Button_Seite4, SIGNAL(clicked()), &myapp, SLOT(quit())); QSqlCursor klausurCur( "Klausur" ); QDataTable *klausurTable = new QDataTable(&klausurCur,TRUE,widget4); klausurTable->setGeometry(10,50,740,390); klausurTable->setSorting(TRUE); klausurTable->refresh(); klausurTable->show(); // Inhalt Seite 5 Einstellungen QLabel* kennwort_aendern = new QLabel("Kennwort ändern",widget5); kennwort_aendern->setGeometry(10,10,200,30); kennwort_aendern->setFont(QFont("Times",20,QFont::Bold)); QLabel* benutzer = new QLabel("Benutzer :",widget5); benutzer->setGeometry(10,45,75,25); benutzer->setFont(QFont("Times",14)); QLabel* kennwort_alt = new QLabel("altes Kennwort :",widget5); kennwort_alt->setGeometry(180,45,100,25); kennwort_alt->setFont(QFont("Times",14)); QLabel* kennwort_neu = new QLabel("neues Kennwort :",widget5); kennwort_neu->setGeometry(380,45,100,25); kennwort_neu->setFont(QFont("Times",14)); QLineEdit* benutzer_feld = new QLineEdit(widget5); benutzer_feld->setGeometry(100,45,75,25); QLineEdit* kennwort_alt_feld = new QLineEdit(widget5); kennwort_alt_feld->setGeometry(295,45,75,25); QLineEdit* kennwort_neu_feld = new QLineEdit(widget5); kennwort_neu_feld->setGeometry(485,45,75,25); QPushButton* absenden = new QPushButton("Ändern", widget5); absenden->setGeometry(570,45,100,25); // QObject::connect(absenden, SIGNAL(clicked()), &myapp, SLOT(quit())); // Inhalt Seite 10 Tests QPushButton* erster_Button_Seite2 = new QPushButton("Hinzufügen", widget10); erster_Button_Seite2->setGeometry(10,10,100,30); // QObject::connect(erster_Button_Seite2, SIGNAL(clicked()), &myapp, SLOT(quit())); QPushButton* zweiter_Button_Seite2 = new QPushButton("Bearbeiten", widget10); zweiter_Button_Seite2->setGeometry(120,10,100,30); // QObject::connect(zweiter_Button_Seite2, SIGNAL(clicked()), &myapp, SLOT(quit())); QPushButton* dritter_Button_Seite2 = new QPushButton("Löschen", widget10); dritter_Button_Seite2->setGeometry(230,10,100,30); // QObject::connect(dritter_Button_Seite2, SIGNAL(clicked()), &myapp, SLOT(quit())); //Tests QLineEdit gruppEdit(widget10); gruppEdit.setGeometry(10,50,150,30); QSqlCursor gruppCur( "Student" ); QSqlForm gruppForm(widget10); //gruppCur.select("PLZGeburtsort=50374"); gruppCur.select("MatrikelNr='0212356'"); gruppCur.next(); gruppForm.setRecord( gruppCur.primeUpdate() ); gruppForm.insert( &gruppEdit, "Nachname" ); gruppForm.readFields(); // Update the database gruppForm.writeFields(); // Update the cursor's edit buffer from the form gruppCur.update(); // Update the database from the cursor's buffer /* QDataTable *gruppTable = new QDataTable(&gruppCur,TRUE,widget10); gruppTable->setGeometry(10,50,740,390); gruppTable->setSorting(TRUE); gruppTable->refresh(); gruppTable->show(); */ // Init der Register QTabWidget* tabwid = new QTabWidget(mainwin); tabwid->setGeometry(10,20,775,500); tabwid->addTab(widget1,"&Studenten"); tabwid->addTab(widget2,"&Punkte"); tabwid->addTab(widget3,"&Übungen"); tabwid->addTab(widget4,"&Klausurverwaltung"); tabwid->addTab(widget5,"&Einstellungen"); tabwid->addTab(widget10,"&Testseite"); // sonstiger Inhalt mainwin QPushButton* beenden = new QPushButton("Beenden", mainwin); beenden->setGeometry(10,520,120,25); QObject::connect(beenden, SIGNAL(clicked()), &myapp, SLOT(quit())); QPushButton* wechsel = new QPushButton("Benutzer wechseln", mainwin); wechsel->setGeometry(135,520,120,25); QObject::connect(wechsel, SIGNAL(clicked()), login_dialog, SLOT(show())); QObject::connect(wechsel, SIGNAL(clicked()), mainwin, SLOT(hide())); ////////////////////////////////////////////////////////////////////////////////// myapp.setMainWidget(login_dialog); login_dialog->show(); return myapp.exec(); }