einzelne Zeilen in einem Textfeld fett drucken
Thomas Porath
Hallo,ich habe die Anschrift in einer Textbox mit Hilfe von diesem Script:
If Document("U_anrede")="Herr" Then
BillToAdress.Value = "Herrn" + vbcrlf
Else
BillToAdress.Value = Document("U_anrede") + vbcrlf
End If
If Document("U_anrede")<> "Firma" Then
BillToAdress.Value += Document("U_vor_bel")&" "&Document("U_nach_bel")+ vbcrlf
Else
BillToAdress.Value += Document("CardName")+ vbcrlf
End If
If Not LD.IsEmpty(GetData("B1_Data.BillToAddress.Address2")) Then
BillToAdress.Value += GetData("B1_Data.BillToAddress.Address2")+ vbcrlf
Else
BillToAdress.Value +=""
End If
If Not LD.IsEmpty(GetData("B1_Data.BillToAddress.Address3")) Then
BillToAdress.Value += GetData("B1_Data.BillToAddress.Address3")+ vbcrlf
Else
BillToAdress.Value +=""
End If
BillToAdress.Value += LD.MultiLine(Document("Address"))
zusammengebaut, so dass die Adresse wie folgenden angedruckt wird:
Anrede
Name
BillToAddress2
BillToAddress3
Address
Jetzt muss ich aber die Anrede und den Namen fett drucken. Wie
kann ich diese beiden Zeilen, ohne eine weiteres Textbox zu verwenden, fett drucken?
Mit freundlichen Grüssen
Thomas Roland
Manuel Marhold
Hi Thomas,du schreibst das ganze in eine textbox.. In was für eine? AdvancedTextBox? RTF? Ich gehe davon aus, dass du die normale Textbox aus dem Standarddokument verwendest..
Also mein Vorschlag:
Die "BillToAdress"-Textbox durch eine Advanced-TextBox ersetzen.
Dann den Code wie folgt:
Dim addressstring As String=""
If Document("U_anrede")="Herr" Then
addressstring = "Herrn" + "
"
Else
addressstring = "" + Document("U_anrede") + "" + "
"
End If
If Document("U_anrede")<> "Firma" Then
addressstring += Document("U_vor_bel")&" "&Document("U_nach_bel")+ "
"
Else
addressstring += "" + Document("CardName") + "" + "
"
End If
If Not LD.IsEmpty(GetData("B1_Data.BillToAddress.Address2")) Then
addressstring += GetData("B1_Data.BillToAddress.Address2")+ "
"
Else
addressstring +=""
End If
If Not LD.IsEmpty(GetData("B1_Data.BillToAddress.Address3")) Then
addressstring += GetData("B1_Data.BillToAddress.Address3")+ "
"
Else
addressstring +=""
End If
addressstring += LD.MultiLine(Document("Address")).Replace(Chr(10),"
")
BillToAdress.Value = addressstring
addressstring = Nothing
Habe den kompletten Code nicht getestet, aber das mit dem "" geht. Und als Zeilenumbruch "
" nutzen.
Noch ein Hinweis: Wenn der Adressname gändert wird, dann kann er die Adresse nicht mehr aufbauen! Wir haben das gleiche Problem bei einem Kunden. Der Adressname darf nicht geändert werden, da Sonst der Bezug zu dem Datensatz fehlt!
Habe bei SAP schon angefragt ob die nicht die Felder Addressname 1, Addressname 2 und Addressname 3 im Bereich der Adressformate freischalten, aber leider ohne Rückmeldung.
Gruß
Manuel
Thomas Porath
Hallo Manuel,ich hatte die normal Textbox verwendet.
Der von dir gesendete Code funktioniert, bis auf einen kleinen Fehler, und es ist genau das, was ich gesucht habe.
In der Zeile:
BillToAdress.Value = addressstring
muss es
BillToAdress.Text = addressstring
heissen.
Trotzdem Danke für deine Hilfe.
In wie weit wirkt sich eine Änderung der Andressstammdaten aus? Sollte die Adresse dann nicht mit den neuen Daten aufgebaut werden?
Gruß
Thomas
Manuel Marhold
Hi Thomas,wenn im GP-Stamm der Adressname geändert wird hat dies nur Auswirkungen auf Dokumente in denen der alte Adressname steht. Da dein Code die Adresse zur Laufzeit des Drucks anhand des BillToAdress-Codes aus der Datenbank auszulesen (B1_Data.BillToAddress.Address3 entspricht SELECT AddressName3 FROM CRD1 WHERE CardCode= AND AddressName=).
Gruß
Manuel
Sascha Balke
Hallo Zusammen 8)Da ich grad Stolz wie Oskar bin :D das ich das so geschafft habe, wie ich es wollte und wir ja alle voneinander lernen, möchte ich euch mein Script nicht vorenthalten.
Dim addressstring As String=""
'GP Anrede (aus ORD1) - UDF
If Not LD.IsEmpty(GetData("B1_Data.BillToAddress.U_EISG_GPA_Ard")) Then
addressstring =""+ GetData("B1_Data.BillToAddress.U_EISG_GPA_Ard")+ ""+ "
"
Else
addressstring +=""
End If
'GP Name
addressstring += "" + Document("CardName") + "" + "
"
'GP Fremdsprachenname
If Not LD.IsEmpty(GetData("B1_Data.BusinessPartner.CardFName")) Then
addressstring += GetData("B1_Data.BusinessPartner.CardFName")+ "
"
Else
addressstring +=""
End If
'GP Adresszeile2 (aus ORD1)
If Not LD.IsEmpty(GetData("B1_Data.BillToAddress.Address2")) Then
addressstring += GetData("B1_Data.BillToAddress.Address2")+ "
"
Else
addressstring +=""
End If
'GP Adresszeile3 (aus ORD1)
If Not LD.IsEmpty(GetData("B1_Data.BillToAddress.Address3")) Then
addressstring += GetData("B1_Data.BillToAddress.Address3")+ "
"
Else
addressstring +=""
End If
'Wenn es eine Ausgangsrechnung ist, soll nicht der Ansprechpartner angedruckt werden, sondern nur der Text "Buchhaltung"
If (GetData("LD.Par.FormType")="133") Then
addressstring += GetData("LD.Txt.M0002525")+ "
"
Else
'Anrede des Ansprechpartners - UDF (inkl. Leerzeichen)
If Not LD.IsEmpty(Document("DocumentDocumentContactPerson.U_EISG_GAP_Ard")) Then
addressstring += Document("DocumentDocumentContactPerson.U_EISG_GAP_Ard")+ " "
Else
addressstring +=""
End If
'Titel des Ansprechpartners (inkl. Leerzeichen)
If Not LD.IsEmpty(Document("DocumentDocumentContactPerson.Title")) Then
addressstring += Document("DocumentDocumentContactPerson.Title")+ " "
Else
addressstring +=""
End If
'Ansprechpartner aus Beleg
If Not LD.IsEmpty(Document("DocumentDocumentContactPerson.Name")) Then
addressstring += Document("DocumentDocumentContactPerson.Name")+ "
"
Else
addressstring +=""
End If
'Abteilung (Position in SBO)
If Not LD.IsEmpty(Document("DocumentDocumentContactPerson.Position")) Then
addressstring += Document("DocumentDocumentContactPerson.Position")+ "
"
Else
addressstring +=""
End If
End If
'Adresse aus Beleg - Unbedingt darauf achten, das die AdvancedTextBox den Namen "BillToAdress" trägt.
addressstring += LD.MultiLine(Document("Address")).Replace(Chr(10),"
")
BillToAdress.Text = addressstring
addressstring = Nothing
Habe das Script von Manuel (danke dir) als Leidfaden genutzt und viel Zeit und Schweiss investiert. Vielleicht kann ich euch damit auch ein wenig helfen.
Danke EUCH - Ihr seit super!
Gruß
Sascha
0
Please sign in to leave a comment.
Comments
0 comments