netFrame-Syntax:
function findform(aName: string): integer
Beschreibung:
findform sucht den in aName angegebenes Formular und gibt einen Zeiger auf dieses zurück.
Sollte netFrame den angegebenen Dialog nicht finden wird 0 zurückgegeben.
Wenn das entsprechende Formular gefunden wurde kann dieses in den Vordergrund gebracht werden.
Beispiel:
//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;