function findForm(const aName: string): Integer

 » Startseite » netFrame als Plattform Menü » Globale Methoden | » Erweiterte Suche

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;