PMS32 Online- Hilfereferenz

MY.FUNCTIONS.STRINGS

Strings - Spezielle Stringfunktionen


Hilfe: Stringfunktionen
Spezielle Stringfunktionen


Code: Stringfunktionen
*/ Kurzbeispiel für den Zugriff auf diese Struktur
*/ Der Zugriff erfolgt über: My.Functions.Strings
*/ Wird dieses Objekt in einem REPLACE oder einer Schleife SCAN ... ENDSCAN | FOR ... NEXT benötigt
*/ so sollte vor der Schleife die Objektstruktur in eine Variable geholt werden!
*/ Die Ausführungsgeschwindigkeit wird dadurch sehr vergrößert!
*/ Beispiel:
*/ Definieren einer LOKALEN Variablen
LOCAL loStrings AS My.Functions.Strings
*/ Setzen der Variablen
loStrings = My.Functions.Strings
*/ Jetzt erst die Schleifen durchlaufen... man beachte ALL, dass können ne Menge Sätze sein...
REPLACE ALL Feldname1 WITH loStrings.Function1(),Feldname2 WITH loStrings.Function1(), ...
*/ Oder in einer Schleife...
SCAN
	lvValue = loStrings.Function(Alias.Spalte) + 25
	lvValue = loStrings.Function2(m.lvValue)
	REPLACE Feldname WITH m.lvValue,...
ENDSCAN
*/ Es sind auch geschachtelte Aufrufe möglich...

Memberliste von Strings


Liste der Methoden von Strings


ATPOS() - Position einer Zeichenkette

Rückgabe: [Number], Sucht eine Zeichenkette innerhalb einer gegebenen Zeichenkette ab einer best. Position. Siehe auch AT()
Hilfeinformation
Rückgabe: [Number], Sucht eine Zeichenkette innerhalb einer gegebenen Zeichenkette ab einer best. Position. Siehe auch AT()

Aufrufinformation
Number = My.Functions.Strings.ATPOS(tcSearchString AS STRING, tcString AS STRING, tiPos AS INTEGER, tiOccurence AS INTEGER, tlUpper AS Boolean)
Number = My.Functions.Strings.ATPOS(tcSearchString,tcString,tiPos,tiOccurence,tlUpper)
Codeinformation
*/ Beispiel:
LOCAL liPos AS Integer,lcString AS String,lcSuche AS String
lcString = "Michael Bergner ist der Programmierer für VFP und Dirk Jakschik ist der Programmierer für JAVA"
lcSuche  = "Programmierer"
liPos = My.Functions.Strings.ATPOS(m.lcSuche,m.lcString,1) 			&& Gibt 25 zurück
liPos = My.Functions.Strings.ATPOS(m.lcSuche,m.lcString,m.liPos+1)	&& Gibt 73 zurück


ATPOSC() - Position einer Zeichenkette

Rückgabe: [Number], Sucht eine Zeichenkette innerhalb einer gegebenen Zeichenkette ab einer best. Position. Siehe auch ATC()
Hilfeinformation
Rückgabe: [Number], Sucht eine Zeichenkette innerhalb einer gegebenen Zeichenkette ab einer best. Position. Siehe auch ATC()
Bei dieser Methode können auch 16Bit Zeichen verarbeitet werden

Aufrufinformation
Number = My.Functions.Strings.ATPOSC(tcSearchString AS STRING, tcString AS STRING, tiPos AS INTEGER, tiOccurence AS INTEGER, tlUpper AS Boolean)
Number = My.Functions.Strings.ATPOSC(tcSearchString,tcString,tiPos,tiOccurence,tlUpper)
Codeinformation
*/ Beispiel:
LOCAL liPos AS Integer,lcString AS String,lcSuche AS String
lcString = "Michael Bergner ist der Programmierer für VFP und Dirk Jakschik ist der Programmierer für JAVA"
lcSuche  = "Programmierer"
liPos = My.Functions.Strings.ATPOSC(m.lcSuche,m.lcString,1) 		&& Gibt 25 zurück
liPos = My.Functions.Strings.ATPOSC(m.lcSuche,m.lcString,m.liPos+1)	&& Gibt 73 zurück

CsvToString() - CSV nach String konvertieren

Wenn ein CSV-String kommt....
Hilfeinformation

Aufrufinformation
Variant = My.Functions.Strings.CsvToString(tcCSV AS STRING)
Variant = My.Functions.Strings.CsvToString(tcCSV)
Codeinformation


DigitsOnly() - Aus einem String nur die Zahlen incl. Trennzeichen

Rückgabe:[String], Gibt aus einem String nur die Zahlen 0-9 zurück. Wenn tcPoint mitgegeben wird werden auch diese Sonderzeichen '.,' als Zahl gewertet!
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.DigitsOnly(tcString AS STRING , tcPoint AS STRING)
String = My.Functions.Strings.DigitsOnly(tcString,tcPoint)
Codeinformation


Evaluate() - Ausführen eines Befehls

Mit Setzen dieser Property auf .T. kann die Form zentriert werden.
Hilfeinformation
Ausführen eines VFP-Befehls mit EVALUATE().
Achtung! Eventuell müssen Variablen als PRIVATE deklariert werden!ENDTEXT
*
TEXT TO lcMessage NOSHOW TEXTMERGE
Ausführen eines VFP-Befehls mit EVALUATE().

Aufrufinformation
Variant = My.Functions.Strings.Evaluate(pcExpression AS STRING,pvDefault AS Variant,tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant, tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant)
Variant = My.Functions.Strings.Evaluate(pcExpression,pvDefault,tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
Codeinformation
*/ Mit Evaluate kann eine Befehlszeile ausgeführt werden
*/ Eventuell benutzte Variablen sind PRIVATE zu deklarieren
PRIVATE pnVar1 AS Number , pnVar2 AS Number
LOCAL lnVar AS Number
STORE 2 TO pnVar1,pnVar2
lnVar = My.Functions.Strings.Evaluate([m.pnVar1+m.pnVar2])
WAIT WINDOW m.lnVar		&& Ergibt 4...	ENDTEXT

ExecScript() - Ausführen eines VFP-Scripts

Ausführen eines VFP-Scripts incl. der Prüfung, ob ein ALIAS besteht.
Hilfeinformation
Ausführen eines VFP-Scripts incl. der Prüfung, ob ein ALIAS besteht.

Aufrufinformation
Variant = My.Functions.Strings.ExecScript(_es_pcAlias AS STRING,_es_pcScript AS STRING,_es_tlBoolean AS Boolean, _es_tvP1 AS Variant,_es_tvP2 AS Variant,_es_tvP3 AS Variant,_es_tvP4 AS Variant,_es_tvP5 AS Variant,_es_tvP6 AS Variant, _es_tvP7 AS Variant,_es_tvP8 AS Variant,_es_tvP9 AS V)
Variant = My.Functions.Strings.ExecScript(_es_pcAlias,_es_pcScript,_es_tlBoolean,_es_tvP1,_es_tvP2,_es_tvP3,_es_tvP4,_es_tvP5,_es_tvP6,_es_tvP7,_es_tvP8,_es_tvP9)
Codeinformation
*/ Mit EXECSCRIPT kann ein VFP-Script ausgeführt werden
LOCAL lcScript AS String,lnVar1 AS Number,lnVar2 AS Number,lnVar AS Number
TEXT TO lcScript NOSHOW TEXTMERGE
LPARAMETERS tnVar1 AS Number @,tnVar2 AS Number @
tnVar1 = m.tnVar1 + 1
tnVar2 = m.tnVar2 - 2
RETURN m.tnVar1 + m.tnVar2
ENDTEXT
*/ Vorbelegen der Variablen (Parameter)
STORE 2 TO lnVar1,lnVar2
lnVar = My.Functions.Strings.ExecScript("",m.lcScript,0,@lnVar1,@lnVar2)
*/ und das Ergebnis...
WAIT WINDOW m.lnVar
WAIT WINDOW m.lnVar1
WAIT WINDOW m.lnVar2

ExecScriptP() - Ausführen eines VFP-Scripts

Ausführen eines VFP-Scripts incl. PARAMETER (Collection)
Hilfeinformation
Ausführen eines VFP-Scripts incl. PARAMETER (Collection)
Als Parameter wird eine Collection mit Informationen übergeben!

Aufrufinformation
Variant = My.Functions.Strings.ExecScriptP(tcScript AS STRING,toPara AS COLLECTION)
Variant = My.Functions.Strings.ExecScriptP(tcScript,toPara)
Codeinformation
*/ Mit EXECSCRIPTP kann ein VFP-Script ausgeführt werden
LOCAL lcScript AS String,lnVar AS Number,loColl AS Collection
loColl = CREATEOBJECT("Collection")
loColl.Add(2,"Var1")
loColl.Add(2,"Var2")
TEXT TO lcScript NOSHOW TEXTMERGE
LPARAMETERS toColl AS Collection
RETURN toColl.Item("Var1") + toColl.Item("Var2")
ENDTEXT
lnVar = My.Functions.Strings.ExecScriptP(m.lcScript,m.loColl)
*/ und das Ergebnis...
WAIT WINDOW m.lnVar

FORCESTEM() - Austausch des Dateinamens

Rückgabe:[String], Austausch des Dateinamens unter Bebehaltung des Pfades und des Suffix
Hilfeinformation
Rückgabe:[String], Austausch des Dateinamens unter Bebehaltung des Pfades und des Suffix

Aufrufinformation
String = My.Functions.Strings.FORCESTEM(tcFilename AS STRING,tcName AS STRING)
String = My.Functions.Strings.FORCESTEM(tcFilename,tcName)
Codeinformation
*/ Beispiel:
LOCAL lcFile1 AS String,lcFile2 AS String
lcFile1 = "C:\TMP\Datei1.txt"
lcFile2 = My.Functions.Strings.FORCESTEM(m.lcFile1,"Datei2")	&& Gibt "C:\TMP\Datei2.txt" zurück

FieldGetCC() - Create Statement

Rückgabe:[String], Gibt einen String für Create Cursor abhängig vom Feldtyp zurück.
Hilfeinformation
Rückgabe:[String], Gibt einen String für Create Cursor abhängig vom Feldtyp zurück.

Aufrufinformation
String = My.Functions.Strings.FieldGetCC(tcName AS String, tcType AS String , tnSize AS Integer , tnDec AS Integer)
String = My.Functions.Strings.FieldGetCC(tcName,tcType,tnSize,tnDec)
Codeinformation
*/ Beispiel:
*/ Strings einer bestimmten Länge
WAIT WINDOW My.Functions.Strings.FieldGetCC("char","C",10)
WAIT WINDOW My.Functions.Strings.FieldGetCC("varchar","V",10)
WAIT WINDOW My.Functions.Strings.FieldGetCC("varbinary","Q",10)
*/ Numerische Werte
WAIT WINDOW My.Functions.Strings.FieldGetCC("number","N",10,2)
WAIT WINDOW My.Functions.Strings.FieldGetCC("float","F",10,2)
WAIT WINDOW My.Functions.Strings.FieldGetCC("double","B",0,3)
*/ Felder einer festen Länge
WAIT WINDOW My.Functions.Strings.FieldGetCC("logical","L")
WAIT WINDOW My.Functions.Strings.FieldGetCC("date","D")
WAIT WINDOW My.Functions.Strings.FieldGetCC("datetime","T")
WAIT WINDOW My.Functions.Strings.FieldGetCC("integer","I")
WAIT WINDOW My.Functions.Strings.FieldGetCC("currency","Y")
WAIT WINDOW My.Functions.Strings.FieldGetCC("memo","M")
WAIT WINDOW My.Functions.Strings.FieldGetCC("blob","W")
WAIT WINDOW My.Functions.Strings.FieldGetCC("general","G")
*/ Sonderfeld MEMO NOCPTRANS
WAIT WINDOW My.Functions.Strings.FieldGetCC("memobinary","R")

FieldGetCast() - Gibt einen CAST(...) für SQL's zurück

Rückgabe:[String], Gibt einen kompletten CAST-String zurück.
Hilfeinformation
Rückgabe:[String], Gibt einen kompletten CAST-String zurück.

Aufrufinformation
String = My.Functions.Strings.FieldGetCast(tcName, txval, tctype, tndec, tnSize)
String = My.Functions.Strings.FieldGetCast(tcName,txval,tctype,tndec,tnSize)
Codeinformation
*/ Beispiel:
*/ Strings einer bestimmten Länge
WAIT WINDOW My.Functions.Strings.FieldGetCast("char",0,"C",0,10)
*/ Siehe auch .GetCastString()

FieldGetSQLEmpty() - Leerer SQL's String

Rückgabe:[String], Erstellt einen String für ein leeres SQL-FEld abhängig vom Feldtyp.
Hilfeinformation
Rückgabe:[String], Erstellt einen String für ein leeres SQL-FEld abhängig vom Feldtyp.

Aufrufinformation
String = My.Functions.Strings.FieldGetSQLEmpty(tcName, tcType, tnSize, tnDec)
String = My.Functions.Strings.FieldGetSQLEmpty(tcName,tcType,tnSize,tnDec)
Codeinformation
*/ Beispiel:
*/ Strings einer bestimmten Länge
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("char","C",10)
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("varchar","V",10)
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("varbinary","Q",10)
*/ Numerische Werte
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("number","N",10,2)
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("float","F",10,2)
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("double","B",0,3)
*/ Felder einer festen Länge
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("logical","L")
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("date","D")
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("datetime","T")
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("integer","I")
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("currency","Y")
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("memo","M")
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("blob","W")
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("general","G")
*/ Sonderfeld MEMO NOCPTRANS
WAIT WINDOW My.Functions.Strings.FieldGetSQLEmpty("memobinary","R")

FieldGetTypeCC() - Ermittelt den Feldtyp aus einer Value

Rückgabe:[String], Gibt den Typ einer Variable oder Property im Format x(n,m) zurück, der für Create Cursor oder CAST() verwendet werden kann.
Hilfeinformation
Rückgabe:[String], Gibt den Typ einer Variable oder Property im Format x(n,m) zurück, der für Create Cursor oder CAST() verwendet werden kann.

Aufrufinformation
String = My.Functions.Strings.FieldGetTypeCC(tvValue AS Variant)
String = My.Functions.Strings.FieldGetTypeCC(tvValue)
Codeinformation


FieldSetTypeValues() - Gibt die felddefinition für eine Value zurück

Rückgabe:[Boolean], Setzt die Werte Type, Size und Decimals anhand der übergebenen Variable.
Hilfeinformation
Rückgabe:[Boolean], Setzt die Werte Type, Size und Decimals anhand der übergebenen Variable.

Aufrufinformation
Boolean = My.Functions.Strings.FieldSetTypeValues(txVal AS Variant , tcType AS STRING @, tnSize AS INTEGER @, tnDec AS INTEGER @)
Boolean = My.Functions.Strings.FieldSetTypeValues(txVal,@tcType,@tnSize,@tnDec)
Codeinformation


FilterString() - Gefilterter String

Rückgabe:[String], Gibt einen gefilterten String zurück. Beispiel: ("BE-2011/15-123","0123456789",.T.) => "201115123", hier würden nur die angegebenen Zahlen gefiltert.
Hilfeinformation
Rückgabe:[String], Gibt einen gefilterten String zurück. Beispiel: ("BE-2011/15-123","0123456789",.T.) => "201115123", hier würden nur die angegebenen Zahlen gefiltert.

Aufrufinformation
String = My.Functions.Strings.FilterString(tcString AS String,tcFilterChars AS String,tlNoBlanks AS Boolean)
String = My.Functions.Strings.FilterString(tcString,tcFilterChars,tlNoBlanks)
Codeinformation
*/ Beispiel:
WAIT WINDOW "!"+My.Functions.Strings.FilterString("BE-2014/0074-SV","0123456789",.T.)+"!"
WAIT WINDOW "!"+My.Functions.Strings.FilterString("BE-2014/0074-SV","0123456789",.F.)+"!"
WAIT WINDOW "!"+My.Functions.Strings.FilterString("BE-2014/0074-SV","BE0123456789",.T.)+"!"

FilterToWhere() - Filter nach WHERE konvertieren

Rückgabe:[String], Wandelt eine FIlterbedingung FILTER() bzw. SET('FIlter') in eine SQL WHERE Bedingung um
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.FilterToWhere(tcFilter AS STRING)
String = My.Functions.Strings.FilterToWhere(tcFilter)
Codeinformation


GetBlankFieldValue() - Wert für LEER zurückgeben

Rückgabe:[Variant], Gibt einen "leeren" Wert für den angegebenen Feldtyp.
Hilfeinformation
Rückgabe:[Variant], Gibt einen "leeren" Wert für den angegebenen Feldtyp.

Aufrufinformation
Variant = My.Functions.Strings.GetBlankFieldValue(tcType AS String)
Variant = My.Functions.Strings.GetBlankFieldValue(tcType)
Codeinformation
*/ Beispiel:
WAIT WINDOW My.Functions.Strings.GetBlankFieldValue("C")
WAIT WINDOW My.Functions.Strings.GetBlankFieldValue("N")
WAIT WINDOW My.Functions.Strings.GetBlankFieldValue("L")
WAIT WINDOW My.Functions.Strings.GetBlankFieldValue("D")
WAIT WINDOW My.Functions.Strings.GetBlankFieldValue("G")

GetCastString() - SQL - CAST

Rückgabe:[String], Gibt einen Cast-String für die angegebenen Werte zurück.
Hilfeinformation
Rückgabe:[String], Gibt einen Cast-String für die angegebenen Werte zurück.

Aufrufinformation
String = My.Functions.Strings.GetCastString(tcName, tcType, tnSize, tnDec)
String = My.Functions.Strings.GetCastString(tcName,tcType,tnSize,tnDec)
Codeinformation
*/ Beispiel:
*/ Strings einer bestimmten Länge
WAIT WINDOW My.Functions.Strings.GetCastString("char","C",10)
WAIT WINDOW My.Functions.Strings.GetCastString("varchar","V",10)
WAIT WINDOW My.Functions.Strings.GetCastString("varbinary","Q",10)
*/ Numerische Werte
WAIT WINDOW My.Functions.Strings.GetCastString("number","N",10,2)
WAIT WINDOW My.Functions.Strings.GetCastString("float","F",10,2)
WAIT WINDOW My.Functions.Strings.GetCastString("double","B",0,3)
*/ Felder einer festen Länge
WAIT WINDOW My.Functions.Strings.GetCastString("logical","L")
WAIT WINDOW My.Functions.Strings.GetCastString("date","D")
WAIT WINDOW My.Functions.Strings.GetCastString("datetime","T")
WAIT WINDOW My.Functions.Strings.GetCastString("integer","I")
WAIT WINDOW My.Functions.Strings.GetCastString("currency","Y")
WAIT WINDOW My.Functions.Strings.GetCastString("memo","M")
WAIT WINDOW My.Functions.Strings.GetCastString("blob","W")
WAIT WINDOW My.Functions.Strings.GetCastString("general","G")
*/ Sonderfeld MEMO NOCPTRANS
WAIT WINDOW My.Functions.Strings.GetCastString("memobinary","R")


GetEMailAdresses() - E-Mail Adresse prüfen

Rückgabe:[String], Ermittelt E-Mailadressen aus einem String
Hilfeinformation
Prüft E-Mail Adressen auf syntaktische Gültigkeit und gibt diese mit Semikolon getrennt zurück.

Aufrufinformation
String = My.Functions.Strings.GetEMailAdresses(tcEMails AS STRING)
String = My.Functions.Strings.GetEMailAdresses(tcEMails)
Codeinformation
*/ Beispiel:
WAIT WINDOW My.Functions.Strings.GetEMailAdresses("mailto:mbb@compelec.de;mailto:dja@compelec.de")

GetField4Expr() - Feldname aus einer Funktion ermitteln

Rückgabe:[String], Ermittelt einen Feldnamen (Variable) aus einer einfachen Funktion.
Hilfeinformation
Rückgabe:[String], Ermittelt einen Feldnamen (Variable) aus einer einfachen Funktion.

Aufrufinformation
String = My.Functions.Strings.GetField4Expr(tcexpr)
String = My.Functions.Strings.GetField4Expr(tcexpr)
Codeinformation
*/ Beispiel:
WAIT WINDOW My.Functions.Strings.GetField4Expr("DTOS(m.gDatum)")

GetFirstVarFromExpression() - Erste Variable eines Ausdrucks ermitteln

Rückgabe:[String], Ermittelt den Ersten Ausdruck (Variable) einer zusammengesetzten Expression. Beispiel: idb01+UPPER(IDC61) => idb01
Hilfeinformation
Rückgabe:[String], Ermittelt den Ersten Ausdruck (Variable) einer zusammengesetzten Expression. Beispiel: idb01+UPPER(IDC61) => idb01

Aufrufinformation
String = My.Functions.Strings.GetFirstVarFromExpression(tcExpression AS STRING)
String = My.Functions.Strings.GetFirstVarFromExpression(tcExpression)
Codeinformation
*/ Beispiel:
WAIT WINDOW My.Functions.Strings.GetFirstVarFromExpression("DTOS(m.gDatum)+idc08")

GetLen4Expr() - Stringfunktionen

Rückgabe:[Integer], Ermittelt die Feldlänge einer Expression.
Hilfeinformation
Rückgabe:[Integer], Ermittelt die Feldlänge einer Expression.

Aufrufinformation
Integer = My.Functions.Strings.GetLen4Expr(tcexpr, tcfld)
Integer = My.Functions.Strings.GetLen4Expr(tcexpr,tcfld)
Codeinformation


GetParameters() - Parameter to Collection

Wandelt übergebene Parameter in eine Collection um.
Hilfeinformation
Wandelt übergebene Parameter in eine Collection um.
Umkehrfunktion zu SetParameters.

Aufrufinformation
Variant = My.Functions.Strings.GetParameters(tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant,tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant)
Variant = My.Functions.Strings.GetParameters(tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
Codeinformation
*/ Hier können mehrere Parameter in eine Collection übertragen werden
LOCAL loCollection AS Collection , lni AS Integer , lcNames AS String
loCollection = My.Functions.Strings.GetParameters(1,DATE(),TIME())
WAIT WINDOW m.loCollection.Count		&& Anzahl der Werte (3)
*/ Die Namen der Parameter bestimmen
lcNames = ""
FOR m.lni = 1 TO m.loCollection.Count
	lcNames = m.lcNames + ";" + m.loCollection.GetKey(m.lni)
NEXT m.lni
WAIT WINDOW SUBSTR(m.lcNames,2)

GetParametersCount() - Parameter to Collection

Wandelt übergebene Parameter in eine Collection um.
Hilfeinformation
Wandelt übergebene Parameter in eine Collection um.
Jedoch wird als 'erster' Parameter die Anzahl der Parameter mitgegeben.

Aufrufinformation
Variant = My.Functions.Strings.GetParametersCount(tnCnt AS Number,tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant,tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant)
Variant = My.Functions.Strings.GetParametersCount(tnCnt,tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
Codeinformation
*/ Hier können mehrere Parameter in eine Collection übertragen werden
*/ Als Beispiel kann nur der Aufruf eines Scripts / einer Methode dienen
LPARAMETERS tp1 AS Variant , tp2 AS Variant , tp3 AS Variant 	&& Es könnten mehr sein!
LOCAL loCollection AS Collection , lni AS Integer
lni = PCOUNT()		&& Wieviele Parameter wurden übergeben?
loCollection = My.Functions.Strings.GetParametersCount(m.lni,m.tp1,m.tp2,m.tp3)
WAIT WINDOW m.loCollection.Count		&& Anzahl der Werte (?)

GetPhoneNumber() - Prüfung einer Telefonnummer auf syntaktische Gültigkeit

Rückgabe:[String], Gibt eine gültige Telefonnummer zurück
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.GetPhoneNumber(tcNumber AS STRING , tlKanonisch AS Boolean)
String = My.Functions.Strings.GetPhoneNumber(tcNumber,tlKanonisch)
Codeinformation
*/ Beispiel:
WAIT WINDOW My.Functions.Strings.GetPhoneNumber("06034-9403/0")
WAIT WINDOW STRTRAN(My.Functions.Strings.GetPhoneNumber("06034-9403/0")," ")
*/ Mit Ländervorwahl: Bei der Ländervorwahl kann die Ausgabe nur dann erfolgen, wenn mit +... gearbeitet wird!
WAIT WINDOW My.Functions.Strings.GetPhoneNumber("+496034-9403/0")
WAIT WINDOW My.Functions.Strings.GetPhoneNumber("+496034-9403/0",.T.)

GetTypeCC() - Rückgabe Felddefinition

Rückgabe:[String], Baut den String für Create Cursor oder CAST() anhand der angegebenen Werte zusammen.
Hilfeinformation
Rückgabe:[String], Baut den String für Create Cursor oder CAST() anhand der angegebenen Werte zusammen.

Aufrufinformation
String = My.Functions.Strings.GetTypeCC(tcType AS STRING , tnSize AS INTEGER , tnDec AS INTEGER)
String = My.Functions.Strings.GetTypeCC(tcType,tnSize,tnDec)
Codeinformation
*/ Beispiel:
*/ Strings einer bestimmten Länge
WAIT WINDOW My.Functions.Strings.GetTypeCC("C",10)
WAIT WINDOW My.Functions.Strings.GetTypeCC("V",10)
WAIT WINDOW My.Functions.Strings.GetTypeCC("Q",10)
*/ Numerische Werte
WAIT WINDOW My.Functions.Strings.GetTypeCC("N",10,2)
WAIT WINDOW My.Functions.Strings.GetTypeCC("F",10,2)
WAIT WINDOW My.Functions.Strings.GetTypeCC("B",0,3)
*/ Felder einer festen Länge
WAIT WINDOW My.Functions.Strings.GetTypeCC("L")
WAIT WINDOW My.Functions.Strings.GetTypeCC("D")
WAIT WINDOW My.Functions.Strings.GetTypeCC("T")
WAIT WINDOW My.Functions.Strings.GetTypeCC("I")
WAIT WINDOW My.Functions.Strings.GetTypeCC("Y")
WAIT WINDOW My.Functions.Strings.GetTypeCC("M")
WAIT WINDOW My.Functions.Strings.GetTypeCC("W")
WAIT WINDOW My.Functions.Strings.GetTypeCC("G")
*/ Sonderfeld MEMO NOCPTRANS
WAIT WINDOW My.Functions.Strings.GetTypeCC("R")

GetWortNum() - Ermitteln einer Zeichenkette

Rückgabe:[String], Ermittelt eine Teilzeichenkette aus einer Zeichenkette ähnlich GETWORDNUM() jedoch kann der Delimiter mehr als 1 Zeichen enthalten...
Hilfeinformation
Rückgabe:[String], Ermittelt eine Teilzeichenkette aus einer Zeichenkette ähnlich GETWORDNUM() jedoch kann der Delimiter mehr als 1 Zeichen enthalten...

Aufrufinformation
String = My.Functions.Strings.GetWortNum(tcString AS STRING,tnIndex AS NUMBER,tcDelimiter AS STRING)
String = My.Functions.Strings.GetWortNum(tcString,tnIndex,tcDelimiter)
Codeinformation
*/ Beispiel:
WAIT WINDOW My.Functions.Strings.GetWortNum("In Frankfurt, in Stuttgart, in München",2,"in")

IsEmpty() - Stringfunktionen

Rückgabe:[Boolean], Prüft eine Variablenliste auf EMPTY(). Hört auf beim ersten Vorkommen
Hilfeinformation

Aufrufinformation
Boolean = My.Functions.Strings.IsEmpty(tcVarList AS String)
Boolean = My.Functions.Strings.IsEmpty(tcVarList)
Codeinformation


JustNext() - Dateiname ohne Suffix

Rückgabe:[String], Gibt einen Dateinamen OHNE dessen Suffix zurück...
Hilfeinformation
Rückgabe:[String], Gibt einen Dateinamen OHNE dessen Suffix zurück...

Aufrufinformation
String = My.Functions.Strings.JustNext(tcFileName AS STRING)
String = My.Functions.Strings.JustNext(tcFileName)
Codeinformation
*/ Beispiel:
WAIT WINDOW My.Functions.Strings.JustNext("c:\dev\TestInfo.txt")

KillFromRight() - Löschen rechts aus einem String

Rückgabe:[String], Löscht eine Zeichen rechts in einem String, wenn diese vorhanden ist. Rückgabe ist der reduzierte String. Beispiel: ".Bergner" , "Michael.Bergner" => "Michael"
Hilfeinformation
Rückgabe:[String], Löscht eine Zeichen rechts in einem String, wenn diese vorhanden ist. Rückgabe ist der reduzierte String. Beispiel: ".Bergner" , "Michael.Bergner" => "Michael"

Aufrufinformation
String = My.Functions.Strings.KillFromRight(tcSearchValue AS String,tcString AS String)
String = My.Functions.Strings.KillFromRight(tcSearchValue,tcString)
Codeinformation
*/ Beispiel:
WAIT WINDOW My.Functions.Strings.KillFromRight("Bergner","Michael Bergner")+"!"
WAIT WINDOW RTRIM(My.Functions.Strings.KillFromRight("Bergner","Michael Bergner"))+"!"

MemoInsert() - Austausch einer Zeile im Memo

Rückgabe:[String], Tauscht eine Zeile in einem Memofeld aus und gibt den Endwert zurück
Hilfeinformation
Rückgabe:[String], Tauscht eine Zeile in einem Memofeld aus und gibt den Endwert zurück

Aufrufinformation
String = My.Functions.Strings.MemoInsert(tcMemo AS STRING,tnLine AS NUMBER,tcLine AS STRING,tlInsert AS Boolean)
String = My.Functions.Strings.MemoInsert(tcMemo,tnLine,tcLine,tlInsert)
Codeinformation
*/ Beispiel:
LOCAL lcMemo AS String
TEXT TO lcMemo NOSHOW
1. Zeile des Memofeldes
2. Zeile des Memofeldes
3. Zeile des Memofeldes
ENDTEXT
WAIT WINDOW My.Functions.Strings.MemoInsert(m.lcMemo,2,"Eingefügte Zeile...",.F.)
WAIT WINDOW My.Functions.Strings.MemoInsert(m.lcMemo,2,"Eingefügte Zeile...",.T.)

MemoLines() - Zeilen aus einem Memofeld

Rückgabe:[String], Gibt mehrere Zeilen eines Memofeldes zurück.
Hilfeinformation
Rückgabe:[String], Gibt mehrere Zeilen eines Memofeldes zurück.

Aufrufinformation
String = My.Functions.Strings.MemoLines(tcString AS String,tnLineStart AS Number,tnLineEnd AS Number)
String = My.Functions.Strings.MemoLines(tcString,tnLineStart,tnLineEnd)
Codeinformation
*/ Beispiel:
LOCAL lcMemo AS String
TEXT TO lcMemo NOSHOW
1. Zeile des Memofeldes
2. Zeile des Memofeldes
3. Zeile des Memofeldes
4. Zeile des Memofeldes
ENDTEXT
WAIT WINDOW My.Functions.Strings.MemoLines(m.lcMemo,2,3)

MemoSubstring() - Stringfunktionen

Rückgabe:[String], Gibt einen Teilstring aus einem Memofeld zurück
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.MemoSubstring(tcMemo AS String, tiStart AS Integer,tiLen AS Integer,RiNextStart AS Integer @)
String = My.Functions.Strings.MemoSubstring(tcMemo,tiStart,tiLen,@RiNextStart)
Codeinformation


MemoSubstringTrim() - Stringfunktionen

Rückgabe:[String], Wie MemoSubstring() jedoch wird der Rückgabestring getrimmt...
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.MemoSubstringTrim(tcMemo AS String, tiStart AS Integer,tiLen AS Integer,RiNextStart AS Integer @)
String = My.Functions.Strings.MemoSubstringTrim(tcMemo,tiStart,tiLen,@RiNextStart)
Codeinformation


MemoTrim() - Stringfunktionen

Rückgabe:[String], Löscht Leerzeilen und Leerzeichen vom Anfang und vom Ende einer Stringkette.
Hilfeinformation
Rückgabe:[String], Löscht Leerzeilen und Leerzeichen vom Anfang und vom Ende einer Stringkette.

Aufrufinformation
String = My.Functions.Strings.MemoTrim(tcMemo AS String)
String = My.Functions.Strings.MemoTrim(tcMemo)
Codeinformation


MemoXTrim() - Stringfunktionen

Rückgabe:[String], Löschen von Leerzeilen und Leerzeichen in allen Zeilen eines Textes.
Hilfeinformation
Rückgabe:[String], Löschen von Leerzeilen und Leerzeichen in allen Zeilen eines Textes.

Aufrufinformation
String = My.Functions.Strings.MemoXTrim(tcString AS STRING,tlDeleteEmptyLines AS Boolean,tcEndCharacter AS String)
String = My.Functions.Strings.MemoXTrim(tcString,tlDeleteEmptyLines,tcEndCharacter)
Codeinformation


NormalizeText() - Stringfunktionen

Rückgabe:[String], Normiert einen Text (Memo) auf die angegebene Zeilenlänge unter Berücksichtigung der Wortlänge. P1=tctext P2=tnmaxlen:Zeilenlänge P3=tnbit:            BIT0: Thermos anzeigen, BIT1: BIT2: frei, BIT3: Normierter Text in Zwischenablage\n
Hilfeinformation
Rückgabe:[String], Normiert einen Text (Memo) auf die angegebene Zeilenlänge unter Berücksichtigung der Wortlänge. P1=tctext P2=tnmaxlen:Zeilenlänge P3=tnbit:            BIT0: Thermos anzeigen, BIT1: BIT2: frei, BIT3: Normierter Text in Zwischenablage\n

Aufrufinformation
String = My.Functions.Strings.NormalizeText(tcText AS STRING , tnMaxLen AS INTEGER , tnBit AS INTEGER)
String = My.Functions.Strings.NormalizeText(tcText,tnMaxLen,tnBit)
Codeinformation


NumToTable() - Stringfunktionen

Rückgabe:[String], Umkehrfunktion zu TableToNum. Gibt den Tabellennamen (PMS) zurück bei Übergabe der 4-Stelligen num. Tabelleninfo
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.NumToTable(tcTableNum AS String)
String = My.Functions.Strings.NumToTable(tcTableNum)
Codeinformation


PointerToString() - Stringfunktionen

Rückgabe:[String], Gibt einen String zurück bei Angabe eines Zeigers im Speicher
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.PointerToString(tiPointer AS INTEGER)
String = My.Functions.Strings.PointerToString(tiPointer)
Codeinformation


PropRead() - Stringfunktionen

Rückgabe:[Variant], Liest eine Property aus einen String.
Hilfeinformation
Rückgabe:[Variant], Liest eine Property aus einen String.

Aufrufinformation
Variant = My.Functions.Strings.PropRead(tcprops, tcprop, tctype, tndec)
Variant = My.Functions.Strings.PropRead(tcprops,tcprop,tctype,tndec)
Codeinformation


PropWrite() - Stringfunktionen

Rückgabe:[Variant], Schreibt eine Property in einen String.
Hilfeinformation
Rückgabe:[Variant], Schreibt eine Property in einen String.

Aufrufinformation
@ = My.Functions.Strings.PropWrite(Zeiger)
@ = My.Functions.Strings.PropWrite(Zeiger)
Codeinformation


SPLItValues() - Stringfunktionen

Rückgabe:[String], Teilt eine Zeichenkette anhand einer KeyExpression auf und gibt den gesplitteten String zurück.
Hilfeinformation
Rückgabe:[String], Teilt eine Zeichenkette anhand einer KeyExpression auf und gibt den gesplitteten String zurück.

Aufrufinformation
String = My.Functions.Strings.SPLItValues(tcdbf, tckey, tcval AS STRING, tnbit AS INTEGER)
String = My.Functions.Strings.SPLItValues(tcdbf,tckey,tcval,tnbit)
Codeinformation


SetMemoryExpression() - Stringfunktionen

Rückgabe:[String], Ermittelt aus einem Ausdruck einen Ausdruck mit definiertem Alias. Z.B.: ID+ALLTRIM(FIELD) => m.ID+ALLTRIM(m.FIELD)
Hilfeinformation
Rückgabe:[String], Ermittelt aus einem Ausdruck einen Ausdruck mit definiertem Alias. Z.B.: ID+ALLTRIM(FIELD) => m.ID+ALLTRIM(m.FIELD)

Aufrufinformation
String = My.Functions.Strings.SetMemoryExpression(t_c_Expression AS STRING,t_c_Alias AS STRING,t_o_Record AS OBJECT)
String = My.Functions.Strings.SetMemoryExpression(t_c_Expression,t_c_Alias,t_o_Record)
Codeinformation


SetMemoryExpressionExt() - Stringfunktionen

Rückgabe:[String], Wie SetMemoryExpression jedoch mit Angabe einer Datasession
Hilfeinformation
Rückgabe:[String], Wie SetMemoryExpression jedoch mit Angabe einer Datasession

Aufrufinformation
String = My.Functions.Strings.SetMemoryExpressionExt(t_c_Expression AS STRING,t_c_Alias AS STRING,t_n_Session AS Number)
String = My.Functions.Strings.SetMemoryExpressionExt(t_c_Expression,t_c_Alias,t_n_Session)
Codeinformation


SetParameters() - Collection to Parameter

Wandelt eine übergebene Collection in Parameter um.
Hilfeinformation
Wandelt eine übergebene Collection in Parameter um.
Umkehrfunktion zu GetParameters.

Aufrufinformation
Variant = My.Functions.Strings.SetParameters(toPara AS Collection,tvP1 AS Variant @,tvP2 AS Variant @,tvP3 AS Variant @,tvP4 AS Variant @,tvP5 AS Variant @,tvP6 AS Variant @,tvP7 AS Variant @,tvP8 AS Variant @,tvP9 AS Variant @)
Variant = My.Functions.Strings.SetParameters(toPara,@tvP1,@tvP2,@tvP3,@tvP4,@tvP5,@tvP6,@tvP7,@tvP8,@tvP9)
Codeinformation
*/ Umwandeln einer Collection in Parameter
LOCAL loCollection AS Collection,lnVar1 AS Number,lnVar2 AS Number
loCollection = CREATEOBJECT("Collection")
=loCollection.Add(1,"tvp1")
=loCollection.Add(2,"tvp2")
=My.Functions.Strings.SetParameters(m.loCollection,@lnVar1,@lnVar2)
WAIT WINDOW m.lnVar1
WAIT WINDOW m.lnVar2

SqLike() - Stringfunktionen

Rückgabe:[String], Gibt eine Filter-Expression auf eine SQL Like Anweisung zurück. Übergeben wird der Feldname und die "eingegebene" Filter Expression
Hilfeinformation
Rückgabe:[String], Gibt eine Filter-Expression auf eine SQL Like Anweisung zurück. Übergeben wird der Feldname und die "eingegebene" Filter Expression

Aufrufinformation
String = My.Functions.Strings.SqLike(tcField AS STRING , tcExpression AS STRING, tlUpper AS Boolean)
String = My.Functions.Strings.SqLike(tcField,tcExpression,tlUpper)
Codeinformation


SqlBlankField() - SQL - Prüfung auf Blank

Rückgabe:[String], Wenn ein Feld einer SQL-Spalte auf EMPTY/BLANK geprüft werden muss
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.SqlBlankField(tcType AS String)
String = My.Functions.Strings.SqlBlankField(tcType)
Codeinformation


SqlCastField() - SQL - Cast

Rückgabe:[String], Wenn ein Feld einer SQL-Spalte gecasted werden muss
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.SqlCastField(tcType AS STRING,tiSize AS INTEGER,tiDecimals AS INTEGER)
String = My.Functions.Strings.SqlCastField(tcType,tiSize,tiDecimals)
Codeinformation


SqlFieldToString() - SQL - Variant nach String

Rückgabe:[String], Wandelt eine Value in einen SQL-String um
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.SqlFieldToString(tvValue AS Variant)
String = My.Functions.Strings.SqlFieldToString(tvValue)
Codeinformation


SqlFromTo() - SQL - Ermittele Quelle und Ziel

Rückgabe:[String], Wenn Quelle und Ziel einer SQL-Spalte berechnet werden müssen
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.SqlFromTo(tcDbfFieldF AS STRING,tcTypeF AS STRING,tcTypeT AS STRING)
String = My.Functions.Strings.SqlFromTo(tcDbfFieldF,tcTypeF,tcTypeT)
Codeinformation


SqlNullField() - SQL - Prüfung auf Null

Rückgabe:[String], Wenn ein Feld einer SQL-Spalte auf NULL geprüft werden muss
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.SqlNullField(tcDbfFieldF AS STRING,tlNullF AS Boolean,tlNullT AS Boolean,tcTypeT AS STRING)
String = My.Functions.Strings.SqlNullField(tcDbfFieldF,tlNullF,tlNullT,tcTypeT)
Codeinformation


StringToCsv() - String nach CSV konvertieren

Umwandlung eines Strings in CSV
Hilfeinformation

Aufrufinformation
Variant = My.Functions.Strings.StringToCsv(tcString AS String)
Variant = My.Functions.Strings.StringToCsv(tcString)
Codeinformation


StringToHtml() - Einen String in HTML umwandeln

Umwandlung eines Strings in HTML String
Hilfeinformation

Aufrufinformation
Variant = My.Functions.Strings.StringToHtml(tcString AS String)
Variant = My.Functions.Strings.StringToHtml(tcString)
Codeinformation


StringToWeb() - Stringfunktionen

Rückgabe:[String], Umwandlung eines Strings mit Sonderzeichen in einen WEB komformen String
Hilfeinformation
Rückgabe:[String], Umwandlung eines Strings mit Sonderzeichen in einen WEB komformen String

Aufrufinformation
String = My.Functions.Strings.StringToWeb(tcText AS STRING)
String = My.Functions.Strings.StringToWeb(tcText)
Codeinformation


StringToXml() - Stringfunktionen

Rückgabe:[String], Wandelt Sonderzeichen in einem String in einen XML String um.
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.StringToXml(tcString AS String)
String = My.Functions.Strings.StringToXml(tcString)
Codeinformation


StringToXmlExt() - Stringumwandlung für EXCEL

Rückgabe:[String], Wie StringToXml jedoch mit erweiterten Umwandlungen
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.StringToXmlExt(tcString AS String)
String = My.Functions.Strings.StringToXmlExt(tcString)
Codeinformation


TabGetReplace() - Stringfunktionen

Return:[String], Gibt einen REPLACE-Befehl zurück Voraussetzungen (für Prüfungen):\n- Zielalias muss selectiert sein\n- Quellalias muss geöffnet sein
Hilfeinformation
Return:[String], Gibt einen REPLACE-Befehl zurück Voraussetzungen (für Prüfungen):\n- Zielalias muss selectiert sein\n- Quellalias muss geöffnet sein

Aufrufinformation
String = My.Functions.Strings.TabGetReplace(tcaq, tcindex, tcrelation, tcfor, tcreplace)
String = My.Functions.Strings.TabGetReplace(tcaq,tcindex,tcrelation,tcfor,tcreplace)
Codeinformation


TableToNum() - Stringfunktionen

Rückgabe:[String], Wandelt einen Tabellennamen (PMS) in einen num. Stringwert um. Länge 4 Zeichen
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.TableToNum(tcTable AS String)
String = My.Functions.Strings.TableToNum(tcTable)
Codeinformation


Thermos() - Stringfunktionen

Rückgabe:[Boolean], Zeigt einen Thermos an.
Hilfeinformation
Rückgabe:[Boolean], Zeigt einen Thermos an.

Aufrufinformation
Boolean = My.Functions.Strings.Thermos(tnPerc, tcText)
Boolean = My.Functions.Strings.Thermos(tnPerc,tcText)
Codeinformation


TransformX() - Stringfunktionen

Rückgabe:[String], Typkonvertierung nach Zeichen, txVal:Wert der nach zeichen konvertiert werden soll\nBIT Wert1: Zeichenwerte werden nicht mit Hochkomma dargestellt --> .f.="Das ist der Text" / .t.=Das ist der Text\nBIT1 - Wert2: POINT: 0=".", 2=","
Hilfeinformation
Rückgabe:[String], Typkonvertierung nach Zeichen, txVal:Wert der nach zeichen konvertiert werden soll\nBIT Wert1: Zeichenwerte werden nicht mit Hochkomma dargestellt --> .f.="Das ist der Text" / .t.=Das ist der Text\nBIT1 - Wert2: POINT: 0=".", 2=","

Aufrufinformation
String = My.Functions.Strings.TransformX(txVal, tnBit)
String = My.Functions.Strings.TransformX(txVal,tnBit)
Codeinformation


TransformY() - Stringfunktionen

Rückgabe:[String], Ähnlich TransformX() jedoch wird eine Formel zurückgegeben.
Hilfeinformation
Rückgabe:[String], Ähnlich TransformX() jedoch wird eine Formel zurückgegeben.

Aufrufinformation
String = My.Functions.Strings.TransformY(tvValue AS Variant,tcField AS String)
String = My.Functions.Strings.TransformY(tvValue,tcField)
Codeinformation


TurnFieldName() - Umwandeln eines Spaltennamens

Wandelt einen Feldnamen im SQL in einen Ausdruck um.
Hilfeinformation

Aufrufinformation
tcfields,tcsearchfor = My.Functions.Strings.TurnFieldName(tcfields,tcsearchfor,tcreplace)
tcfields,tcsearchfor = My.Functions.Strings.TurnFieldName(tcfields,tcsearchfor,tcreplace)
Codeinformation


TypeConvert() - Stringfunktionen

Rückgabe:[Variant], Wandelt einen beliebigen Feldtyp in den Angegebenen um.
Hilfeinformation
Rückgabe:[Variant], Wandelt einen beliebigen Feldtyp in den Angegebenen um.

Aufrufinformation
Variant = My.Functions.Strings.TypeConvert(txval, tctype, tndec, tnSize)
Variant = My.Functions.Strings.TypeConvert(txval,tctype,tndec,tnSize)
Codeinformation


UniqueAlias() - Stringfunktionen

Rückgabe:[String], Erzeugt einen EINDEUTIGEN ALIAS() für CURSOR (Tabelle)
Hilfeinformation
Rückgabe:[String], Erzeugt einen EINDEUTIGEN ALIAS() für CURSOR (Tabelle)

Aufrufinformation
String = My.Functions.Strings.UniqueAlias(tcpraefix)
String = My.Functions.Strings.UniqueAlias(tcpraefix)
Codeinformation


UniqueDosName() - Stringfunktionen

Rückgabe:[String], Erzeugt einen EINDEUTIGEN DOS - Dateinamen für EINE WORKSTATION
Hilfeinformation
Rückgabe:[String], Erzeugt einen EINDEUTIGEN DOS - Dateinamen für EINE WORKSTATION

Aufrufinformation
String = My.Functions.Strings.UniqueDosName(tcpraefix)
String = My.Functions.Strings.UniqueDosName(tcpraefix)
Codeinformation


ValidName() - Korrekter Variablenname

Gibt einen Name gemäß Richtlinien für Variablen und Spalten zurück
Hilfeinformation
Gibt einen korrektenb Variablennamen zurück

Aufrufinformation
Variant = My.Functions.Strings.ValidName(tcString AS String)
Variant = My.Functions.Strings.ValidName(tcString)
Codeinformation
*/ Beispiel:

? My.Functions.Strings.ValidName("1-Define")
*/ Displays _1_Define

WebToString() - Stringfunktionen

Rückgabe:[String], Umwandlung eines WEB komformen Strings mit Sonderzeichen in einen String
Hilfeinformation
Rückgabe:[String], Umwandlung eines WEB komformen Strings mit Sonderzeichen in einen String

Aufrufinformation
String = My.Functions.Strings.WebToString(tcText AS STRING)
String = My.Functions.Strings.WebToString(tcText)
Codeinformation


XmlToString() - Stringfunktionen

Rückgabe:[String], Wandelt einen XML-String in einen String um
Hilfeinformation

Aufrufinformation
String = My.Functions.Strings.XmlToString(tcXMLString AS String)
String = My.Functions.Strings.XmlToString(tcXMLString)
Codeinformation


_SqlCount() - Anzahl der Datensätze

Anzahl der Datensätze eines SQL Statements ermitteln.
Hilfeinformation
Anzahl der Datensätze eines SQL Statements ermitteln.
Die Rückgabe ist Number oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.Strings._SqlCount(tcSql AS String)
Variant = My.Functions.Strings._SqlCount(tcSql)
Codeinformation
LOCAL lcSql AS String
lcSql = [SELECT COUNT(*) FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
IF My.Functions.Strings._SqlCount(m.lcSql)>0
	WAIT WINDOW "Es sind Daten vorhanden!"
ENDIF
*/ Bemerkung:
*/ Bei der Angabe der Datenbank, hier CSYSDIR!, wird der Wert gegen den Pfad ausgetauscht!

_SqlExist() - Gibt es Datensätze?

Werden Datensätze durch den SQL ermittelt?
Hilfeinformation
Werden Datensätze im SQL-Statement ermittelt?
Die Rückgabe ist Boolean oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.Strings._SqlExist(tcSql AS String)
Variant = My.Functions.Strings._SqlExist(tcSql)
Codeinformation
LOCAL lcSql AS String
lcSql = [SELECT ipy01 FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
IF My.Functions.Strings._SqlExist(m.lcSql)		&& Gibt Boolean zurück
	WAIT WINDOW "Es sind Daten vorhanden!"
ENDIF
*/ Bemerkung:
*/ Bei der Angabe der Datenbank, hier CSYSDIR!, wird der Wert gegen den Pfad ausgetauscht!

_SqlRead() - Lesen von SQL Daten

Ausführen eines SQL-Statements und Rückgabe des angegebenen Cursors.
Hilfeinformation
Ausführen eines SQL-Statements und Rückgabe des angegebenen Cursors.
Die Rückgabe ist Boolean oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.Strings._SqlRead(tcSql AS String,tcAlias AS String,tvTable AS Variant,tcIndex AS String)
Variant = My.Functions.Strings._SqlRead(tcSql,tcAlias,tvTable,tcIndex)
Codeinformation
LOCAL lcSql AS String
lcSql = [SELECT * FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
IF My.Functions.Strings._SqlRead(m.lcSql,"qY01",2)		&& Gibt Boolean zurück
	ACTIVATE _SCREEN
	BROWSE
ENDIF
*/ Bemerkung:
*/ Bei der Angabe der Datenbank, hier CSYSDIR!, wird der Wert gegen den Pfad ausgetauscht!
*/ Die einzelnen Parameter:
*/	tcSql AS String,tcAlias AS String,tvTable AS Variant,tcIndex AS String
*/	Ein muss sind: tcSql AS String,tcAlias AS String
*/	tvTable kann angegeben werden mit:
*/		.F.		=> Cursor incl. __Changed [L] und __New [L], .T. - Tabelle incl.
*/		Bit-0	=> 1 - Als Tabelle, 0 - Als Cursor
*/		Bit-1	=> 1 - Ohne __Changed und __New, 0 - Mit...
*/	tcIndex kann angegeben werden, wenn Indizes auf dem Cursor / der Tabelle benötigt werden.
*/		"IndexKey1#IndexTag1;IndexKey2#IndexTag2;...."
*/		Wird kein IndexTag angegeben und der IndexKey NICHT aus einer Funktion ermittelt, so hat der IndexKey den Namen des IndexTag!
*/		Wird der IndexKey aus einer Funktion gebildet und es ist kein IndexTag angegeben, so erhält der IndexTag den Namen _Index<Nummer>

_SqlReadArray() - SQL Daten in ein Array

Ausführen eines SQL-Statements in ein Array und Rückgabe der Datensätze.
Hilfeinformation
Ausführen eines SQL-Statements in ein Array und Rückgabe ob Daten ermittelt wurden.
Die Rückgabe ist Boolean oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.Strings._SqlReadArray(tcSql AS String,toObject AS Object,taArray)
Variant = My.Functions.Strings._SqlReadArray(tcSql,toObject,taArray)
Codeinformation
LOCAL lcSql AS String , laErg[1] , loObject AS Object
lcSql = [SELECT * FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
*/ Ausführen in ein lokales Array
IF My.Functions.Strings._SqlReadArray(m.lcSql,.NULL.,@laErg)			&& Es gibt Datensätze...
	*/ FOR i = ... NEXT i
ENDIF
*/ Ausführen in ein Objekt-Array
loObject = CREATEOBJECT("EMPTY")
=ADDPROPERTY(loObject,"aErg[1]")
IF My.Functions.Strings._SqlReadArray(m.lcSql,m.loObject,"aErg")		&& Es gibt Datensätze...
	*/ FOR i = ... NEXT i
ENDIF

_SqlReadCollection() - SQL Daten in eine Collection

Ausführen eines SQL-Statements in eine Collection und Rückgabe der Collection.
Hilfeinformation
Ausführen eines SQL-Statements in eine Collection und Rückgabe der Collection.
Die Rückgabe ist Collection oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.Strings._SqlReadCollection(tcSql AS String,tcIndex AS String)
Variant = My.Functions.Strings._SqlReadCollection(tcSql,tcIndex)
Codeinformation
LOCAL lcSql AS String , loColl AS Collection
lcSql = [SELECT * FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
*/ Normale Ausführung OHNE Indexangabe.
*/ Die Keys der Collection sind fortlaufend nummeriert!
loColl= My.Functions.Strings._SqlReadCollection(m.lcSql)
WAIT WINDOW loColl.GetKey(1)		&& "0000001"
*/ Hat der SQL einen eindeutigen Key so kann dieser benutzt werden!
loColl= My.Functions.Strings._SqlReadCollection(m.lcSql,"ipy01")
WAIT WINDOW loColl.GetKey(1)		&& "SU0"

_SqlReadValue() - SQL Abfrage einer Value

Ausführen eines SQL-Statements und Rückgabe der Value des ERSTEN Feldes.
Hilfeinformation
Ausführen eines SQL-Statements und Rückgabe der Value des ERSTEN Feldes.
Die Rückgabe ist Variant oder .NULL.
Die Datenbankangaben:
      CSYSDIR! => My.Clients.Path.cSysDir
      CDBFDIR! => My.Clients.Path.cDbfDir
      CFRXDIR! => My.Clients.Path.cFrxDir
      CNETDIR! => My.Clients.Path.cNetDir
      CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.

Aufrufinformation
Variant = My.Functions.Strings._SqlReadValue(tcSql AS String,tiValue AS Integer)
Variant = My.Functions.Strings._SqlReadValue(tcSql,tiValue)
Codeinformation
LOCAL lcSql AS String , lvValue AS Variant
*/ Gibt den Inhalt der ERSTEN Spalte zurück
lcSql = [SELECT bezei,kurz,master FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
lvValue = My.Functions.Strings._SqlReadValue(m.lcSql)		&& y01.Bezei
*/ Gibt den Inhalt der ZWEITEN Spalte zurück
lcSql = [SELECT bezei,kurz,master FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"]
lvValue = My.Functions.Strings._SqlReadValue(m.lcSql,2)	&& y01.Kurz

_SqlUpdate() - Einen Cursor updaten

UPDATE eines lokalen Cursors gegenüber der angegebenen Tabelle durchführen.
Hilfeinformation
UPDATE eines lokalen Cursors gegenüber der angegebenen Tabelle durchführen.
Die Rückgabe ist Boolean oder .NULL.
Der Cursor MUSS die Spalten __Changed und __New enthalten!
Außerdem MUSS die Zieltabelle die Spalte LastUpd enthalten!

Aufrufinformation
Variant = My.Functions.Strings._SqlUpdate(tcTable AS STRING,tcAlias AS STRING,tcIdName AS STRING,tcFilter AS String)
Variant = My.Functions.Strings._SqlUpdate(tcTable,tcAlias,tcIdName,tcFilter)
Codeinformation
LOCAL lcSql AS String , tlUpdate AS Boolean
lcSql = [SELECT * FROM CDBFDIR!B01 WHERE b01.artnr='SIE.3TH']
*/ Lesen der Daten vom Backend
IF My.Functions.Strings._SqlRead(m.lcSql,"qB01",1)
	*/ Ändern der Daten...
	SELECT qB01
	REPLACE ALL match WITH "LEISTUNGSSCHALTER",__Changed WITH .T.
	tlUpdate = My.Functions.Strings._SqlUpdate("B01",ALIAS(),"IDB01")
	IF NOT m.tlUpdate
		WAIT WINDOW My.Functions.Strings.cLastError
	ENDIF
ENDIF

_SqlUpdateAll() - Eine Cursorliste updaten

UPDATE eines lokalen Cursors gegenüber der angegebenen Tabelle durchführen.
Hilfeinformation
UPDATE mehrerer lokaler Cursor gegenüber den angegebenen Tabellen durchführen.
Die Rückgabe ist Boolean oder .NULL.
Die Cursor MUSS die Spalten __Changed und __New enthalten!
Außerdem MUSS die Zieltabelle die Spalte LastUpd enthalten!

Aufrufinformation
;Filter1 = My.Functions.Strings._SqlUpdateAll(tcList AS STRING)
;Filter1 = My.Functions.Strings._SqlUpdateAll(tcList)
Codeinformation
LOCAL tlUpdate AS Boolean
*/ Lesen der Daten vom Backend
IF My.Functions.Strings._SqlRead([SELECT * FROM CDBFDIR!B01 WHERE b01.artnr='SIE.3TH'],"qB01",1) AND ;
	My.Functions.Strings._SqlRead([SELECT d03.* FROM CDBFDIR!D03 INNER JOIN CDBFDIR!B01 ON d03.idd03=b01.idd03 WHERE b01.artnr='SIE.3TH'],"qD03",1)
	*/ Ändern der Daten...
	UPDATE qB01 SET lang = qD03.bez, __Changed = .T. FROM qD03 WHERE qB01.idd03=qD03.idd03
	UPDATE qD03 SET ekpdatum = My.xDate, __Changed = .T.
	tlUpdate = My.Functions.Strings._SqlUpdateAll("B01;QB01;IDB01#D03;QD03;IDD03")
	IF NOT m.tlUpdate
		WAIT WINDOW My.Functions.Strings.cLastError
	ENDIF
ENDIF
*/ Hinweis:
*/	Der Update der einzel angegebenen Cursor wird mit einer Transaktion durchgeführt!
*/	Läuft einer der Updates auf einen Fehler wird die Änderung rückgängig gemacht!
*/ Der String ist folgendermaßen aufgebaut:
*/	"Tableinfo1#Tableinfo2#Tableinfo3#..."
*/ Tableinfo:
*/	Tabelle;Cursor;ID-Field[;Filter]


Liste der Properties von Strings


ValidSys0 - Valid Name aus My.cUser+My._Terminal

Gibt den ValidName von: My.cUser+My._Terminal zurück
Hilfeinformation
Gibt eine Benutzerkennung zurück

Aufrufinformation
String = My.Functions.Strings.ValidSys0
Codeinformation
*/ Beispiel:

? My.Functions.Strings.ValidSys0
? My.Functions.Strings.ValidName(My.cUser+'_'+My._Terminal)

cLastError - Letzter Fehler

Mit dieser Property kann der letzte Fehler im Klartext abgerufen werden.
Hilfeinformation
Mit dieser Property kann der letzte Fehler im Klartext abgerufen werden.

Aufrufinformation
String = My.Functions.Strings.cLastError
Codeinformation
*/ Vorausgesetzt wird, dass My bekannt ist...
LOCAL lcError AS String
lcError = My.Functions.Strings.cLastError

cMethod - Methode des Fehlers

Methode in der der letzte Fehler auftrat.
Hilfeinformation
Methode in der der letzte Fehler auftrat.
Aufbau: [Fehlernummer] [Methode] [Zeilennummer] [Message]

Aufrufinformation
String = My.Functions.Strings.cMethod
Codeinformation
*/ Abruf...
WAIT WINDOW My.Functions.Strings.cMethod

lShowThermos - Thermosanzeige

Thermosanzeige bei der Ausführung
Hilfeinformation
Thermosanzeige bei der Ausführung

Aufrufinformation
Boolean = My.Functions.Strings.lShowThermos
Codeinformation
My.Functions.Strings.lShowThermos = .T.

nError - Fehlernummer d. Fehlers

Fehlernummer des letzten Fehlers.
Hilfeinformation
Fehlernummer des letzten Fehlers.
Ist der Wert kleiner null, so handelt es sich um einen logischen Fehler.

Aufrufinformation
Number = My.Functions.Strings.nError
Codeinformation
WAIT WINDOW My.Functions.Strings.nError

nLine - Zeilennummer d. Fehlers

Zeilennummer, in der der letzte Fehler auftrat
Hilfeinformation
Zeilennummer, in der der letzte Fehler auftrat

Aufrufinformation
Number = My.Functions.Strings.nLine
Codeinformation
WAIT WINDOW My.Functions.Strings.nLine

nRecords - Verarbeitete Datensätze

Verarbeitete Datensätze
Hilfeinformation
Verarbeitete Datensätze

Aufrufinformation
Number = My.Functions.Strings.nRecords
Codeinformation
WAIT WINDOW My.Functions.Strings.nRecords

nSeconds - Ausführungszeit

Ausführungszeit in Sekunden
Hilfeinformation
Ausführungszeit in Sekunden

Aufrufinformation
Number = My.Functions.Strings.nSeconds
Codeinformation
WAIT WINDOW My.Functions.Strings.nSeconds

nStatus - Status der Ausführung

Status der Ausführung
Hilfeinformation
Status der Ausführung

Aufrufinformation
Number = My.Functions.Strings.nStatus
Codeinformation
WAIT WINDOW My.Functions.Strings.nStatus

oSelected - Datenumgebung

Merkt sich die Datenumgebung für eine Verarbeitung.
Hilfeinformation
Merkt sich die Datenumgebung für eine Verarbeitung.
Beim Release der Variable wird die vorherige Datenumgebung wieder hergestellt.

Aufrufinformation
Object = My.Functions.Strings.oSelected
Codeinformation
LOCAL loSelected AS My_Fu_Selected
loSelected = My.Functions.Strings.oSelected
*/ Danach können Tabellen und Cursor geöffnet werden...

*/ Mit dem Nachfolgenden Befehl wird der obige Zustand der Datenumgebung wieder hergestellt
RELEASE loSelected

oThermos - temp. Thermos

Instanziiert einen temporären Thermos
Hilfeinformation
Instanziiert einen temporären Thermos

Aufrufinformation
Object = My.Functions.Strings.oThermos
Codeinformation
LOCAL loThermos AS My_Sy_Thermos
*/ Instanziieren
loThermos = My.Functions.Strings.oThermos

loThermos.AutoCenter = .T.
loThermos.cFaktor(1,1/10,.F.,"Info-1...")
loThermos.cFaktor(1,2/10,.F.,"Info-2...")
*/ ...
*/ Schliesst den Thermos
RELEASE loThermos


Siehe auch : Hauptmenü /  Hauptindex /  Such Index /  Cursor Index /  Programm Module /  Tabellen Index /  Tabellenmodule /  Masken Index /  Programmcode Index /  Servicepacks /  My.Struktur /  Funktionen /  Sonstiges Index

Lokale Benutzerhilfe : Meine eigene Hilfe /  Zurück zur PMS32 - Hilfe


Dateiversion:1.0.04#3648 - H.U.DD#SSFF 02.12.2022  Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32  Weitere Informationen finden Sie unter der aktuellen PMS32 WEB-Hilfe
Die Informationen dieser Mitteilung sind vertraulich und nur für Sie bestimmt. Unbefugtes Weiterleiten,  Veröffentlichen, Kopieren usw. sind untersagt und werden gerichtlich verfolgt.  © PMS Compelec GmbH 2022 ® el-Projekt