//Dieses Beispiel dazu verwendet um periodische Aufgaben abzufragen //Siehe: Wie erstelle ich periodische Aufgaben procedure checkAufgaben; var aDialog : TfrmDesignDialog; //Eine Variable für den Dialog deklarieren aErinnerung : integer; //Integer Variable TableAufgabeZu: TRPCTable; //Eine Tabelle deklarieren um Daten abzufragen aSQL: string; //Eine String Variable um SQL zusammen zu stellen aInt: Integer; begin //Hier wird die SQL Anweisung zusammengestellt aSQL := ''; aSQL := aSQL + ' SELECT '#13#10; aSQL := aSQL + ' AU.AUZ_ERINNERN_AM, AU.AUZ_ERINNERN '#13#10; aSQL := aSQL + ' FROM NET_AUFGABE_ZU AU '#13#10; aSQL := aSQL + ' WHERE AU.AUZ_ZUSTAENDIG_US_ID = :US_ID '#13#10; //Es wird eine globale Variable abgefragt, diese kann im Menü System -> Globale Variablen definiert werden aSQL := aSQL + ' AND AU.AUZ_STATUS <> $+GLOBAL_GELOESCHT_AUFGABE_TEXT '#13#10; //Die Tabellen Komponente wird erstellt TableAufgabeZu := TRPCTable.create; //Ist die Tabelle in der System Datenbank TableAufgabeZu.SystemDB := true; //Übergeben wir die SQL Anweisung TableAufgabeZu.SQLSelect.Text := aSQL; //Übergeben wir die aktuelle Benutzer ID als Parameter TableAufgabeZu.setStringParam('US_ID', userID); //userID ist eine Konstante die vom netFrame abgefragt wird //Jetzt werden die Daten ausgelesen TableAufgabeZu.readData; //Wir gehen zum ersten Datensatz TableAufgabeZu.First; //initialisierung aErinnerung := 0; //Gehen wir die Datenmenge bis zum Ende durch while not TableAufgabeZu.EoF do begin //Ist dies eine Aufgabe an die wir erinnern sollten if (TableAufgabeZu.FieldByName('AUZ_ERINNERN_AM').asDateTime <= now) and (TableAufgabeZu.FieldByName('AUZ_ERINNERN').asInteger > 0) then begin //Dann Zähler erhöhen inc(aErinnerung); end; TableAufgabeZu.next; end; //Tabelle unbedingt wieder freigeben TableAufgabeZu.close; TableAufgabeZu.Free; //Haben wir Aufgaben an die erinnert werden sollte if aErinnerung <> 0 then begin //Suchen wir das Formular mit dem Namen 'Aufgabe_Erinnerung' aInt := findForm('Aufgabe_Erinnerung'); //Ist es schon offen, dann nur die Daten neu laden if aInt > 0 then begin aDialog := TfrmDesignDialog(aInt); aDialog.callFunction1('extern_loaddata', Params); end else //Ansosten das Formular neu laden und anzeigen begin aDialog := TfrmDesignDialog(loadForm('Aufgabe_Erinnerung')); aDialog.showMDIChild; end; end; end;