PMS32 Online- Hilfereferenz
Strings - Spezielle Stringfunktionen
Spezielle 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...
Rückgabe: [Number], Sucht eine Zeichenkette innerhalb einer gegebenen Zeichenkette ab einer best. Position. Siehe auch AT()
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)
*/ 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
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
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)
*/ 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
Variant = My.Functions.Strings.CsvToString(tcCSV AS STRING) Variant = My.Functions.Strings.CsvToString(tcCSV)
String = My.Functions.Strings.DigitsOnly(tcString AS STRING , tcPoint AS STRING) String = My.Functions.Strings.DigitsOnly(tcString,tcPoint)
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().
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)
*/ 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
Ausführen eines VFP-Scripts incl. der Prüfung, ob ein ALIAS besteht.
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)
*/ 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
Ausführen eines VFP-Scripts incl. PARAMETER (Collection)
Als Parameter wird eine Collection mit Informationen übergeben!
Variant = My.Functions.Strings.ExecScriptP(tcScript AS STRING,toPara AS COLLECTION) Variant = My.Functions.Strings.ExecScriptP(tcScript,toPara)
*/ 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
Rückgabe:[String], Austausch des Dateinamens unter Bebehaltung des Pfades und des Suffix
String = My.Functions.Strings.FORCESTEM(tcFilename AS STRING,tcName AS STRING) String = My.Functions.Strings.FORCESTEM(tcFilename,tcName)
*/ 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
Rückgabe:[String], Gibt einen String für Create Cursor abhängig vom Feldtyp zurück.
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)
*/ 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")
Rückgabe:[String], Gibt einen kompletten CAST-String zurück.
String = My.Functions.Strings.FieldGetCast(tcName, txval, tctype, tndec, tnSize) String = My.Functions.Strings.FieldGetCast(tcName,txval,tctype,tndec,tnSize)
*/ Beispiel: */ Strings einer bestimmten Länge WAIT WINDOW My.Functions.Strings.FieldGetCast("char",0,"C",0,10) */ Siehe auch .GetCastString()
Rückgabe:[String], Erstellt einen String für ein leeres SQL-FEld abhängig vom Feldtyp.
String = My.Functions.Strings.FieldGetSQLEmpty(tcName, tcType, tnSize, tnDec) String = My.Functions.Strings.FieldGetSQLEmpty(tcName,tcType,tnSize,tnDec)
*/ 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")
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.
String = My.Functions.Strings.FieldGetTypeCC(tvValue AS Variant) String = My.Functions.Strings.FieldGetTypeCC(tvValue)
Rückgabe:[Boolean], Setzt die Werte Type, Size und Decimals anhand der übergebenen Variable.
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)
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.
String = My.Functions.Strings.FilterString(tcString AS String,tcFilterChars AS String,tlNoBlanks AS Boolean) String = My.Functions.Strings.FilterString(tcString,tcFilterChars,tlNoBlanks)
*/ 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.)+"!"
String = My.Functions.Strings.FilterToWhere(tcFilter AS STRING) String = My.Functions.Strings.FilterToWhere(tcFilter)
Rückgabe:[Variant], Gibt einen "leeren" Wert für den angegebenen Feldtyp.
Variant = My.Functions.Strings.GetBlankFieldValue(tcType AS String) Variant = My.Functions.Strings.GetBlankFieldValue(tcType)
*/ 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")
Rückgabe:[String], Gibt einen Cast-String für die angegebenen Werte zurück.
String = My.Functions.Strings.GetCastString(tcName, tcType, tnSize, tnDec) String = My.Functions.Strings.GetCastString(tcName,tcType,tnSize,tnDec)
*/ 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")
Prüft E-Mail Adressen auf syntaktische Gültigkeit und gibt diese mit Semikolon getrennt zurück.
String = My.Functions.Strings.GetEMailAdresses(tcEMails AS STRING) String = My.Functions.Strings.GetEMailAdresses(tcEMails)
*/ Beispiel: WAIT WINDOW My.Functions.Strings.GetEMailAdresses("mailto:mbb@compelec.de;mailto:dja@compelec.de")
Rückgabe:[String], Ermittelt einen Feldnamen (Variable) aus einer einfachen Funktion.
String = My.Functions.Strings.GetField4Expr(tcexpr) String = My.Functions.Strings.GetField4Expr(tcexpr)
*/ Beispiel: WAIT WINDOW My.Functions.Strings.GetField4Expr("DTOS(m.gDatum)")
Rückgabe:[String], Ermittelt den Ersten Ausdruck (Variable) einer zusammengesetzten Expression. Beispiel: idb01+UPPER(IDC61) => idb01
String = My.Functions.Strings.GetFirstVarFromExpression(tcExpression AS STRING) String = My.Functions.Strings.GetFirstVarFromExpression(tcExpression)
*/ Beispiel: WAIT WINDOW My.Functions.Strings.GetFirstVarFromExpression("DTOS(m.gDatum)+idc08")
Rückgabe:[Integer], Ermittelt die Feldlänge einer Expression.
Integer = My.Functions.Strings.GetLen4Expr(tcexpr, tcfld) Integer = My.Functions.Strings.GetLen4Expr(tcexpr,tcfld)
Wandelt übergebene Parameter in eine Collection um.
Umkehrfunktion zu SetParameters.
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)
*/ 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)
Wandelt übergebene Parameter in eine Collection um.
Jedoch wird als 'erster' Parameter die Anzahl der Parameter mitgegeben.
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)
*/ 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 (?)
String = My.Functions.Strings.GetPhoneNumber(tcNumber AS STRING , tlKanonisch AS Boolean) String = My.Functions.Strings.GetPhoneNumber(tcNumber,tlKanonisch)
*/ 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.)
Rückgabe:[String], Baut den String für Create Cursor oder CAST() anhand der angegebenen Werte zusammen.
String = My.Functions.Strings.GetTypeCC(tcType AS STRING , tnSize AS INTEGER , tnDec AS INTEGER) String = My.Functions.Strings.GetTypeCC(tcType,tnSize,tnDec)
*/ 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")
Rückgabe:[String], Ermittelt eine Teilzeichenkette aus einer Zeichenkette ähnlich GETWORDNUM() jedoch kann der Delimiter mehr als 1 Zeichen enthalten...
String = My.Functions.Strings.GetWortNum(tcString AS STRING,tnIndex AS NUMBER,tcDelimiter AS STRING) String = My.Functions.Strings.GetWortNum(tcString,tnIndex,tcDelimiter)
*/ Beispiel: WAIT WINDOW My.Functions.Strings.GetWortNum("In Frankfurt, in Stuttgart, in München",2,"in")
Boolean = My.Functions.Strings.IsEmpty(tcVarList AS String) Boolean = My.Functions.Strings.IsEmpty(tcVarList)
Rückgabe:[String], Gibt einen Dateinamen OHNE dessen Suffix zurück...
String = My.Functions.Strings.JustNext(tcFileName AS STRING) String = My.Functions.Strings.JustNext(tcFileName)
*/ Beispiel: WAIT WINDOW My.Functions.Strings.JustNext("c:\dev\TestInfo.txt")
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"
String = My.Functions.Strings.KillFromRight(tcSearchValue AS String,tcString AS String) String = My.Functions.Strings.KillFromRight(tcSearchValue,tcString)
*/ Beispiel: WAIT WINDOW My.Functions.Strings.KillFromRight("Bergner","Michael Bergner")+"!" WAIT WINDOW RTRIM(My.Functions.Strings.KillFromRight("Bergner","Michael Bergner"))+"!"
Rückgabe:[String], Tauscht eine Zeile in einem Memofeld aus und gibt den Endwert zurück
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)
*/ 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.)
Rückgabe:[String], Gibt mehrere Zeilen eines Memofeldes zurück.
String = My.Functions.Strings.MemoLines(tcString AS String,tnLineStart AS Number,tnLineEnd AS Number) String = My.Functions.Strings.MemoLines(tcString,tnLineStart,tnLineEnd)
*/ 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)
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)
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)
Rückgabe:[String], Löscht Leerzeilen und Leerzeichen vom Anfang und vom Ende einer Stringkette.
String = My.Functions.Strings.MemoTrim(tcMemo AS String) String = My.Functions.Strings.MemoTrim(tcMemo)
Rückgabe:[String], Löschen von Leerzeilen und Leerzeichen in allen Zeilen eines Textes.
String = My.Functions.Strings.MemoXTrim(tcString AS STRING,tlDeleteEmptyLines AS Boolean,tcEndCharacter AS String) String = My.Functions.Strings.MemoXTrim(tcString,tlDeleteEmptyLines,tcEndCharacter)
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
String = My.Functions.Strings.NormalizeText(tcText AS STRING , tnMaxLen AS INTEGER , tnBit AS INTEGER) String = My.Functions.Strings.NormalizeText(tcText,tnMaxLen,tnBit)
String = My.Functions.Strings.NumToTable(tcTableNum AS String) String = My.Functions.Strings.NumToTable(tcTableNum)
String = My.Functions.Strings.PointerToString(tiPointer AS INTEGER) String = My.Functions.Strings.PointerToString(tiPointer)
Rückgabe:[Variant], Liest eine Property aus einen String.
Variant = My.Functions.Strings.PropRead(tcprops, tcprop, tctype, tndec) Variant = My.Functions.Strings.PropRead(tcprops,tcprop,tctype,tndec)
Rückgabe:[Variant], Schreibt eine Property in einen String.
@ = My.Functions.Strings.PropWrite(Zeiger) @ = My.Functions.Strings.PropWrite(Zeiger)
Rückgabe:[String], Teilt eine Zeichenkette anhand einer KeyExpression auf und gibt den gesplitteten String zurück.
String = My.Functions.Strings.SPLItValues(tcdbf, tckey, tcval AS STRING, tnbit AS INTEGER) String = My.Functions.Strings.SPLItValues(tcdbf,tckey,tcval,tnbit)
Rückgabe:[String], Ermittelt aus einem Ausdruck einen Ausdruck mit definiertem Alias. Z.B.: ID+ALLTRIM(FIELD) => m.ID+ALLTRIM(m.FIELD)
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)
Rückgabe:[String], Wie SetMemoryExpression jedoch mit Angabe einer Datasession
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)
Wandelt eine übergebene Collection in Parameter um.
Umkehrfunktion zu GetParameters.
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)
*/ 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
Rückgabe:[String], Gibt eine Filter-Expression auf eine SQL Like Anweisung zurück. Übergeben wird der Feldname und die "eingegebene" Filter Expression
String = My.Functions.Strings.SqLike(tcField AS STRING , tcExpression AS STRING, tlUpper AS Boolean) String = My.Functions.Strings.SqLike(tcField,tcExpression,tlUpper)
String = My.Functions.Strings.SqlBlankField(tcType AS String) String = My.Functions.Strings.SqlBlankField(tcType)
String = My.Functions.Strings.SqlCastField(tcType AS STRING,tiSize AS INTEGER,tiDecimals AS INTEGER) String = My.Functions.Strings.SqlCastField(tcType,tiSize,tiDecimals)
String = My.Functions.Strings.SqlFieldToString(tvValue AS Variant) String = My.Functions.Strings.SqlFieldToString(tvValue)
String = My.Functions.Strings.SqlFromTo(tcDbfFieldF AS STRING,tcTypeF AS STRING,tcTypeT AS STRING) String = My.Functions.Strings.SqlFromTo(tcDbfFieldF,tcTypeF,tcTypeT)
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)
Variant = My.Functions.Strings.StringToCsv(tcString AS String) Variant = My.Functions.Strings.StringToCsv(tcString)
Variant = My.Functions.Strings.StringToHtml(tcString AS String) Variant = My.Functions.Strings.StringToHtml(tcString)
Rückgabe:[String], Umwandlung eines Strings mit Sonderzeichen in einen WEB komformen String
String = My.Functions.Strings.StringToWeb(tcText AS STRING) String = My.Functions.Strings.StringToWeb(tcText)
String = My.Functions.Strings.StringToXml(tcString AS String) String = My.Functions.Strings.StringToXml(tcString)
String = My.Functions.Strings.StringToXmlExt(tcString AS String) String = My.Functions.Strings.StringToXmlExt(tcString)
Return:[String], Gibt einen REPLACE-Befehl zurück Voraussetzungen (für Prüfungen):\n- Zielalias muss selectiert sein\n- Quellalias muss geöffnet sein
String = My.Functions.Strings.TabGetReplace(tcaq, tcindex, tcrelation, tcfor, tcreplace) String = My.Functions.Strings.TabGetReplace(tcaq,tcindex,tcrelation,tcfor,tcreplace)
String = My.Functions.Strings.TableToNum(tcTable AS String) String = My.Functions.Strings.TableToNum(tcTable)
Rückgabe:[Boolean], Zeigt einen Thermos an.
Boolean = My.Functions.Strings.Thermos(tnPerc, tcText) Boolean = My.Functions.Strings.Thermos(tnPerc,tcText)
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=","
String = My.Functions.Strings.TransformX(txVal, tnBit) String = My.Functions.Strings.TransformX(txVal,tnBit)
Rückgabe:[String], Ähnlich TransformX() jedoch wird eine Formel zurückgegeben.
String = My.Functions.Strings.TransformY(tvValue AS Variant,tcField AS String) String = My.Functions.Strings.TransformY(tvValue,tcField)
tcfields,tcsearchfor = My.Functions.Strings.TurnFieldName(tcfields,tcsearchfor,tcreplace) tcfields,tcsearchfor = My.Functions.Strings.TurnFieldName(tcfields,tcsearchfor,tcreplace)
Rückgabe:[Variant], Wandelt einen beliebigen Feldtyp in den Angegebenen um.
Variant = My.Functions.Strings.TypeConvert(txval, tctype, tndec, tnSize) Variant = My.Functions.Strings.TypeConvert(txval,tctype,tndec,tnSize)
Rückgabe:[String], Erzeugt einen EINDEUTIGEN ALIAS() für CURSOR (Tabelle)
String = My.Functions.Strings.UniqueAlias(tcpraefix) String = My.Functions.Strings.UniqueAlias(tcpraefix)
Rückgabe:[String], Erzeugt einen EINDEUTIGEN DOS - Dateinamen für EINE WORKSTATION
String = My.Functions.Strings.UniqueDosName(tcpraefix) String = My.Functions.Strings.UniqueDosName(tcpraefix)
Gibt einen korrektenb Variablennamen zurück
Variant = My.Functions.Strings.ValidName(tcString AS String) Variant = My.Functions.Strings.ValidName(tcString)
*/ Beispiel: ? My.Functions.Strings.ValidName("1-Define") */ Displays _1_Define
Rückgabe:[String], Umwandlung eines WEB komformen Strings mit Sonderzeichen in einen String
String = My.Functions.Strings.WebToString(tcText AS STRING) String = My.Functions.Strings.WebToString(tcText)
String = My.Functions.Strings.XmlToString(tcXMLString AS String) String = My.Functions.Strings.XmlToString(tcXMLString)
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.
Variant = My.Functions.Strings._SqlCount(tcSql AS String) Variant = My.Functions.Strings._SqlCount(tcSql)
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!
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.
Variant = My.Functions.Strings._SqlExist(tcSql AS String) Variant = My.Functions.Strings._SqlExist(tcSql)
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!
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.
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)
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>
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.
Variant = My.Functions.Strings._SqlReadArray(tcSql AS String,toObject AS Object,taArray) Variant = My.Functions.Strings._SqlReadArray(tcSql,toObject,taArray)
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
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.
Variant = My.Functions.Strings._SqlReadCollection(tcSql AS String,tcIndex AS String) Variant = My.Functions.Strings._SqlReadCollection(tcSql,tcIndex)
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"
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.
Variant = My.Functions.Strings._SqlReadValue(tcSql AS String,tiValue AS Integer) Variant = My.Functions.Strings._SqlReadValue(tcSql,tiValue)
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
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!
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)
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
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!
;Filter1 = My.Functions.Strings._SqlUpdateAll(tcList AS STRING) ;Filter1 = My.Functions.Strings._SqlUpdateAll(tcList)
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]
Gibt eine Benutzerkennung zurück
String = My.Functions.Strings.ValidSys0
*/ Beispiel: ? My.Functions.Strings.ValidSys0 ? My.Functions.Strings.ValidName(My.cUser+'_'+My._Terminal)
Mit dieser Property kann der letzte Fehler im Klartext abgerufen werden.
String = My.Functions.Strings.cLastError
*/ Vorausgesetzt wird, dass My bekannt ist... LOCAL lcError AS String lcError = My.Functions.Strings.cLastError
Methode in der der letzte Fehler auftrat.
Aufbau: [Fehlernummer] [Methode] [Zeilennummer] [Message]
String = My.Functions.Strings.cMethod
*/ Abruf... WAIT WINDOW My.Functions.Strings.cMethod
Thermosanzeige bei der Ausführung
Boolean = My.Functions.Strings.lShowThermos
My.Functions.Strings.lShowThermos = .T.
Fehlernummer des letzten Fehlers.
Ist der Wert kleiner null, so handelt es sich um einen logischen Fehler.
Number = My.Functions.Strings.nError
WAIT WINDOW My.Functions.Strings.nError
Zeilennummer, in der der letzte Fehler auftrat
Number = My.Functions.Strings.nLine
WAIT WINDOW My.Functions.Strings.nLine
Verarbeitete Datensätze
Number = My.Functions.Strings.nRecords
WAIT WINDOW My.Functions.Strings.nRecords
Ausführungszeit in Sekunden
Number = My.Functions.Strings.nSeconds
WAIT WINDOW My.Functions.Strings.nSeconds
Status der Ausführung
Number = My.Functions.Strings.nStatus
WAIT WINDOW My.Functions.Strings.nStatus
Merkt sich die Datenumgebung für eine Verarbeitung.
Beim Release der Variable wird die vorherige Datenumgebung wieder hergestellt.
Object = My.Functions.Strings.oSelected
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
Instanziiert einen temporären Thermos
Object = My.Functions.Strings.oThermos
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