FastReport String-Teile entfernen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| 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: | |||
<nowiki>procedure MasterData1OnBeforePrint(Sender: TfrxComponent);</nowiki> | <nowiki>procedure MasterData1OnBeforePrint(Sender: TfrxComponent);</nowiki> | ||
<nowiki>begin</nowiki> | <nowiki>begin</nowiki> | ||
<nowiki> // Den Pfad aus der Datenbank in ein Hilfs-Memo schreiben:</nowiki> | <nowiki> // Den Pfad aus der Datenbank in ein Hilfs-Memo schreiben:</nowiki> | ||
<nowiki> memo1.Text := <Test."Protocol">;</nowiki> | <nowiki> memo1.Text := <Test."Protocol">;</nowiki> | ||
<nowiki> // Die ersten X Zeichen aus dem Pfad entfernen, so dass nur noch der Dateiname im Memo steht:</nowiki> | <nowiki> // Die ersten X Zeichen aus dem Pfad entfernen, so dass nur noch der Dateiname im Memo steht:</nowiki> | ||
<nowiki> Delete( memo1.Text , 1 , 27 ) ;</nowiki> | <nowiki> Delete( memo1.Text , 1 , 27 ) ;</nowiki> | ||
<nowiki> // Den Text an das QR-Code-Objekt übergeben:</nowiki> | <nowiki> // Den Text an das QR-Code-Objekt übergeben:</nowiki> | ||
<nowiki> QRCode1.Text := 'http://myserver/pfad/' + memo1.Text;</nowiki> | <nowiki> QRCode1.Text := 'http://myserver/pfad/' + memo1.Text;</nowiki> | ||
<nowiki>end;</nowiki> | <nowiki>end;</nowiki> | ||
;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! | |||
== Links == | == Links == | ||
Aktuelle Version vom 11. Juli 2018, 08:36 Uhr
Allgemeines
FastReport beinhaltet auch eine paar String-Methoden, mit dem Text-Teile z.B. löschen kann.
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.
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!