Kopieren
von Textblöcken
Via Service einen Textblock zu kopieren hat den
Vorteil, dass dessen Format bestehen bleibt und die Länge des Textblocks
für F-Script nicht relevant ist.
Beispiel
Kopieren eines
Adresstextblocks von einem Kunden zu einem anderen Kunden:
/Text-Holen
# ********************Textblock Holen*******************************
# 1. Textblock 101 des Kunden 15 holen.
«XSER(getAddrText:GetBo)»
«XSER(getAddrText:addArg=AddrText)»
«XSER(getAddrText:addArg=«ADRNR»,101)»
«XSER(getAddrText:addArg=e)»
«XSER(getAddrText:addArg=1)»
«XSER(getAddrText:addArg=1)»
«XSER(getAddrText:addArg=2)»
«XSER(getAddrText:addArg=)»
«XSER(getAddrText:addArg=AddrText.Text)»
#
# Service Ausführen
«nXSER(getAddrText:execute>getAddrTextRes)\A»
#
# 2. Textblock ausgeben (Nicht notwendig, hier aber als Beispiel.)
«XRES(getAddrTextRes:AddrText.Text,,W80)\A»
#
# 3. Speichern des Textblockes in eine Variable zur weiteren Verwendung
«nXRES(getAddrTextRes:AddrText.Text>VarTextBlock)\A»
#
# ******************** Vorbereitung zum Kopieren des Textblockes ***********************
# 4. In die Variable TextToSave das addArg AddrText.Text=@ speichern
«nX(TextToSave=AddrText.Text=@)»
#
# 5. Den Textblock in die Variable TextToSave anhängen
«nX(TextToSave+VarTextBlock)»
#
# ******************* TextBlock 101 auf den Kunden 20 speichern *************************
# 6. Mittels Save Bo den Textblock speichern
«XSER(setAddrText:SaveBo)»
«XSER(setAddrText:addArg=AddrText)»
«XSER(setAddrText:addArg=20,101)» # BoId des Textblocks
«XSER(setAddrText:addArg=e)»
«XSER(setAddrText:addArg=)»
«XSER(setAddrText:addArg=1)» # Mutieren
«XSER(setAddrText:addArg=)»
«XSER(setAddrText:addArg=2)» # Speichern unter Berücksichtigung der BO-Attr Redef.
«XSER(setAddrText:addArg=1)» # Protokoll = ja
«XSER(setAddrText:addArg=)»
«XSER(setAddrText:addArg=AddrText.Text)» # Rückgabe: Der gespeicherte Text.
#
# 7. Als Wertzuweisungsargument muss hier die Variable verwendet werden.
# Anstelle von "addArg=" muss "arg,Anz. XSER Position<" verwendet werden.
# Damit wird der gesamte Textblock als Argument verwendet.
«XSER(setAddrText:arg,11<TextToSave)»
#
# Service Ausführen
«nXSER(setAddrText:execute>setAddrTextRes)\A»
# Prüfen des SaveBoStateCd
«z~XRES(setAddrTextRes:SaveBoStateCd)=0\N»Fehler: «XRES(setAddrTextRes:SaveBoInfo)»
# ************************ Ende kopiert ******************************
/
Konditionstext von einem Verkaufsdokument auf ein anderes
kopieren.
/KondText-Holen
#
# 1. Konditionstext auslesen.
«XSER(getSalDocCondText:GetBo)»
«XSER(getSalDocCondText:addArg=SalDocCondText)»
«XSER(getSalDocCondText:addArg=«AUF-DOKINR»,25)»
«XSER(getSalDocCondText:addArg=e)»
«XSER(getSalDocCondText:addArg=1)»
«XSER(getSalDocCondText:addArg=1)»
«XSER(getSalDocCondText:addArg=2)»
«XSER(getSalDocCondText:addArg=)»
«XSER(getSalDocCondText:addArg=SalDocCondText.Text)»
# Service Ausführen
«nXSER(getSalDocCondText:execute>getSalDocCondTextRes)\A»
#
# 2. Konditionstext zur weiteren Verwendung in Variable speichern.
«nXRES(getSalDocCondTextRes:SalDocCondText.Text>VarTextBlock)\A»
#
# ******************** Vorbereitung zum Kopieren des Textblockes ***********************
# 3. In die Variable TextToSave den String "SalDocCondText.Text=@" speichern.
«nX(TextToSave=SalDocCondText.Text=@)»
#
# 4. Den vorher ausgelesenen Konditionstext an die Variable TextToSave hanhängen
«nX(TextToSave+VarTextBlock)»
#
# ******************* Konditionstext auf Dokument speichern ****************************
# 5. Mittels Save Bo den Textblock speichern
«XSER(setSalDocCondText:SaveBo)»
«XSER(setSalDocCondText:addArg=SalDocCondText)»
«XSER(setSalDocCondText:addArg=)»
«XSER(setSalDocCondText:addArg=e)»
«XSER(setSalDocCondText:addArg=)»
«XSER(setSalDocCondText:addArg=2)»
«XSER(setSalDocCondText:addArg=)»
«XSER(setSalDocCondText:addArg=0)»
«XSER(setSalDocCondText:addArg=1)»
«XSER(setSalDocCondText:addArg=)»
«XSER(setSalDocCondText:addArg=SalDocCondText.Text)»
«XSER(setSalDocCondText:addArg=SalDocCondText.SalDocInternalNo=@«X(DokIAB)»)»
«XSER(setSalDocCondText:addArg=SalDocCondText.Name=@Bemerkung)»
«XSER(setSalDocCondText:addArg=SalDocCondText.Number=@25)»
#
# 7. Als Wertzuweisungsargument muss hier die Variable verwendet werden.
# Anstelle von "addArg=" muss "arg,Anz. XSER Position<" verwendet werden.
# Damit wird der gesamte Textblock als Argument verwendet.
«XSER(setSalDocCondText:arg,14<TextToSave)»
#
# Service Ausführen
«nXSER(setSalDocCondText:execute>setSalDocCondTextRes)\A»
# Prüfen des SaveBoStateCd
«z~XRES(setSalDocCondTextRes:SaveBoStateCd)=0\N»*>Fehler: «XRES(setSalDocCondTextRes:SaveBoInfo)»
# ************************ Ende Kopiervorgang ******************************
/