Freigeben über


Visual FoxPro als Anwendungs-Front-End

Als Visual FoxPro-Entwickler finden Sie es wahrscheinlich normal, Ihre Anwendungen in Anlehnung an die visuellen Designtools des Programms zu entwerfen. Die Benutzeroberfläche Ihrer Anwendung stellen Sie sich z. B. vermutlich in Form von Visual FoxPro-Formularen, -Menüs und -Berichten vor. Wenn Sie Anwendungen in Visual FoxPro entwickeln, ist es außerdem wahrscheinlich, dass Sie die Daten der Anwendung in Visual FoxPro-Tabellen speichern möchten.

Eine Möglichkeit, Visual FoxPro in eine unternehmensweite Anwendung zu integrieren, besteht darin, in Visual FoxPro die visuellen Designtools zu verwenden, diese aber mit den Fähigkeiten anderer Produkte zu erweitern. Eine andere Möglichkeit besteht darin, die Benutzeroberfläche Ihrer Anwendung mit Visual FoxPro zu erstellen, die Datenspeicherung Ihrer Anwendung aber dadurch zu erweitern, dass Sie die Fähigkeiten anderer Programme oder von Nicht-Visual FoxPro-Datenspeicheroptionen nutzen. Sie können Ihre Visual FoxPro-Daten auch in Client/Server-Daten übertragen, indem Sie sie auf einen Datenbankserver verschieben.

Erweitern der visuellen Designtools in Visual FoxPro

Die Basisklassen der Visual FoxPro-Steuerelemente wurden so gestaltet, dass sie die überwiegende Zahl der an die Benutzeroberfläche einer Anwendung gestellten Anforderungen abdecken. Visual FoxPro stellt alle Standardsteuerelemente und Benutzeroberflächenelemente bereit, die erforderlich sind, um eine Windows-Standardanwendung zu erstellen. Häufig werden Sie aber feststellen, dass Ihre Anwendung Objekte oder Steuerelemente erfordert, die noch leistungsfähiger sind als diejenigen, die in den Visual FoxPro-Standardklassen bereitgestellt werden. Wenn dies der Fall ist, können Sie die visuellen Designtools erweitern, indem Sie Unterklassen erstellen und ActiveX-Steuerelemente verwenden.

Erstellen von Unterklassen

Ein besonders leistungsfähiges Merkmal von Visual FoxPro ist die Fähigkeit, Unterklassen der Standardsteuerelemente zu erstellen. Indem Sie eine oder mehrere Unterklassen erstellen, können Sie die Visual FoxPro-Standardsteuerelemente normalerweise so anpassen, dass sie für Ihre Anwendungen geeignet sind. Diese Fähigkeit geht soweit, dass Sie neue Objekte oder Steuerelemente erstellen können, in denen die Merkmale anderer Steuerelemente kombiniert sind. Ein Datenraster-Steuerelement in Visual FoxPro enthält z. B. nicht nur seinen eigenen Container sowie seine eigenen Eigenschaften und Methoden, sondern auch diejenigen der Objekte, die auf dem Datenraster angezeigt werden (etwa Schaltflächen, Textfelder usw.).

Sie können die Fähigkeiten von Visual FoxPro erweitern, indem Sie aus Standardsteuerelementen Unterklassen bilden und so Objekte erstellen, die neue Merkmale zu den vorhandenen Basisklassen hinzufügen oder in denen die Möglichkeiten verschiedener Objekte kombiniert sind. Sie können z. B. optische Merkmale, etwa Rahmen oder dreidimensionale Effekte, zu einem Textfeld hinzufügen. Oder Sie können ein Abbildungs-Steuerelement, Schaltflächen und ein Textfeld zu einem Bitmapanzeige-Steuerelement kombinieren, mit dem ein Benutzer sich durch mehrere BMP-Dateien bewegen kann. Wenn Sie so selbstdefinierte Klassen erstellen, ergibt sich eine Hilfe bei der unternehmensweiten Entwicklung, indem Sie standardisierte Steuerelemente erstellen können, die in allen Ihren Anwendungen angezeigt werden. Weitere Informationen zum Erstellen von Unterklassen finden Sie unter Objektorientierte Programmierung.

Arbeiten mit ActiveX-Steuerelementen

Statt in Visual FoxPro mit Hilfe von Unterklassen ein neues Steuerelement zu erstellen, kann alternativ ein ActiveX-Steuerelement (OCX-Datei) verwendet werden. Diese Steuerelemente werden unabhängig von Visual FoxPro erstellt und können nicht nur in Visual FoxPro, sondern auch in viele andere Windows-Anwendungen integriert werden.

Letztlich sind ActiveX-Steuerelemente Standardkomponenten, die Sie nahtlos in Ihre Anwendungen integrieren können. Das Verwenden von ActiveX-Steuerelementen bietet mehrere Vorteile:

  • Es erspart Ihnen Zeit und Arbeitsaufwand, die erforderlich sind, um ein Visual FoxPro-spezifisches Steuerelement zu erstellen, zu testen und zu warten, das dieselben Aufgaben erledigt. Je mehr das ActiveX-Steuerelement kann, desto mehr Zeit sparen Sie.
  • Es gibt bereits viele kommerziell vertriebene ActiveX-Steuerelemente, die übliche Anforderungen von Anwendungen erledigen. Wenn es für Ihre Anwendung z. B. erforderlich ist, einen Kalender anzuzeigen und es einem Benutzer zu ermöglichen, Tagesdaten dieses Kalenders zu wählen, finden Sie ein ActiveX-Steuerelement (oder mehrere), das diese Aufgabe bewältigt.
  • Dasselbe Steuerelement kann in mehreren Programmen verwendet werden. Sie können z. B. dasselbe ActiveX-Steuerelement in Visual FoxPro und in Visual Basic verwenden. In jedem Fall werden dieselben Eigenschaften und Methoden verwendet, um das Steuerelement zu verwalten, und das Steuerelement hat in allen Programmen dieselbe Darstellung, wodurch den Benutzern die Arbeit mit dem Steuerelement erleichtert wird.
  • ActiveX-Steuerelemente ermöglichen häufig Zugriff auf Windows-Funktionalität, die sich nur schwierig oder unter großem Zeitaufwand einfügen lässt, wenn ausschließlich Visual FoxPro-Tools verwendet werden. Es gibt z. B. ActiveX-Steuerelemente, mit denen auf E-Mail (mit Hilfe von Windows MAPI-Funktionen), auf elementare Windows-Grafikfunktionen usw. zugegriffen werden kann. Durch Einbinden eines ActiveX-Steuerelements können Sie diese Merkmale zu Ihrer Anwendung so hinzufügen, dass sie sich mit den Eigenschaften, Methoden und Ereignissen des Steuerelements einfach steuern lässt.

Kurz gesagt, ActiveX-Steuerelemente ermöglichen es Ihnen, Ihre Anwendungen nicht nur dadurch zu erweitern, dass Sie Windows-Funktionalität integrieren, sondern auch dadurch, dass Sie zu Ihrer Anwendung eine gleichartige Bedienerführung ("Look-and-Feel") hinzufügen, wie sie für andere Anwendungen desselben Unternehmens üblich ist. Weitere Informationen zur Verwendung von ActiveX-Steuerelementen finden Sie unter Freigeben von Informationen und Hinzufügen von OLE. Informationen zum Erstellen von eigenen ActiveX-Steuerelementen finden Sie unter Zugreifen auf die Visual FoxPro-API.

Integrieren von Funktionalität anderer Programme

Beim Entwickeln einer Anwendung stellen Sie eventuell fest, dass andere Programme bestens geeignet sind, bestimmte Aufgaben zu erledigen. Microsoft Word hat z. B. unübertroffene Serienbrieffähigkeiten, während Microsoft Excel optimiert ist, um komplexe Formeln zu berechnen und aus diesen problemlos Diagramme und Grafiken zu erstellen.

Statt diese Fähigkeiten in Visual FoxPro zu emulieren, können Sie Ihre Anwendung zu einer unternehmensweiten Lösung machen, indem Sie diese Fähigkeiten in Ihre Anwendung integrieren. So können Sie die an Ihre Anwendung gestellten Anforderungen mit dem Tool erledigen, das jeweils am besten geeignet ist.

Die Funktionalität einer anderen Anwendung können Sie auf folgende Arten in Visual FoxPro integrieren:

  • Ausführen eines Visual FoxPro-Assistenten, der Visual FoxPro-Daten so zur Verfügung stellt, dass sie von einer anderen Anwendung verwendet werden können.
  • Schreiben eines Visual FoxPro-Programms, in dem Automatisierung verwendet wird, um mit anderen Windows-Programmen zu kommunizieren, diese zu steuern und Daten mit ihnen auszutauschen.

In den folgenden Abschnitten finden Sie weitere Informationen zu diesen Methoden, mit denen die Fähigkeiten von Visual FoxPro erweitert werden können.

Verwenden von Assistenten

Eine Reihe von Visual FoxPro-Assistenten ermöglicht es Ihnen, Visual FoxPro-Daten mit der Funktionalität anderer Windows-Programme zu kombinieren. So können Sie z. B. Serienbriefe an Ihre Kunden senden, indem Sie mit dem Serienbrief-Assistenten arbeiten. Wenn Sie den Assistenten ausführen, können Sie eine Tabelle oder Ansicht angeben, die die zu verwendenden Visual FoxPro-Daten enthält, und dann entweder diese Daten in einem geeigneten Format exportieren (z. B. durch Kommas getrennt) oder angeben, dass Ihr Textverarbeitungsprogramm über den Visual FoxPro OLE DB-Provider auf die Daten zugreifen soll. Wenn Sie mit Microsoft Word arbeiten, startet der Assistent sogar das Textverarbeitungsprogramm, erstellt ein leeres Serienbriefdokument und zeigt die Seriendruck-Symbolleiste an, damit Sie Felder mit Ihren Visual FoxPro-Daten verknüpfen können.

Auf ähnliche Weise können Sie Microsoft Excel und Microsoft Query verwenden, um Ihre Daten mit einer Pivot-Tabelle zu analysieren, in der die Daten spaltenweise zusammengefasst werden und die es Ihnen ermöglicht, die Tabelle umzuordnen, um sie nach unterschiedlichen Kriterien anzuzeigen. Wenn Sie in Visual FoxPro den Pivot-Tabellen-Assistenten verwenden, können Sie die Daten Ihrer Anwendung als Quelldaten für Microsoft Excel bereitstellen und die Pivot-Tabelle in Excel erstellen.

Verwenden von Automatisierung

Eine leistungsfähigere Möglichkeit der Zusammenarbeit mit anderen Anwendungen ist die Verwendung von Automatisierung. Aus einem Visual FoxPro-Programm können Sie auf die Objekte zugreifen, die von anderen Anwendungen bereitgestellt werden, und diese Objekte steuern, indem Sie deren Eigenschaften einstellen und deren Methoden aufrufen. Microsoft Excel stellt z. B. sowohl ein Anwendungsobjekt als auch innerhalb des Anwendungsobjekts Arbeitsblätter, Spalten, Zeilen und Zellen zur Verfügung. Sie können jedes dieser Objekte direkt verwalten, wozu auch das Abrufen oder Einstellen der Daten des jeweiligen Objekts gehört. Außerdem können Sie normalerweise das Anwendungsobjekt steuern, indem Sie die im Programm selbst verfügbaren Befehle verwenden. Sie können z. B. Arbeitsblätter öffnen, speichern oder drucken, den Excel-Diagramm-Assistenten aufrufen usw., indem Sie das Anwendungsobjekt in Microsoft Excel verwalten.

Automatisierung ist aus folgenden Gründen eine besonders attraktive und leistungsfähige Art, Windows-Programme miteinander zu verbinden:

  • Sie haben direkten Zugriff auf das jeweils andere Programm samt seiner Objekte und Befehle.
  • Sie können Daten direkt mit dem anderen Programm gemeinsam verwenden, ohne die Daten exportieren oder in ein anderes Format umwandeln zu müssen.
  • Sie können das andere Programm mit dem vertrauten Eigenschaften- und Methodenmodell steuern.
  • Der Benutzer muss das andere Programm nicht unbedingt sehen, wenn Sie es aufrufen. Sie können z. B. Microsoft Excel aufrufen, einige Daten in Zellen schreiben, mit den Daten eine komplizierte Berechnung ausführen, das Ergebnis lesen und dann in Visual FoxPro anzeigen, ohne dass Microsoft Excel irgendwann angezeigt wird. Der Benutzer würde weiterhin ausschließlich Visual FoxPro sehen, es sei denn, Sie möchten ausdrücklich, dass Microsoft Excel angezeigt wird.
  • Die Befehle (Methoden und Eigenschaften), mit denen das andere Programm gesteuert wird, sind in vertraute Visual FoxPro-Programme eingebettet. Sie müssen keine andere Programmiersprache lernen, um das andere Programm steuern zu können.

Automatisierung ist besonders leistungsfähig, da sie eine unbeschränkte Methode ist, um mit anderen Programmen zu arbeiten. Im Wesentlichen macht Automatisierung Ihnen die Daten und Befehle anderer Anwendungen zugänglich, damit Sie diese auf eine Weise verwenden können, die für Ihre Anwendung am geeignetsten ist.

Anhand eines Beispielszenarios wird verdeutlicht, wie Sie mehrere Windows-Programme integrieren können. Angenommen, Sie speichern Kunden- und Umsatzdaten in Visual FoxPro. Sie möchten nun einen Umsatzbericht erstellen, in dem die Quartalsumsätze zusammengefasst werden.

Eine Lösung könnte darin bestehen, die Visual FoxPro-Verkaufsdaten mit Automatisierung in Zellen eines Microsoft Excel-Arbeitsblattes zu kopieren. Danach könnten Sie den Diagramm-Assistenten von Microsoft Excel aufrufen, um aus den Daten ein Diagramm zu erstellen, das Sie anschließend in die Windows-Zwischenablage kopieren. Ebenfalls mit Automatisierung könnten Sie Microsoft Word aufrufen und ein Verkaufsberichtsdokument erstellen oder öffnen (wenn Sie es als neues Dokument erstellen, könnten Sie einen Standardtext einfügen, der in Visual FoxPro gespeichert ist) und anschließend das Diagramm einfügen, das Sie mit Microsoft Excel erstellt haben.

Dies ist nur eine Möglichkeit, wie Sie Visual FoxPro mit Hilfe von Automatisierung zu einem Teil einer unternehmensweiten Lösung machen können. Je vertrauter Sie mit den Objekten und Methoden werden, die in den Programmen verfügbar sind, mit denen Sie normalerweise arbeiten, desto mehr Möglichkeiten werden Ihnen einfallen, wie Sie mit einem Programm die Fähigkeiten der anderen erweitern können. Weitere Informationen zur Automatisierung finden Sie unter Freigeben von Informationen und Hinzufügen von OLE im Abschnitt "Bearbeitung von Objekten mit Automatisierung".

Erweitern der Datenspeicherfähigkeiten von Visual FoxPro

Die Visual FoxPro-Fähigkeiten bezüglich Datentabellen und Indizierung sind normalerweise mehr als ausreichend für die Anforderungen einer Anwendung, sowohl was die Geschwindigkeit als auch was die Datenbankgröße angeht. Gelegentlich kann es aber vorkommen, dass Sie Visual FoxPro erweitern möchten, indem Sie Daten verwenden, die in einem anderen Format gespeichert sind. Dies kann z. B. der Fall sein, wenn Folgendes zutrifft:

  • Ihre Anwendung muss auf verwandte Daten zugreifen, die von einer vorhandenen Anwendung erstellt und verwaltet werden. Nehmen Sie z. B. an, dass Sie als Teil Ihrer Verkaufsanwendung auf Daten zugreifen müssen, die von einer Buchhaltungsanwendung verwaltet werden, die mit einem anderen Programm oder vielleicht sogar auf einer anderen Plattform geschrieben wurde.
  • Sie möchten den Datenzugriff optimieren, indem Sie einen Datenbankserver verwenden, wodurch sich der Datenzugriff, insbesondere bei großen Datenbanken, erheblich beschleunigen lässt.
  • Sie möchten Daten mit anderen Programmen gemeinsam verwenden und möchten die Daten daher in einem Format speichern, mit dem alle Programme umgehen können.
  • Die Daten sind am besten für das Format eines bestimmten Programms geeignet (z. B. eine Kalkulationstabelle). Dies ist z. B. der Fall, wenn Ihre Anwendung nur gelegentlich auf Daten zugreifen muss, die ansonsten von dem anderen Programm verwaltet werden.

Wenn die von Ihnen benötigten Daten im Format einer Kalkulationstabelle, einer Textverarbeitung oder eines anderen Windows-Programms vorliegen, können Sie mit Automatisierung auf diese Daten zugreifen. So könnten Sie z. B. vorgehen, wenn für Ihre Anwendung mehrere Serienbriefe erforderlich sind. In diesem Fall könnten die Briefe als Microsoft Word-Dokumente gespeichert sein, und Ihre Anwendung würde mit Automatisierung Word aufrufen, den jeweils gewünschten Brief öffnen und je nach Bedarf Text einfügen oder ersetzen.

Eine üblichere Vorgehensweise, um Nicht-Visual FoxPro-Daten zu verwenden, besteht darin, mit dem OLE DB-Provider auf die Daten zuzugreifen. Der Visual FoxPro OLE DB-Provider ermöglicht es Ihnen, eine Verbindung mit Daten herzustellen, die im Format eines anderen Programms vorliegen (meist ein anderes Datenbankprogramm), und diese Daten mit Hilfe von Standard-SQL-Befehlen abzufragen oder zu bearbeiten.

Sie haben z. B. festgelegt, dass Sicherheitsaspekte sowie Fähigkeiten zur Transaktionsverarbeitung unverzichtbare Bestandteile Ihrer Anwendung sein sollen, und möchten die Daten daher mit Microsoft SQL Server speichern. Um auf die Daten zuzugreifen, definieren Sie mit Hilfe des Visual FoxPro OLE DB-Providers eine Verbindung zum SQL-Server. Danach können Sie normale Abfragen (und andere SQL-Befehle) so ausführen, als lägen die Daten im Visual FoxPro-Format vor.

Andere Anwendungen können auf dieselben Daten zugreifen und dieselben Merkmale nutzen. Die Daten eines Microsoft Excel-Arbeitsblattes können z. B. aus derselben SQL Server-Datenbank stammen. Für das Arbeitsblatt ergeben sich nicht nur dieselben Leistungsvorteile wie für Ihre Anwendung, sondern es kommt auch in den Genuss der Sicherheits- und Transaktionsverarbeitungsmerkmale, die ansonsten für ein Excel-Arbeitsblatt nicht zur Verfügung stehen.

In einigen Fällen müssen Sie vielleicht sogar noch weiter gehen und SQL-Befehle verwenden, die speziell für die Datenquelle gelten, auf die Sie über den OLE DB-Provider zugreifen. Microsoft SQL Server ermöglicht es Ihnen z. B., gespeicherte Prozeduren zu erstellen und auszuführen, die Daten auf Ihrem Server bearbeiten (statt in Ihrer Anwendung). Um gespeicherte Prozeduren zu nutzen, können Sie systemeigene SQL-Anweisungen an den Datenbankserver senden. Auch mit SQL Pass-Through-Befehlen können Sie auf dem Server Aufgaben der Systemverwaltung ausführen. Diese Befehle werden außerdem unter gewissen Umständen schneller ausgeführt als vergleichbare SQL-Anweisungen, die in Visual FoxPro ausgeführt werden.

Weitere Informationen zum Erweitern von Datenspeicherfähigkeiten in Visual FoxPro finden Sie in den Kapiteln, die in der folgenden Tabelle aufgeführt sind.

Informationen zu Siehe
Automatisierung "Bearbeitung von Objekten mit Automatisierung" unter Freigeben von Informationen und Hinzufügen von OLE
Verwenden von Nicht-Visual FoxPro-Daten Zugreifen auf Remotedaten unter Erstellen von Ansichten
Verwenden von Visual FoxPro in einer Client/Server-Umgebung Entwurf von Client/Server-Anwendungen

Übertragen lokaler Visual FoxPro-Daten in Client/Server-Daten (Upsizing)

Sie haben die Wahl, Ihre Daten in Visual FoxPro-Tabellen oder auf einer anderen Plattform, z. B. auf einem Datenbankserver, zu speichern. Sie können aber auch beides tun: Ihre Daten in Visual FoxPro-Tabellen speichern, während Sie entwickeln oder bis Ihre Datenbank sehr umfangreich wird, und die Daten dann auf eine andere Plattform verschieben (oder in Client/Server-Daten übertragen).

Sie können z. B. einen Prototyp Ihrer Anwendung testen, indem Sie alle Daten in lokalen Visual FoxPro-Tabellen speichern. Damit können Sie Ihre Tabellen, Ansichten und Indizes während des Entwickelns der Anwendung flexibel ändern, ohne die Schwierigkeiten beachten zu müssen, die das Verwalten von Tabellen auf einem Datenbankserver bereitet. Sie können Beispieldaten in den lokalen Tabellen speichern und mit diesen Ihre Formulare, Berichte und anderen Programme testen. Sobald die Datenbankstruktur fertig gestellt ist, können Sie Ihre Daten auf einen Datenbankserver übertragen und die Anwendung zum Einsatz bringen.

Eine andere mögliche Arbeitsweise besteht darin, Ihre Daten nur so lange in Visual FoxPro-Tabellen zu speichern, wie sich dies als praktisch erweist. Wenn die Datenbank sehr umfangreich wird, können Sie sie auf einen Datenbankserver übertragen und von dessen optimiertem Leistungsverhalten profitieren. An welchem Punkt genau es sinnvoll ist, Ihre Datenbank auf einen Datenbankserver zu übertragen, hängt von vielen Faktoren ab, so z. B. von der Komplexität der Datenbank, dem Leistungsverhalten Ihres lokalen Computers oder Netzwerks sowie den Anforderungen Ihrer Anwendung.

Schließlich können Sie einen Prototyp Ihrer Datenbank mit Visual FoxPro testen und die Datenbank dann in eine Serverdatenbank übertragen, um die Daten mit anderen Anwendungen gemeinsam zu verwenden, die ebenfalls Zugriff auf den Datenbankserver haben. Oder Sie können die Datenbank in eine Serverdatenbank übertragen, um von den Fähigkeiten des Datenbankservers zu profitieren, die dieser bezüglich der Sicherheit und der Transaktionsverarbeitung hat.

Weitere Informationen zum Upsizing von Datenbanken finden Sie unter Upsizing von Visual FoxPro-Datenbanken.

Siehe auch

Entwicklung für das Unternehmen | Visual FoxPro als Datenquelle | Visual FoxPro-Unternehmenslösungen | Objektorientierte Programmierung | Freigeben von Informationen und Hinzufügen von OLE | Zugreifen auf die Visual FoxPro-API | Serienbrief-Assistent | PivotTable-Assistent