Thema: Delphi repeat - until abfrage

Einzelnen Beitrag anzeigen

Snyderburn

Registriert seit: 19. Sep 2003
85 Beiträge
 
Delphi 2005 Architect
 
#24

Re: repeat - until abfrage

  Alt 7. Nov 2003, 11:00
Hier ist der Quellcode der Prozedure. Ich habe nur ein paar Abfragen und Tabellen rausgenommen, da die sich ständig wieder holen.
Delphi-Quellcode:
procedure TImportblatt.Bearbeiten2Click(Sender: TObject);
var idzumbearbeiten, bearbeitenzaehler : integer;
begin
  dbmemo7.visible := true;
  dblookupListbox1.Visible := false;
  Mainmenueanzeigentrue; //Anzeige des MainMenu
  MainMenu1.Items.Items[1].Items[1].enabled := false; //Eine Punkt im Menü auf enabled setzten
  bearbeitenzaehler := 0;
  idzumbearbeiten := 0;

  try
    idzumbearbeiten := dm1.q_extern.fieldbyname('Id_anschrift').asinteger; //q_extern ist eine Query. Wurde in einer
    If idzumbearbeiten = 0 then //Prozedure aufgerufen und gestartet.
      begin
        showmessage('Es können keine Daten bearbeitet werden!');
        exit;
      end
      else
      begin
        dm1.q_anschrift.close;
        dm1.ds_anschrift.DataSet := dm1.T_anschrift;
        dm1.T_anschrift.First;

        repeat
        if idzumbearbeiten = dm1.T_anschrift.fieldbyname('ID_anschrift').asinteger then
          begin
            dm1.T_anschrift.edit;
            dm1.T_Zugehoerigkeit.edit;
            .... // Hier stehen noch mehr Tabellen drin.
            dm1.t_extern_freigabe.edit;

            dm1.q_Zugehoerigkeit.RequestLive := true;
            dm1.DS_Zugehoerigkeit.DataSet := dm1.q_Zugehoerigkeit;
            dm1.q_Zugehoerigkeit.Close;
            dm1.q_Zugehoerigkeit.SQL.Clear;
            dm1.q_Zugehoerigkeit.SQL.Add('select * from zugehoerigkeit where id_anschrift = '+inttostr(idzumbearbeiten));
            dm1.q_Zugehoerigkeit.Open; // diese wiederholt sich für einige anderen Tabellen!!

            dbnavigator1.Visible := false;
            dbnavigator2.Visible := false;
            Importblatt.Caption := 'Interner Fragebogen - Bearbeiten';
            Buttonreadonlyfalse; // setzt alle Buttons auf ReadOnly := false;
            Freigabe.Visible := false; //setzt den Button auf visible := false;
            neue_freigabe.Visible := false; //setzt den Button auf visible := false;
            groupbox1.Visible := false; //setzt die groupbox auf visible := false;
            dbcheckbox46.Visible := false; //setzt die dbcheckbox auf visible := false;
            dbcheckbox47.visible := false; //setzt die dbcheckbox auf visible := false;
            dbcheckbox48.visible := false; //setzt die dbcheckbox auf visible := false;
            neu.Visible := false; //setzt den Button auf visible := false;
            loeschen.visible := false; //setzt den Button auf visible := false;
            Speichern.visible := true; //setzt den Button auf visible := false;
            Speichern.Enabled := true; //setzt den Button auf visible := false;
            Klick := 10; //Nur eine Variable, wird später benötigt.

            bearbeitenzaehler := idzumbearbeiten;
          end
          else
          begin
           dm1.T_anschrift.Next;
           bearbeitenzaehler := bearbeitenzaehler + 1;
          end;
        until (idzumbearbeiten = bearbeitenzaehler) or (dm1.T_Anschrift.Eof);
      end;
  except
    showmessage('Es können keine Daten bearbeitet werden!');
  end;
end;
  Mit Zitat antworten Zitat