Freigeben über


Lösungsbeispiele

Datei: ...\Samples\Solution\Solution.app

Bei Lösungsbeispielen von Visual FoxPro handelt es sich um eine Sammlung voneinander unabhängiger Beispiele, anhand derer einzelne Funktionen von Visual FoxPro veranschaulicht werden sollen. Die Lösungsbeispiele umfassen auch Beispiele, die auf den Visual FoxPro Foundation Classes basieren.

So führen Sie die Beispiellösungenanwendung aus

  • Geben Sie Folgendes in das Befehlsfenster ein:

    DO (HOME(2) + 'solution\solution')
    

    - Oder -

  1. Wählen Sie Ausführen im Menü Programm.
  2. Wählen Sie den Ordner …\Samples\Solution.
  3. Doppelklicken Sie auf Solution.app.

Aus dem Beispiellösungen-Hauptformular können Sie ersehen, dass die Beispiele in die folgenden Kategorien unterteilt sind: ActiveX-Steuerelemente, Visual FoxPro-Steuerelemente, Datenbanken, Formulare, Foundation Classes, Menüs, Berichte, Symbolleisten und Windows-API. Sie können alle Komponenten in dieser Strukturansicht anzeigen, indem Sie auf die Schaltfläche Alle einblenden klicken und einen Bildlauf durch die Komponenten durchführen.

Sobald Sie ein Beispiel oder eine Komponente gefunden haben, das bzw. die Sie interessiert, können Sie den entsprechende Eintrag markieren. Danach können Sie eine oder alle der folgenden Aktionen durchführen:

  • Lesen Sie eine kurze Beschreibung des Beispiels im Beschreibungsfeld am unteren Ende des Hauptformulars von Visual FoxPro-Lösungen.
  • Führen Sie das Beispiel mit Hilfe des Befehls Beispiel ausführen aus.
  • Zeigen Sie den Code mit Hilfe des Befehls Code anzeigen an.
  • Hilfe zu dem Beispiel, das Sie aktuell ausführen, erhalten Sie durch Drücken von F1 oder durch Klicken auf die Schaltfläche ?.

Nachdem Sie das geöffnete Formular oder den geöffneten Designer geschlossen haben, gelangen Sie zum Hauptformular von Visual FoxPro-Lösungen zurück.

Funktionsweise der Lösungsbeispiele

Alle Komponenten der Lösungsbeispiele sind in Solution.dbf aufgeführt. In dieser Tabelle ist Folgendes gespeichert:

  • Die Bezeichner der Schlüssel (Key) und übergeordneten Schlüssel (Parent), die zum Hinzufügen von Knoten zu einem Struktur-Steuerelement (TreeView) erforderlich sind.
  • Der Bildbezeichner (Image) im ImageList-Steuerelement für das neben dem Element im Struktur-Steuerelement anzuzeigende Bild.
  • Der Dateiname (File) und der Pfad (Path) der Komponenten.
  • Die zu öffnende Methode, wenn Sie Code anzeigen wählen.
  • Die Beschreibung (Descript), die im Formular der Visual FoxPro-Lösungen anzuzeigen ist.

Es gibt zwei weitere Tabellen, die dem gefilterten Listenzugriff auf die Komponenten dienen: Xref.dbf und Reftext.dbf.

Die FillTree-Methode von Solution.scx liest die Informationen aus Solution.dbf, um das Struktur-Steuerelement (TreeView) zu füllen.

* FillTree
o = THIS.pgf1.pagTree.oleTree

SCAN
   IF ALLTRIM(parent) = '0'
      oNode = o.nodes.add(,1,ALLTRIM(key),ALLTRIM(text),,)
   ELSE
      oNode = o.nodes.add(ALLTRIM(parent),4,ALLTRIM(key), ALLTRIM(text),,)
   ENDIF
   * add images to the treeview
   IF !empty(image)
      oNode.Image = ALLTRIM(image)
   ENDIF
ENDSCAN

Formulare

Die Benutzeroberfläche für Solution.app ist Solution.scx, sie stellt Ihnen mehrere Verwendungsmöglichkeiten zur Verfügung:

  • Zwei Möglichkeiten, den Inhalt anzuzeigen: Als Verzeichnis- (Gliederungs-)Ansicht, die die Hierarchie der Komponenten innerhalb der Anwendung zeigt, oder als Filterlistenansicht der Anwendungskomponenten, die eine alphabetische Liste aller Komponenten zur Verfügung stellt, die den von Ihnen angegebenen Sortierkriterien entsprechen.
  • Eine Schaltfläche Alle einblenden/Alle ausblenden zum Anzeigen aller Komponenten in der Verzeichnisansicht.
  • Eine Kurzbeschreibung eines ausgewählten Beispiels.
  • Die Option, durch Öffnen in einem entsprechenden Designer den Code anzuzeigen oder auszuführen.

Eine Beschreibung zur Implementierung bestimmter Funktionen in einem Formular erhalten Sie, indem Sie die Schaltfläche Hintergrund verwenden.

Jedes in diesem Anwendungspaket enthaltene Formular beinhaltet ein auf der c_solutions-Klasse in Solution.vcx basierendes Objekt. Diese Klasse bietet eine fest definierte Stelle für die Umgebungs- und Lokalisierungseinstellungen. Wird das c_solutions-Objekt zerstört, so werden die alten Einstellungen wiederhergestellt. Falls das Visual FoxPro-Lösungen-Formular existiert, wird es erneut angezeigt.

Die Custom-Klasse findet in den Lösungsbeispielen Verwendung, da sie größere Flexibilität bietet: Sie können sie Formularen hinzufügen und bei Bedarf auch aus Formularen des Anwendungspakets löschen und die Formulare Ihren eigenen Bedürfnissen anpassen. Statt der Verwendung einer benutzerdefinierten Klasse (Custom-Klasse) zur Verwaltung der Umgebungseinstellungen können Sie diese Funktionalität auch in einer Formularklasse zur Verfügung stellen, von der alle Formulare in den Lösungsbeispielen abgeleitet sind.

Bei Formulardatensätzen in Solution.dbf ist im Typfeld (type) der Wert "F" abgespeichert. Der zu cmdRun und cmdSee gehörige Code startet bzw. modifiziert das Formular.

* extract from cmdRun.Click
   CASE solutions.type = "F" && form
      DO FORM (ALLTRIM(solutions.path) + "\" + ALLTRIM(solutions.file))

Anmerkung   In dem Datenumgebungsobjekt von Solution.scx erhält der Cursor für Solution.dbf einen Alias "Solutions".

Berichte und Abfragen

Bei Berichtdatensätzen in Solution.dbf ist im Typfeld (type) der Wert "R" abgespeichert, bei Abfragen der Wert "Q". Sie können die Berichte und Abfragen in dem mit cmdRun assoziierten Code starten. In dem mit cmdSee assoziierten Code können Sie sie modifizieren.

* extract from cmdRun
   CASE solutions.type = "R" && report
      REPORT FORM (ALLTRIM(solutions.path) + "\" + ALLTRIM(solutions.file)) PREVIEW NOCONSOLE
      THISFORM.Visible = .T.

Durch den Start einer Abfrage wird das Resultset in einem Datenblattfenster geöffnet. Standardmäßig wird ein Datenblatt im aktuell aktiven Fenster angezeigt, wobei es sich in diesem Beispiel um das Visual FoxPro-Lösungen-Formular handelt. Für den Fall, dass das Datenblatt in einem separaten Fenster angezeigt werden soll, definiert und aktiviert der Code ein anderes Fenster, führt die Abfrage durch und gibt dann das separate Fenster wieder frei.

   CASE solutions.type = "Q" && query
      #DEFINE TITLE_LOC "Results of query "
      DEFINE WINDOW brow_wind FROM 1,1 TO 30, 100 TITLE TITLE_LOC + UPPER(ALLTRIM(file))+ ".QPR " ;
         FLOAT GROW MINIMIZE ZOOM CLOSE FONT "Arial",10
      ACTIVATE WINDOW brow_wind NOSHOW
      DO (ALLTRIM(solutions.path) + "\" + ALLTRIM(solutions.file) + ".QPR")
      RELEASE WINDOW brow_wind
      THISFORM.Visible = .T.
ENDCASE

Siehe auch

Hinzufügen und Entfernen von Einträgen in einem Struktur-Steuerelement (TreeView)