FoxPro

FoxPro to rodzina systemów zarządzania relacyjnymi bazami danych (RDBMS),
a także język programowania stworzony przez firmę Fox Software.
Popularność zdobył zwłaszcza w latach 80. i 90. XX wieku.
Poniżej znajdziesz krótki opis FoxPro:

1. Historia:

·         FoxPro został stworzony przez firmę Fox Software.

·         Początkowo był dostępny dla platformy DOS, a później również dla systemów Windows.

2. System Zarządzania Bazą Danych (DBMS):

·         FoxPro to kompletny system zarządzania bazą danych.

·         Obsługuje struktury danych takie jak tabelki (DBF - Database Files),
zapytania, relacje, indeksy i procedury składowane.

3. Język Programowania:

·         FoxPro posiada własny język programowania, który łączy w sobie elementy
proceduralnego i zorientowanego obiektowo programowania.

·         Język ten pozwala na definiowanie formularzy, raportów, procedur i funkcji.

4. Interfejs Użytkownika:

·         FoxPro oferuje interfejs użytkownika w formie konsolowej (w wersji DOS)
oraz graficznej (w wersji Windows).

·         Wersje dla systemu Windows (np. Visual FoxPro) dostarczały narzędzi
do projektowania interfejsu graficznego.

5. Programowanie Zdarzeniowe:

·         Programowanie w FoxPro często obejmuje obsługę zdarzeń.

·         Zdarzenia mogą być powiązane z interakcjami użytkownika,
takimi jak kliknięcia przycisków czy zmiany danych.

6. Bazy Danych typu DBF:

·         FoxPro korzysta z plików DBF jako formatu przechowywania danych.

·         Pliki DBF przechowują rekordy w formie tabelarycznej.

7. Visual FoxPro:

·         Visual FoxPro (VFP) to rozwinięta wersja FoxPro,
która dostarcza bardziej rozbudowane narzędzia graficzne i możliwości
programowania zorientowanego obiektowo.

8. Zmiana Krajobrazu IT:

·         Choć FoxPro był kiedyś popularny, jego znaczenie zmalało wraz z postępem technologii.

·         Microsoft, który nabył prawa do FoxPro, ogłosił zaprzestanie jego rozwijania i wsparcia.

FoxPro miał duże znaczenie w historii informatyki, szczególnie w dziedzinie a
plikacji biznesowych i zarządzania bazami danych.
Obecnie, jeśli masz do czynienia z danymi zapisanymi w formacie DBF,
możesz napotkać konieczność konwersji tych danych do bardziej nowoczesnych
 formatów lub systemów zarządzania bazą danych.

 

 

Przykłady programów  FoxPro

 

Poniżej znajdziesz kilka prostych przykładów programów napisanych w języku FoxPro.
Te przykłady obejmują podstawowe operacje na danych,
manipulacje w bazie danych i wykorzystanie struktury proceduralnej.

1. Prosta Aplikacja do Zarządzania Klientami:

Poniżej znajdziesz kilka prostych przykładów programów napisanych w języku FoxPro.
Te przykłady obejmują podstawowe operacje na danych, manipulacje w bazie danych
i wykorzystanie struktury proceduralnej.

 

* Stworzenie tabeli klientów

CREATE TABLE customers (id I, name C(50), email C(50))

 

* Dodanie kilku klientów

INSERT INTO customers VALUES (1, 'John Doe', 'john@example.com')

INSERT INTO customers VALUES (2, 'Jane Smith', 'jane@example.com')

 

* Wyświetlenie listy klientów

SELECT * FROM customers INTO CURSOR curCustomers

BROWSE

 

* Zamykanie tabeli

USE IN customers

 

Krótki opis programu w FoxPro:

Tworzenie Tabeli Klientów:

CREATE TABLE customers (id I, name C(50), email C(50))

Polecenie to tworzy tabelę o nazwie "customers" z trzema kolumnami: "id" (liczba całkowita),
"name" (łańcuch znaków o maksymalnej długości 50 znaków) i "email" (łańcuch znaków o maksymalnej długości 50 znaków).

Dodanie Kilku Klientów:
INSERT INTO customers VALUES (1, 'John Doe', 'john@example.com')

INSERT INTO customers VALUES (2, 'Jane Smith', 'jane@example.com')

Te polecenia dodają kilku klientów do wcześniej utworzonej tabeli.

Wyświetlenie Listy Klientów:

SELECT * FROM customers INTO CURSOR curCustomers

BROWSE

Polecenie SELECT pobiera wszystkie dane z tabeli "customers" i umieszcza je w kursurze (buforze danych),
a następnie polecenie BROWSE pozwala na przeglądanie

 

 

 

2. Prosta Aplikacja do Dodawania Danych:

CLEAR

INPUT 'Podaj imię:', cFirstName

INPUT 'Podaj nazwisko:', cLastName

INPUT 'Podaj wiek:', nAge

APPEND BLANK

REPLACE FirstName WITH cFirstName, LastName WITH cLastName, Age WITH nAge

* Wyświetlenie dodanego rekordu

BROWSE

 

 

3. Prosta Aplikacja do Wyszukiwania:

CLEAR

INPUT 'Podaj imię lub nazwisko do wyszukania:', cSearch

* Wyszukaj w tabeli klientów

SELECT * FROM customers WHERE UPPER(name) $ UPPER(cSearch) INTO CURSOR curSearch

IF _TALLY = 0

   ? 'Brak pasujących rekordów.'

ELSE

   BROWSE

ENDIF

* Zamknij tabelę

USE IN customers

 

4. Prosta Aplikacja do Aktualizacji Danych:

CLEAR

INPUT 'Podaj ID klienta do aktualizacji:', nID

* Sprawdź czy klient istnieje

SELECT * FROM customers WHERE id = nID INTO CURSOR curUpdate

IF _TALLY = 0

   ? 'Klient o podanym ID nie istnieje.'

ELSE

   * Pobierz nowe dane od użytkownika

   INPUT 'Nowe imię:', cNewFirstName

   INPUT 'Nowe nazwisko:', cNewLastName

   INPUT 'Nowy wiek:', nNewAge

   * Aktualizuj dane klienta

   REPLACE FirstName WITH cNewFirstName, LastName WITH cNewLastName, Age WITH nNewAge FOR id = nID

   ? 'Dane klienta zaktualizowane.'

ENDIF

* Zamknij tabelę

USE IN customers

 

Te przykłady mają na celu pokazanie podstawowych operacji, jakie można wykonywać w języku FoxPro.
FoxPro może być używany zarówno w trybie konsolowym, jak i w trybie graficznym (Visual FoxPro),
co wpływa na sposób prezentacji danych i interakcję z użytkownikiem.

 

Visual FoxPro

 

Visual FoxPro

ChatGPT

Visual FoxPro (VFP) to rozbudowana wersja języka programowania FoxPro,
dostarczająca zaawansowane narzędzia do tworzenia aplikacji biznesowych oraz interfejsów graficznych.

Oto kilka kluczowych cech Visual FoxPro:

 

1. Interfejs Graficzny:

Visual FoxPro oferuje środowisko programistyczne z interfejsem graficznym.

Umożliwia łatwe tworzenie formularzy, raportów i innych elementów interfejsu użytkownika.

2. Zorientowane Obiektowo Programowanie (OOP):

Wprowadza paradygmat programowania obiektowego.

Obsługuje klasy, obiekty, dziedziczenie, polimorfizm i inne koncepty OOP.

3. Bazy Danych:

Kontynuuje tradycję FoxPro jako systemu zarządzania bazą danych.

Obsługuje pliki DBF, indeksowanie, relacje między tabelami.

4. Zintegrowane Środowisko Programistyczne (IDE):

Posiada rozbudowane IDE z edytorem kodu, narzędziami do projektowania interfejsu,
eksploratorem projektu i debugerem.

5. Rozwinięte Funkcje Programowania:

Wprowadza wiele nowych funkcji i polecenie, w porównaniu do starszych wersji FoxPro.

Umożliwia korzystanie z bardziej zaawansowanych algorytmów i technik programowania.

6. Raportowanie:

Wspiera generowanie zaawansowanych raportów biznesowych.

Zapewnia możliwość formatowania raportów i tworzenia wydruków.

7. Integracja z Innymi Technologiami:

Posiada funkcje umożliwiające integrację z innymi technologiami, takimi jak SQL Server czy inne źródła danych ODBC.

Wsparcie dla komponentów ActiveX i automatyzacja programów zewnętrznych.

8. Wsparcie dla Komponentów Zewnętrznych:

Pozwala na korzystanie z komponentów zewnętrznych, co ułatwia rozbudowę funkcjonalności aplikacji.

9. Wsparcie dla SQL:

Umożliwia korzystanie z języka SQL do manipulacji danymi.

Pozwala na wykonywanie zaawansowanych zapytań do baz danych.

10. Wsparcie dla Windows:

Visual FoxPro został dostosowany do pracy w środowisku Windows, co pozwala
na tworzenie aplikacji dla tego systemu operacyjnego.

Należy jednak zaznaczyć, że Microsoft zakończył rozwijanie Visual FoxPro
i nie dostarcza już aktualizacji ani wsparcia technicznego
dla tego produktu. Zaleca się, aby organizacje, które używają Visual FoxPro,
zaczęły planować migrację na nowsze technologie.

 

Oto kilka prostych przykładów programów w języku Visual FoxPro (VFP),

które pokazują podstawowe operacje na danych, tworzenie formularzy i raportów:

 

Prosta Aplikacja do Zarządzania Klientami:

 

* Tworzenie formularza dla klientów

CREATE FORM frmCustomers

* Utworzenie kontrolki siatki danych

GRID TO grdCustomers

 

* Dodanie kolumn do siatki danych

ADD COLUMN grdCustomers.CustomerID HEADER 'ID'

ADD COLUMN grdCustomers.CustomerName HEADER 'Name'

ADD COLUMN grdCustomers.Email HEADER 'Email'

 

* Ładowanie danych do siatki

SELECT CustomerID, CustomerName, Email FROM Customers INTO CURSOR curCustomers

GO TOP

DO WHILE NOT EOF()

   APPEND BLANK

   REPLACE CustomerID WITH curCustomers.CustomerID, ;

           CustomerName WITH curCustomers.CustomerName, ;

           Email WITH curCustomers.Email

   SKIP

ENDDO

 

* Wyświetlanie formularza

MODIFY FORM frmCustomers NOWAIT

 

 

2. Prosta Aplikacja do Dodawania Danych:

* Tworzenie formularza dla dodawania klientów

CREATE FORM frmAddCustomer

 

* Utworzenie kontrolek tekstowych i pól tekstowych

TEXT TO lblName PROMPT 'Name:'

TEXTBOX TO txtName

 

TEXT TO lblEmail PROMPT 'Email:'

TEXTBOX TO txtEmail

 

* Utworzenie przycisku dodawania

BUTTON TO btnAdd TEXT 'Add Customer' ACTION AddCustomer

 

* Funkcja obsługująca dodawanie klienta

FUNCTION AddCustomer

   APPEND BLANK

   REPLACE CustomerName WITH txtName.Value, Email WITH txtEmail.Value

   CLEAR ALL

   ? 'Customer added successfully!'

   RETURN

ENDFUNC

 

* Wyświetlanie formularza

MODIFY FORM frmAddCustomer NOWAIT

 

 

3. Prosta Aplikacja Raportowa:

* Utworzenie raportu

REPORT FORM rptCustomers OBJECT TYPE 5

 

* Zamykanie okna raportu po kilku sekundach

WAIT WINDOW 'Generating report...' NOWAIT TIMEOUT 3

CLEAR WINDOW

 

 

4. Aplikacja z Połączeniem z Bazą Danych SQL:

* Ustawienie parametrów połączenia z bazą danych SQL Server

lcConnectString = "DRIVER=SQL Server;SERVER=YourServer;DATABASE=YourDatabase;UID=YourUsername;PWD=YourPassword;"

 

* Połączenie z bazą danych SQL Server

SQLCONNECT(lcConnectString)

 

* Utworzenie zapytania SQL

lcSQL = "SELECT CustomerID, CustomerName, Email FROM Customers"

SQLSETPROP("cursorname", "curCustomers")

SQLEXEC(lcSQL)

 

* Wyświetlenie wyników zapytania w oknie danych

BROWSE

* Zamknięcie połączenia z bazą danych

SQLDISCONNECT()

Te przykłady mają na celu pokazanie różnych aspektów programowania w Visual FoxPro,
takich jak obsługa formularzy, manipulacja danymi, tworzenie raportów
oraz połączenie z bazą danych SQL Server.
Zależnie od konkretnych potrzeb, możesz dostosować te przykłady do własnych projektów.