Nachricht

T4F Kochbuch

Grundsätzlich empfiehlt sich ein Ablauf nach folgendem Schema beim Entwickeln einer Formsapplikation mit Toolkit for Forms (T4F).

Vorbereitung

Redundanzen sind zu vermeiden, mehrfach verwendeter Code und mehrfach verwendete Objekte und Attribute sind zentral zu definieren.

  • Erstellen eines applikationsspezifischen Library-Forms, das die Record Groups und List of Values definiert.
  • Erstellen eine applikationsspezifischen PL/SQL-Library für mehrfach verwendete Prozeduren.
  • Eventuell Definition von Listboxen über die entsprechende T4F-Maske.

 

Form-Design

Für jedes einzelne Form ergibt sich dann folgendes Vorgehen (was teilweise natürlich auch durch ein entsprechendes Template abgedeckt werden kann):

  • Attach der PL/SQL-Library t4flib.pll und eventuell der applikationsspezifischen Library.
  • Referenzierung der Object Groups T4F_BASE und T4F_STANDARD aus t4flib.fmb.
  • Eventuell Referenzierung der LOV's aus dem applikationsspezifischen Library-Form.
  • Konventionelles Designen des Forms.
  • Erstellen des Label-Blocks. Definition der Labels über die entsprechende T4F-Maske.
  • Im Pre-Form-Trigger t4f_detpreform das Key-Item bestimmen und vorhandene Listboxen über t4f_lbpopulate initialisieren.

 

Foreign-Keys

Für jedes Foreign-Key-Item sind im Normalfall folgende Zusätze notwendig:

  • Post-Change-Trigger zur Anzeige des Display-Items und zur Validierung von Eingaben. Fehlerbehandlung über t4f_message (1001, ...).
  • Referenzierung und Zuweisung des entsprechenden LOV.
  • Aufruf von t4f_lovlist aus dem Key-Listval-Trigger.
  • Aufruf von t4f_detwbp aus den Trigger When-Button-Pressed bzw. t4f_detwmd aus dem Trigger When-Mouse-Down (bei mutlirecord blocks) des entsprechenden Detail-Buttons.

 

Abschluss-Arbeiten

Objekte sind um Konsistenz zu gewährleisten auf die entsprechende Object Class zu setzen. Dabei ist zu beachten, dass keine Attribute unabsichtlich lokal überschrieben wurden.

  • das Hauptwindow: T4F_WINDOW
  • Label-Block: T4F_LAB_BLOCK
  • Base-Table-Blöcke: T4F_DB_BLOCK
  • Label-Felder: T4F_LAB_ITEM
  • Frame-Beschriftungen und -Graphics: T4F_LAB_FRAME
  • Foreign-Key-Felder: T4F_LOV_ITEM
  • Buttons: T4F_ICONIC_BUTTON
  • alle anderen Items: T4F_ITEM