FlagShip ist eine objektorientierte und prozedurale Programmiersprache, basierend auf xBase, dessen Quellcodes der Compiler ebenfalls übersetzen kann. FlagShip ist als 32- oder 64-Bit-Version für die Betriebssysteme Linux, Unix und Windows verfügbar.

Logo von FlagShip

Geschichte

Bearbeiten

Die erste FlagShip-Version hat multisoft Datentechnik GmbH im Jahre 1992 eingeführt, um Clipper, dBASE III+, FoxBASE, FoxPro und andere Anwendungen auf unterschiedliche Unix-Betriebssysteme, zum Beispiel SCO Unix, AIX, Solaris, HP-UX und Sinix zu portieren. 1995 erschien auch eine Linux-Portierung. Im Jahre 2002 wurde Visual FlagShip (abgekürzt als VFS) für Linux veröffentlicht, ab 2004 ist er auch für die 32/64-Bit-Windows-Betriebssysteme verfügbar (Windows NT, 2000, XP, Vista, 7 und Server 2008).

Programmierung

Bearbeiten
 
FlagShip-Umgebung mit Debugger

FlagShip ist ein Programmier- und Entwicklungswerkzeug, das neben professionellen Anwendern auch von erfahrenen Privatanwendern, die ein Datenbankprogramm mit wenig Aufwand erstellen wollen, genutzt wird. Durch die volle Clipper-Kompatibilität ist FlagShip auch geeignet, vorhandene DOS-Anwendungen auf Unix, Linux oder Windows-Betriebssysteme zu portieren.

Visual FlagShip erstellt vollautomatisch aus dem gleichen Quelltext ein GUI-orientiertes oder textuelles Programm. Der Ausführungsmodus (GUI, textuell oder stream für Web) wird bei einer heterogenen Applikation automatisch durch die Umgebung bestimmt, bzw. kann durch Eingabeparameter bei der Kompilierung oder Programmausführung vorgegeben werden.

Folgender Beispielprogrammcode etwa ergibt nach Kompilierung die abgebildeten Programme im GUI- bzw. Textmodus.

 
Screenshots von Visual-FlagShip-Programmen im GUI- und Textmodus
 USE address ALIAS adr SHARED NEW
 SET COLOR TO "W+/B,GR+/R,W/B,W/B,GR+/BG"
 SET GUICOLOR OFF
 cls
 @ 1, 0 SAY "Id No. " GET adr->IdNum PICT "999999" VALID IdNum > 0
 @ 3, 0 SAY "Company" GET adr->Company
 @ 3,35 SAY "Branch" GET adr->Branch WHEN !empty(adr->Company)
 @ 4, 0 SAY "Name " GET adr->Name VALID !empty(adr->Name)
 @ 4,35 SAY "First "  GET adr->First
 @ 6, 0 SAY "Country" GET adr->Country PICTURE "!" + repli("x",24)
 @ 8, 0 SAY "Zip " GET adr->Zip PICT "@!" VALID !empty(adr->Zip)
 @ 9, 0 SAY "City " GET adr->City
 @ 10, 0 SAY "Street " GET adr->Street

 @ 6,35,11.4,47 GET adr->Type RADIOGROUP {"Male","Female","Company","None"}
 @ 7,50 GET adr->Interest CHECKBOX CAPTION "Interested party"
 @ 8,50 GET adr->Customer CHECKBOX CAPTION "Customer"
 @ 9,50 GET adr->Reseller CHECKBOX CAPTION "Reseller"
 @ 10,50 GET adr->Distrib CHECKBOX CAPTION "Distributor"
 READ
Bearbeiten