// U_IndmelderKunde.cpp // 21. maj 2001 // Datamatiker, Programmering af store systemer // Mikkel Munksgaard og Niels Grove-Rasmussen //--------------------------------------------------------------------- #include #pragma hdrstop #include "U_IndmelderKunde.h" //--------------------------------------------------------------------- #pragma resource "*.dfm" TDial_IndmelderKunde *Dial_IndmelderKunde; //--------------------------------------------------------------------- __fastcall TDial_IndmelderKunde::TDial_IndmelderKunde(TComponent* AOwner) : TForm(AOwner) {} //--------------------------------------------------------------------------- void __fastcall TDial_IndmelderKunde::FormActivate(TObject *Sender) { // how to clear CBox_Telefonnr? //CBox_Telefonnr-> Labl_Navndata->Caption = ""; Labl_Adressedata->Caption = ""; CBox_Telefonnr->SetFocus(); } //--------------------------------------------------------------------- void __fastcall TDial_IndmelderKunde::OKBtnClick(TObject *Sender) { if(Labl_Navndata->Caption == "") { MessageDlg("Der er ikke valgt nogen kunde.", mtError, TMsgDlgButtons() << mbRetry, 0); CBox_Telefonnr->SetFocus(); } else ModalResult = mrOk; } //--------------------------------------------------------------------------- void __fastcall TDial_IndmelderKunde::CancelBtnClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TDial_IndmelderKunde::CBox_TelefonnrClick(TObject *Sender) { TQuery *kunde = new TQuery(this); kunde->SQL->Clear(); kunde->SQL->Add("SELECT T_Person.Navn"); kunde->SQL->Add("FROM T_Kunde INNER JOIN T_Person ON"); kunde->SQL->Add("T_Kunde.PersonId = T_Person.Id"); kunde->SQL->Add("WHERE T_Kunde.Telefonnr = "); kunde->SQL->Add("'" + CBox_Telefonnr->Text + "'"); kunde->Open(); Labl_Navndata->Caption = kunde->FieldByName("Navn")->AsString; kunde->Close(); kunde->SQL->Clear(); kunde->SQL->Add("SELECT Adresse FROM T_Kunde"); kunde->SQL->Add("WHERE Telefonnr = '" + CBox_Telefonnr->Text + "'"); kunde->Open(); Labl_Adressedata->Caption = kunde->FieldByName("Adresse")->AsString; kunde->Close(); delete kunde; } //--------------------------------------------------------------------------- void TDial_IndmelderKunde::Fejl(const String& metode, const String& meddelelse) { MessageDlg("Fejl i Dial_IndmelderKunde." + metode + ":\n\n" + meddelelse + ".", mtError, TMsgDlgButtons() << mbAbort, 0); exit(EXIT_FAILURE); } //--------------------------------------------------------------------------- void __fastcall TDial_IndmelderKunde::Butn_KundeNyClick(TObject *Sender) { if(Dial_KundeNy->ShowModal() == mrOk) NULL; } //--------------------------------------------------------------------------- void __fastcall TDial_IndmelderKunde::Butn_KundeSletClick(TObject *Sender) { int personId(getPersonId()), kundeId(getKundeId()); TTable *sletkunde = new TTable(this); sletkunde->TableName = "T_Person"; sletkunde->Active = true; while(!sletkunde->Eof) { while(sletkunde->FieldByName("Id")->AsInteger == personId) sletkunde->Delete(); sletkunde->Next(); } sletkunde->Active = false; sletkunde->TableName = "T_Kunde"; sletkunde->Active = true; while(!sletkunde->Eof) { while(sletkunde->FieldByName("Id")->AsInteger == kundeId) sletkunde->Delete(); sletkunde->Next(); } delete sletkunde; } //--------------------------------------------------------------------------- int __fastcall TDial_IndmelderKunde::getPersonId() { int tempId(0); TQuery *person = new TQuery(this); person->SQL->Clear(); person->SQL->Add("SELECT Id FROM T_Person"); person->SQL->Add("WHERE Navn = '" + Labl_Navndata->Caption + "'"); person->Open(); tempId = person->FieldByName("Id")->AsInteger; person->Close(); delete person; return tempId; } //--------------------------------------------------------------------------- int __fastcall TDial_IndmelderKunde::getKundeId() { int tempId(0); TQuery *kunde = new TQuery(this); kunde->SQL->Clear(); kunde->SQL->Add("SELECT Id FROM T_Kunde"); kunde->SQL->Add("WHERE Adresse = '" + Labl_Adressedata->Caption + "'"); kunde->Open(); tempId = kunde->FieldByName("Id")->AsInteger; kunde->Close(); delete kunde; return tempId; }