Webservices
Der Client
Über Datei/Neu/Anwendung legen wir in Delphi ein neues, leeres Projekt an. Auf dem Fenster platzieren wir ein Eingabefeld für den Brutto-Wert, ein Button, der die Berechnung starten soll, und ein Label, das für die Ergebnisanzeige verwendet wird.
Nun müssen wir die WSDL-Datei importieren. Dazu klicken wir auf Datei/Neu/Weitere/WebServices und wählen jetzt „WSDL-Import“ aus. Nun werden wir nach dem Namen unserer WSDL-Datei gefragt. Über die drei Punkte hinter dem Eingabefeld öffnet sich ein Datei-Dialog, über den wir die Datei auswählen können, die wir vorhin aus dem Browserfenster heraus gespeichert haben.
Schon steht uns die Funktion GetMWSt zur Verfügung.
Als erstes muss die neue Unit MeinWebService in die Uses-Klausel von Form1 eingefügt werden. Dann erstellen wir für den Berechnungsbutton ein OnClick-Ereignis, das mit folgendem Code gefüllt werden muss:
procedure TForm1.Button1Click(Sender: TObject); var ws: IMeinWebService; begin ws:=GetIMeinWebService(true); Label2.Caption:= FloatToStrF(ws.GetMWSt(StrToFloat(Edit1.Text)), ffCurrency, 15, 2); end;
Es wird also zunächst eine Variable vom Typ der Schnittstelle zu unserem Webservice (IMeinWebService) deklariert und diese anschließend initialisiert. Dazu wird die Funktion GetIMeinWebService verwendet, die beim WSDL-Import automatisch generiert worden ist. Das true als Aufrufparameter bedeutet, dass die WSDL-Datei verwendet werden soll.
Die nächste Code-Zeile muss man zum Verständnis von innen nach außen lesen: Der Inhalt von Edit1.Text wird in eine Zahl umgewandelt (normalerweise sollte man eine mögliche Exception hier abfangen!); dieser Wert wird an die Funktion GetMWSt unseres Webservices übergeben. Der Rückgabewert (eine Gleitkommazahl) wird mit Hilfe von FloatToStrF in einen Währungsstring mit 15 Stellen Genauigkeit und 2 Nachkommastellen umgewandelt und anschließend im Label2 angezeigt.
Wer über eine DFÜ-Verbindung ins Internet geht, sollte diese vor dem Ausführen des Programms deaktivieren (Internetoptionen/Verbindungen/Keine Verbindung wählen), da ansonsten unnötigerweise versucht wird, eine Internetverbindung aufzubauen.
Folgendes sollte nun zu sehen sein:
Das soll also bedeuten, dass ein Betrag von 100 ? 13,79 ? Mehrwertsteuer enthält.