FastReport String-Teile entfernen: Unterschied zwischen den Versionen
Aus GEVITAS
Zeile 1: | Zeile 1: | ||
== Allgemeines == | == Allgemeines == | ||
− | FastReport beinhaltet | + | FastReport beinhaltet auch eine paar String-Methoden, mit dem Text-Teile z.B. löschen kann. |
+ | |||
== Problem == | == Problem == | ||
Zeile 8: | Zeile 9: | ||
Der Pfad- und Dateiname kommt aus der Datenbank, beinhaltet aber den Pfad zum lokalen Server. Per Code soll jetzt aus dem lokalen Pfad ein Internet-Pfad gemacht werden. | Der Pfad- und Dateiname kommt aus der Datenbank, beinhaltet aber den Pfad zum lokalen Server. Per Code soll jetzt aus dem lokalen Pfad ein Internet-Pfad gemacht werden. | ||
+ | |||
== Lösung == | == Lösung == | ||
+ | ;Auf dem Report im FastReport-Designer platziert man... | ||
+ | *...ein QR-Code-Objekt mit dem Namen "QRCode1" | ||
+ | *...ein Textfeld (Memo) mit dem Namen "memo1.". Dies ist nur ein Hilfs-Feld und ist nicht sichtbar (Eigenschaft Visible = False) | ||
+ | |||
+ | Man klickt auf das Band "MasterData1" und schaltet links auf "Ereignisse" um. Dann doppelklickt man auf das Ereignis "OnBeforePrint" und kommt damit in den Code-Editor. | ||
+ | |||
+ | Dort schreibt man diesen Code: | ||
Zeile 25: | Zeile 34: | ||
;Hinweis: | ;Hinweis: | ||
:Das QR-Code-Objekt darf in diesem Fall keine direkte Datenbank-Anbindung haben (Eigenschaften "DataSet" und "DataField" müssen leer sein!) | :Das QR-Code-Objekt darf in diesem Fall keine direkte Datenbank-Anbindung haben (Eigenschaften "DataSet" und "DataField" müssen leer sein!) | ||
− | + | :In diesem Beispiel werden die ersten 27 Zeichen aus dem Pfad entfernt, in Ihrem Fall müssten Sie zählen, wie lange der lokale Pfad ist. | |
+ | *Das geht natürlich nur, wenn der lokale Pfad immer gleich lang ist! | ||
Version vom 11. Juli 2018, 09:33 Uhr
Inhaltsverzeichnis
1 Allgemeines
FastReport beinhaltet auch eine paar String-Methoden, mit dem Text-Teile z.B. löschen kann.
2 Problem
Auf einem QR-Code-Etikett soll ein Link zu einem Dokument stehen, das auf einem Cloud-Server liegt.
Der Pfad- und Dateiname kommt aus der Datenbank, beinhaltet aber den Pfad zum lokalen Server. Per Code soll jetzt aus dem lokalen Pfad ein Internet-Pfad gemacht werden.
3 Lösung
- Auf dem Report im FastReport-Designer platziert man...
- ...ein QR-Code-Objekt mit dem Namen "QRCode1"
- ...ein Textfeld (Memo) mit dem Namen "memo1.". Dies ist nur ein Hilfs-Feld und ist nicht sichtbar (Eigenschaft Visible = False)
Man klickt auf das Band "MasterData1" und schaltet links auf "Ereignisse" um. Dann doppelklickt man auf das Ereignis "OnBeforePrint" und kommt damit in den Code-Editor.
Dort schreibt man diesen Code:
procedure MasterData1OnBeforePrint(Sender: TfrxComponent); begin // Den Pfad aus der Datenbank in ein Hilfs-Memo schreiben: memo1.Text := <Test."Protocol">; // Die ersten X Zeichen aus dem Pfad entfernen, so dass nur noch der Dateiname im Memo steht: Delete( memo1.Text , 1 , 27 ) ; // Den Text an das QR-Code-Objekt übergeben: QRCode1.Text := 'http://myserver/pfad/' + memo1.Text; end;
- Hinweis
- Das QR-Code-Objekt darf in diesem Fall keine direkte Datenbank-Anbindung haben (Eigenschaften "DataSet" und "DataField" müssen leer sein!)
- In diesem Beispiel werden die ersten 27 Zeichen aus dem Pfad entfernt, in Ihrem Fall müssten Sie zählen, wie lange der lokale Pfad ist.
- Das geht natürlich nur, wenn der lokale Pfad immer gleich lang ist!