// U_Fejlbehandling.cpp // 21. maj 2001 // Datamatiker, Programmering af store systemer // Mikkel Munksgaard og Niels Grove-Rasmussen //--------------------------------------------------------------------------- #include #pragma hdrstop #include "U_Fejlbehandling.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm_Fejlbehandling *Form_Fejlbehandling; //--------------------------------------------------------------------------- __fastcall TForm_Fejlbehandling::TForm_Fejlbehandling(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::FormActivate(TObject *Sender) { Butn_Opdater->SetFocus(); // clear comboboxes /*CBox_Status->; CBox_Tilstand->;*/ Tabl_Fejlmelding->Refresh(); Tabl_Beskrivelseslog->Refresh(); Tabl_Statuslog->Refresh(); Tabl_TroubleTicket->Refresh(); Tabl_Tilstandlog->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::Butn_OpdaterClick(TObject *Sender) { Tabl_Fejlmelding->Refresh(); Tabl_Beskrivelseslog->Refresh(); Tabl_Statuslog->Refresh(); Tabl_TroubleTicket->Refresh(); Tabl_Tilstandlog->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::Butn_LukClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::Butn_NyBeskrivelseClick( TObject *Sender) { if(Dial_BeskrivelseNy->ShowModal() == mrOk) { setProblemlog(); setBeskrivelselog(); Tabl_Fejlmelding->Edit(); Tabl_Fejlmelding->Fields->FieldByName("Beskrivelse")->AsString = Dial_BeskrivelseNy->Memo_BeskrivelseNy->Text; Tabl_Fejlmelding->Post(); Tabl_Fejlmelding->Refresh(); Tabl_Beskrivelseslog->Refresh(); } else ShowMessage("Post er IKKE opdateret."); } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::Butn_TroubleTicketNyClick( TObject *Sender) { if(Dial_TroubleticketNy->ShowModal() == mrOk) setTroubleticket(); } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::CBox_StatusExit(TObject *Sender) { setProblemlog(); setStatuslog(); Tabl_Fejlmelding->Edit(); Tabl_Fejlmelding->Fields->FieldByName("StatusId")->AsInteger = getStatusId(); Tabl_Fejlmelding->Post(); Tabl_Fejlmelding->Refresh(); Tabl_Statuslog->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::CBox_TilstandExit(TObject *Sender) { setProblemlog(); setTilstandlog(); Tabl_TroubleTicket->Edit(); Tabl_TroubleTicket->Fields->FieldByName("TilstandId")->AsInteger = getTilstandNyId(); Tabl_TroubleTicket->Post(); Tabl_TroubleTicket->Refresh(); Tabl_Tilstandlog->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::Butn_RepFejlClick(TObject *Sender) { if(Dial_Reperation->ShowModal() == mrOk) { setProblemlog(); setReperationlog(0); } } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::Butn_RepTicketClick(TObject *Sender) { if(Dial_Reperation->ShowModal() == mrOk) { setProblemlog(); setReperationlog(1); } } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::getUserId() { int tempUserId(0); TTable *user = new TTable(this); user->TableName = "T_User"; user->Active = TRUE; tempUserId = user->FieldByName("MedarbejderId")->AsInteger; delete user; return tempUserId; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::getAnsvarligId() { int tempAnsvarligId(0); TQuery *ansvarlig = new TQuery(this); ansvarlig->SQL->Clear(); ansvarlig->SQL->Add("SELECT Id FROM T_Medarbejder"); ansvarlig->SQL->Add("WHERE Initialer = "); ansvarlig->SQL->Add("'" + Dial_TroubleticketNy->CBox_Ansvarlig->Text + "'"); ansvarlig->Open(); tempAnsvarligId = ansvarlig->FieldByName("Id")->AsInteger; ansvarlig->Close(); delete ansvarlig; return tempAnsvarligId; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::getUdstyrId() { int tempUdstyrId(0); TQuery *udstyr = new TQuery(this); udstyr->SQL->Clear(); udstyr->SQL->Add("SELECT Id FROM T_Tilstand"); udstyr->SQL->Add("WHERE Tilstand = "); udstyr->SQL->Add("'" + Dial_TroubleticketNy->CBox_Udstyr->Text + "'"); udstyr->Open(); tempUdstyrId = udstyr->FieldByName("Id")->AsInteger; udstyr->Close(); delete udstyr; return tempUdstyrId; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::getTilstandId() { int tempTilstandId(0); TQuery *tilstand = new TQuery(this); tilstand->SQL->Clear(); tilstand->SQL->Add("SELECT Id FROM T_Tilstand"); tilstand->SQL->Add("WHERE Tilstand = "); tilstand->SQL->Add("'" + Dial_TroubleticketNy->CBox_Tilstand->Text + "'"); tilstand->Open(); tempTilstandId = tilstand->FieldByName("Id")->AsInteger; tilstand->Close(); delete tilstand; return tempTilstandId; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::getTilstandNyId() { int tempTilstandId(0); TQuery *tilstand = new TQuery(this); tilstand->SQL->Clear(); tilstand->SQL->Add("SELECT Id FROM T_Tilstand"); tilstand->SQL->Add("WHERE Tilstand = "); tilstand->SQL->Add("'" + CBox_Tilstand->Text + "'"); tilstand->Open(); tempTilstandId = tilstand->FieldByName("Id")->AsInteger; tilstand->Close(); delete tilstand; return tempTilstandId; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::getStatusId() { int tempStatusId(0); TQuery *status = new TQuery(this); status->SQL->Clear(); status->SQL->Add("SELECT T_Status.Id"); status->SQL->Add("FROM T_Status"); status->SQL->Add("WHERE T_Status.Status = "); status->SQL->Add("'" + CBox_Status->Text +"'"); status->Open(); tempStatusId = status->FieldByName("Id")->AsInteger; status->Close(); return tempStatusId; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::getProblemId() { int tempId(0); TTable *problem = new TTable(this); problem->TableName = "T_Problemlog"; problem->Active = true; problem->Last(); tempId = problem->FieldByName("Id")->AsInteger; delete problem; return tempId; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::setTroubleticket() { TTable *ticket = new TTable(this); ticket->TableName = "T_Troubleticket"; ticket->Active = true; ticket->Insert(); ticket->FieldByName("Tidspunkt")->AsDateTime = Dial_TroubleticketNy->Labl_Tidspunkt->Caption; ticket->FieldByName("FejlmeldingId")->AsInteger = Tabl_Fejlmelding->Fields->FieldByName("Id")->AsInteger; ticket->FieldByName("MedarbejderId")->AsInteger = getAnsvarligId(); ticket->FieldByName("UdstyrId")->AsInteger = getUdstyrId(); ticket->FieldByName("TilstandId")->AsInteger = getTilstandId(); ticket->Post(); delete ticket; Tabl_TroubleTicket->Refresh(); return 0; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::setProblemlog() { TTable *problem = new TTable (this); problem->TableName = "T_Problemlog"; problem->Active = true; problem->Insert(); problem->FieldByName("Tidspunkt")->AsDateTime = Now(); problem->FieldByName("MedarbejderId")->AsInteger = getUserId(); problem->Post(); delete problem; return 0; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::setBeskrivelselog() { TTable *beskrivelse = new TTable (this); beskrivelse->TableName = "T_Beskrivelseslog"; beskrivelse->Active = true; beskrivelse->Insert(); beskrivelse->FieldByName("Fejlbeskrivelse")->AsString = Tabl_Fejlmelding->Fields->FieldByName("Beskrivelse")->AsString; // last entry in T-ProblemLog is newest beskrivelse->FieldByName("ProblemId")->AsInteger = getProblemId(); beskrivelse->FieldByName("FejlmeldingId")->AsInteger = Tabl_Fejlmelding->Fields->FieldByName("Id")->AsInteger; beskrivelse->Post(); delete beskrivelse; return 0; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::setStatuslog() { TTable *status = new TTable (this); status->TableName = "T_Statuslog"; status->Active = true; status->Insert(); status->FieldByName("StatusId")->AsInteger = Tabl_Fejlmelding->Fields->FieldByName("StatusId")->AsInteger; // last entry in T-ProblemLog is newest status->FieldByName("ProblemId")->AsInteger = getProblemId(); status->FieldByName("FejlmeldingId")->AsInteger = Tabl_Fejlmelding->Fields->FieldByName("Id")->AsInteger; status->Post(); delete status; return 0; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::setReperationlog(int kald) { TTable *reperation = new TTable (this); reperation->TableName = "T_Reperationslog"; reperation->Active = true; reperation->Insert(); reperation->FieldByName("Beskrivelse")->AsString = Dial_Reperation->Memo_Beskrivelse->Text; // last entry in T-ProblemLog is newest reperation->FieldByName("ProblemId")->AsInteger = getProblemId(); if(kald) reperation->FieldByName("UdstyrId")->AsInteger = Tabl_TroubleTicket->Fields->FieldByName("UdstyrId")->AsInteger; else reperation->FieldByName("UdstyrId")->AsInteger = Tabl_Fejlmelding->Fields->FieldByName("UdstyrId")->AsInteger; reperation->Post(); delete reperation; Tabl_ReperationFejl->Refresh(); Tabl_ReperationTicket->Refresh(); return 0; } //--------------------------------------------------------------------------- int __fastcall TForm_Fejlbehandling::setTilstandlog() { TTable *tilstand = new TTable (this); tilstand->TableName = "T_Tilstandslog"; tilstand->Active = true; tilstand->Insert(); tilstand->FieldByName("TilstandId")->AsInteger = Tabl_TroubleTicket->Fields->FieldByName("TilstandId")->AsInteger; // last entry in T-ProblemLog is newest tilstand->FieldByName("ProblemId")->AsInteger = getProblemId(); tilstand->FieldByName("TroubleticketId")->AsInteger = Tabl_TroubleTicket->Fields->FieldByName("Id")->AsInteger; tilstand->Post(); delete tilstand; Tabl_TroubleTicket->Refresh(); return 0; } //--------------------------------------------------------------------------- void __fastcall TForm_Fejlbehandling::Fejl(const String& metode, const String& meddelelse) { MessageDlg("Fejl i Form_Fejlbehandling." + metode + ":\n\n" + meddelelse + ".", mtError, TMsgDlgButtons() << mbAbort, 0); exit(EXIT_FAILURE); } //--------------------------------------------------------------------------