PMS32 Online- Hilfereferenz

MY

My - Globaler Handler der die komplette Struktur steuert


Hilfe: Globaler Handler
My wird in PMS32 ab Version 1.0.03 als "einzige" globale Variable betrachtet, unter der alle PMS32 Funktionen abgelegt sind. Damit entfallen alle anderen bisher benutzten "globalen" Variablen. In Scripten werden diese bei Aufruf des Scripts automatisch untersucht und ausgetauscht.
Beispiel:
_g_oPfade... war vorher der Pfadhändler
Jetzt:
My.Clients.Path...

My wird als ERSTER Handler beim Start jeder Applikation bzw. jedes Name Space Servers aktiviert, sofern noch nicht vorhanden. Danach stehen der Applikation alle Funktionen zur Verfügung, die in der My Struktur vorhanden sind.
Verwendet man die Funktionen in der My Struktur, so sollte man darauf achten, dass bei einem mehrmaligen Ausführen gleicher Strukturbäume die Zeit länger ist, wie wenn man sich die Klasse in eine lokale Variable holt!°


Code: Globaler Handler
*/ Setzen des Pfades auf das Verzeichnis von PMS32
*/ Je nach dem von welchem Pfad Sie PMS32 starten muss dann der Pfad abgeändert werden
CD c:\pms32
*/ Aktivieren von My unter VFP-9.0
My = NEWOBJECT("pmsmy","pmsmyhandler.vcx","pmsmyhandler.app")
*/ Setzen der Pfade auf den zuletzt gewählten Mandanten. Auch wenn der Befehl unsinnig aussieht...
My.cIdx02 = My.cIdx02
*/ Ab hier kann auf die komplette My Struktur zugegriffen werden

*/ Obiger Hinweis mit vielen Datensätzen....
*/ Wir erstellen uns einen SQL, der mit "vielen" Datensätzen beladen ist...
SELECT b01.artnr,CAST("" AS C(13)) AS barcode ;
	FROM (My.Clients.Path.cDbfDir+'b01.dbf') ;
	WHERE b01.artnr LIKE "SIE.%" ;
	INTO CURSOR qB01Test NOFILTER READWRITE
*/ Der obige Cursor kann eine ganze Menge Daten enthalten, jenachdem wieviele SIEMENS Artikel vorhanden sind...
*/ Wir wollen jetzt diesen Cursor mit EAN-Codes füllen, dazu nehmen wir uns die Methode: My.Clients.Numbers.EanCode(tcTable,tnAnzahl,tlEAN8) aus dem NameSpace...
LOCAL t0,t1,t2,t3,t4

t0 = SECONDS()

*/ Ganz schlechtes Beispiel...
SCAN
	REPLACE barcode WITH My.Clients.Numbers.EanCode("U99")
ENDSCAN
t1 = SECONDS()

*/ Schlechtes Beispiel...
REPLACE ALL barcode WITH My.Clients.Numbers.EanCode("U99")
t2 = SECONDS()

*/ Etwas besser...
REPLACE ALL barcode WITH My.Clients.Numbers.EanCode("U99",RECCOUNT())
t3 = SECONDS()

*/ Best of...
LOCAL loNumbers
loNumbers = My.Clients.Numbers
REPLACE ALL barcode WITH m.loNumbers.EanCode("U99",RECCOUNT())
t4 = SECONDS()

*/ Wir geben die Zeiten aus...
WAIT WINDOW TRANSFORM(m.t1-m.t0)+"/"+TRANSFORM(m.t2-m.t1)+"/"+TRANSFORM(m.t3-m.t2)+"/"+TRANSFORM(m.t4-m.t3)

Memberliste von My

Action... : Abfrage für Action Handler aller Aktionen
AppForms. : Funktionen für Masken Enthält Steuerfunktionen für die Masken
Bussines. : Geschäftsregeln Handler für alle Bussines Klassen in PMS32.
CStructs. : Bearbeiten von C-Structures Bearbeitung von C-Strukturen neuer Art
Clients.. : Alle Mandantenabhängigen Funktionen Zugriff auf alle Client (Pfad) COM+ Server und Klassen.
Convert.. : Konvertierung Konvertierung verschiedener PMS32 Informationen
Data..... : Datenhandling Datenhandler von PMS für Im- und Exportfunktionen.
Functions : Funktionen Steuert alle Funtktionen innerhalb von PMS. Speziell Funktionen, die allgemein gültig sind, wie Datum, Mathe, ...
GDI...... : Grafikinterface GUI Steuerung des GDI+
Globals.. : Golbale Informationen Enthält / Setzt globale Variablen für die Programmausführung.
HdeForms. : Steuerung HDE Forms Steuerung der neuen Forms für HDE Zugriff
NewClient : Neuer Client Wert:[Object], Gibt den Zeiger auf einen PMS32-Client zurück. Dieser CLient hat KEIN GUI! Er wird für Hintergrund Jobs verwendet!
Systems.. : Systemfunktionen Enthält die Definitionen für die Systemumgebung.
Timers... : Timerfunktionen Beinhaltet alle Timer Klassen, die in PMS benötigt werden.
Wrapper.. : Ersetzungen Wrapper für alles Mögliche (Word, Excel, Filedialoge usw.)
ctl32.... : GUI Erweiterungen CTL 32 Erweiterungen GUI (SEDNA)


Liste der Methoden von My


AProgram() - Array des Programmstacks

Gibt ein Array mit den Informationen aus PROGRAM() zurück. UPPER()!
Hilfeinformation
Erstellt ein Array mit Programmstack Informationen

Aufrufinformation
taArray = My.AProgram(taArray)
taArray = My.AProgram(taArray)
Codeinformation
*/ Array ermitteln
LOCAL laStack[1],lni
*/ Gibt die Anzahl der enthaltenen Elemente im Array zurück
IF My.aProgram(@laStack)>0
	ACTIVATE SCREEN
	FOR m.lni = 1 TO ALEN(laStack)
		? laStack(m.lni)
	MEXT m.lni
ENDIF

AddExtProperty() - Added eine Property

Added eine Property an eine EMPTY Klasse oder andere incl. der Erzeugung einer Property _memberliste
Hilfeinformation
Added eine Property an eine EMPTY Klasse oder andere incl. der Erzeugung einer Property _memberliste.
Rückgabe ist vom Typ Boolean!

Aufrufinformation
Boolean = My.AddExtProperty(toObject AS Object,tcProperty AS String,tvValue AS Variant)
Boolean = My.AddExtProperty(toObject,tcProperty,tvValue)
Codeinformation


AddPropR() - Wie AddProperty

Rückgabe:[Object], Added eine Property an ein Objekt und gibt das Objekt zurück
Hilfeinformation
Rückgabe:[Object], Added eine Property an ein Objekt und gibt das Objekt zurück

Aufrufinformation
Object = My.AddPropR(toObject AS OBJECT,tcProperty AS STRING,tvValue AS Variant)
Object = My.AddPropR(toObject,tcProperty,tvValue)
Codeinformation
*/ Beispiel:
LOCAL loObject AS Object
loObject = My.AddPropR(CREATEOBJECT("EMPTY"),"Name","Michael")
? loObject.Name

AppGetFileObject() - Gilt für APP Klassen

Gibt ein Object mit den Informationen der APP zurück.
Hilfeinformation
Gibt ein Object mit den Informationen der APP zurück.

Aufrufinformation
Variant = My.AppGetFileObject(tcApplication AS String)
Variant = My.AppGetFileObject(tcApplication)
Codeinformation


AppGetFileVersion() - Gilt für APP Klassen

Gibt ein Array mit den Informationen der APP zurück. Wie AGetFileVersion()
Hilfeinformation
Gibt ein Array mit den Informationen der APP zurück. Wie AGetFileVersion()

Aufrufinformation
Variant = My.AppGetFileVersion(taArray , tcApplication AS String)
Variant = My.AppGetFileVersion(taArray,tcApplication)
Codeinformation


AppendFile() - Eine Datei an eine andere anhängen

Rückgabe:[Boolean], Eine Datei an eine andere anhängen und die Quelle löschen
Hilfeinformation

Aufrufinformation
Boolean = My.AppendFile(tcFileV AS STRING , tcFileN AS STRING)
Boolean = My.AppendFile(tcFileV,tcFileN)
Codeinformation


CopyObject() - Kopiert ein Datensatz-Objekt

Kopiert ein RECORD - Objekt in anderes RECORD - Objekt mit Angaben
Hilfeinformation
tnFlags:
Bit-0 = 1, Kopieren wenn Ziel .NULL.
Bit-1 = 2, Kopieren wenn Ziel EMPTY
Bit-2 = 4, Immer kopieren
Wird KEIN Objekt 'nach' angegeben, so werden alle Properties kopiert!

Aufrufinformation
Variant = My.CopyObject(toObjectV AS Object,toObjectN AS Object,tnFlags AS Integer)
Variant = My.CopyObject(toObjectV,toObjectN,tnFlags)
Codeinformation
Beispiel:
LOCAL loVon AS Object, loNach AS Object
loVon = CREATEOBJECT("EMPTY")
=ADDPROPERTY(m.loVon,"Wert1","Michael")
=ADDPROPERTY(m.loVon,"Wert2","Dirk")

*/ Erstellen einer kompletten Kopie
loNach = My.CopyObject(m.loVon)

*/ Wenn loNach da ist... (Man achte auf Wert2!)
loNach = CREATEOBJECT("EMPTY")

*/ Kopieren wenn NULL
=ADDPROPERTY(m.loNach,"Wert2",.NULL.)
=My.CopyObject(m.loVon,m.loNach,1)
=Messagebox(My.Functions.fOTS.ObjectToString(m.loNach),64,"Kopieren wenn NULL")

*/ Kopieren wenn EMPTY
=ADDPROPERTY(m.loNach,"Wert2",.NULL.)
=My.CopyObject(m.loVon,m.loNach,2)
=Messagebox(My.Functions.fOTS.ObjectToString(m.loNach),64,"Kopieren wenn EMPTY")

*/ Kopieren wenn NULL or EMPTY
=ADDPROPERTY(m.loNach,"Wert2",.NULL.)
=My.CopyObject(m.loVon,m.loNach,3)
=Messagebox(My.Functions.fOTS.ObjectToString(m.loNach),64,"Kopieren wenn NULL or EMPTY")

*/ Immer kopieren
=ADDPROPERTY(m.loNach,"Wert2",.NULL.)
=My.CopyObject(m.loVon,m.loNach,4)
=Messagebox(My.Functions.fOTS.ObjectToString(m.loNach),64,"Immer kopieren")

CopyObjectF() - Wie CopyObject jedoch nur eine Ebene

Die schnellere Version von CopyObject. (EMPTY)
Hilfeinformation
Wie CopyObject jedoch nur eine Ebene.

Aufrufinformation
Variant = My.CopyObjectF(toObject AS OBJECT)
Variant = My.CopyObjectF(toObject)
Codeinformation


CreateDirectory() - Erzeuge Verzeichnis

Rückgabe:[Boolean], Erzeugt eine Verzeichnisstruktur falls nicht vorhanden. Gibt .T. / .F. zurück ob das Verzeichnis existiert
Hilfeinformation
Rückgabe:[Boolean], Erzeugt eine Verzeichnisstruktur falls nicht vorhanden. Gibt .T. / .F. zurück ob das Verzeichnis existiert

Aufrufinformation
Boolean = My.CreateDirectory(tcDir AS STRING)
Boolean = My.CreateDirectory(tcDir)
Codeinformation
LOCAL lcDir
lcDir = "C:\TMP\TEST\TEST1"
IF My.CreateDirectory(m.lcDir)
	*/ jetzt müsste dieses Verzeichnis vorhanden sein! (Soweit die Rechte in WINDOWS bestehen!)
ENDIF

EraseFile() - Löschen einer Datei

Rückgabe: [Boolean], Löscht die angegebene Datei. Gibt .T. zurück, wenn erfolgreich...
Hilfeinformation
Rückgabe: [Boolean], Löscht die angegebene Datei. Gibt .T. zurück, wenn erfolgreich...

Aufrufinformation
Boolean = My.EraseFile(tcFile AS STRING)
Boolean = My.EraseFile(tcFile)
Codeinformation
*/ Falls diese Datei existiert...
IF My.EraseFile(My.Clients.Path.cTmpDir+'test.txt')
	*/ Dann wurde die Datei gelöscht
ENDIF


EraseTable() - Löschen einer Tabelle

Löschen einer VFP Standardtabelle, angefangen mit *.DBF, *.FPT, *.CDX
Hilfeinformation
Löschen einer VFP Standardtabelle, angefangen mit *.DBF, *.FPT, *.CDX,*BAK,*.TBK.
*.DBF - Tabelle
*.FPT - Memodatei
*.CDX - Indexdatei
*.BAK - Sicherung einer Tabelle (*.DBF)
*.TBK - Sicherung einer Memodatei (*.FPT)

Aufrufinformation
Variant = My.EraseTable(tcTable AS String)
Variant = My.EraseTable(tcTable)
Codeinformation
*/
IF My.EraseTable(My.Clients.Path.cTmpDir+'test.dbf')
	*/ Dann wurde die Tabelle gelöscht
ENDIF

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.Evaluate(tcExpression AS STRING)
Variant = My.Evaluate(tcExpression)
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.Evaluate([m.pnVar1+m.pnVar2])
WAIT WINDOW m.lnVar		&& Ergibt 4...	ENDTEXT

ExecScript() - Ausführen eines VFP-Scripts

Ausführen eines VFP-Scripts.
Hilfeinformation
Ausführen eines VFP-Scripts.

Aufrufinformation
Variant = My.ExecScript(tcScript AS STRING)
Variant = My.ExecScript(tcScript)
Codeinformation
*/ Mit EXECSCRIPT kann ein VFP-Script ausgeführt werden
LOCAL lcScript AS String,lnVar AS Number
TEXT TO lcScript NOSHOW TEXTMERGE
LOCAL laErg[1] , lnSelect AS Number
lnSelect = SELECT()
SELECT COUNT(*) FROM (My.Clients.Path.cDbfDir+'b01.dbf') WHERE b01.artnr='SIE.' INTO ARRAY laErg
laErg[1] = IIF(_TALLY>0,laErg[1],0)
SELECT(m.lnSelect)
RETURN laErg[1]		&& Rückgabe ist die Anzahl der Datensätze
ENDTEXT
lnVar = My.ExecScript(m.lcScript)
*/ und das Ergebnis...
WAIT WINDOW m.lnVar

GetCalcData() - Ähnlich wie GetCodeData

Rückgabe:[Variant], Ähnlich wie GetCodeData, nur dass ein Objekt EINMAL geholt wird und dann eine Kalkulation erfolgt.
Hilfeinformation
Wenn man ein Berechnetes Feld darstellen möchte, deren Tabelle aber im Datenraster nicht zur Verfügung steht
Hier kann die Funktion GetCalcData("",[,[,Parameter3[,Parameter4]]]) genommen werden.
Nehmen wir mal an, wir möchten der Einkaufspreis einer Bestellung im Datenraster der Maske I2001 anzeigen. Ein Beispiel:
_eg=iif(!EMPTY(i20sql.idd51),GetCalcData("o1=to.D51('%P1%%P2%');;o2=to.D40('%P1%');;return o1.menge_s*((o1.preis_f/o1.peek*(1-o1.rabatt/100)*(1-o1.rabatt1/100)+o1.edpreis)*(1-o2.ekrabatt/100))",i20sql.idd40,i20sql.idd51),0)
Wahnsinn, nehmen wir mal die Codezeile auseinander:
_eg = IIF(!EMPTY(I20SQL.IDD51),GetCalcData("
o1 = to.D51('%P1%%P2%')    && Hier wird ein Datensatz der Tabelle D51 - Bestellpositionen geholt. %P1% wird durch I20SQL.IDD40 und %P2% wird durch I20SQL.IDD51 ersetzt
o2 = to.D40('%P1%')               && Hier wird der Bestellkopfdatensatz (D40) zur Bestellposition geholt. %P1% wird durch I20SQL.IDD40 ersetzt
&& Jetzt die eigentliche Berechnung des EK's
return o1.menge_s * ( (o1.preis_f/o1.peek * (1-o1.rabatt/100) * (1-o1.rabatt1/100) + o1.edpreis ) * (1-o2.ekrabatt/100) )
Auch hier wird wieder to. durch My.Bussines.Strain.Misc.o ersetzt. Das to. muss IMMER kleingeschrieben werden!
Da die Codezeile aber in EINER Zeile der Definition gespeichert werden muss, werden Doppelt-Semikolon für die Definition eines Zeilenumbruchs genommen!
Das Semikolon MUSS/DARF nur bei der Funktion GetCalcData() verwendet werden!

Aufrufinformation
Variant = My.GetCalcData(tcCode AS String  , tcP1 AS STRING , tcP2 AS STRING , tcP3 AS STRING , tcP4 AS STRING)
Variant = My.GetCalcData(tcCode,tcP1,tcP2,tcP3,tcP4)
Codeinformation


GetCodeData() - Verschachtelte Abfrage von Tabellen

Ähnlich wie GetMiscData() jedoch kann eine verschachtelte Abrufsequenz angegeben werden.
Hilfeinformation
Diese Funktion ist ähnlich GetMiscData, jedoch kann eine verschachtelte Abfrage getätigt werden.
Dazu wird eine 'kurze' Funktion genutzt, die entsprechend umgewandelt und ausgeführt wird.
Informationen:
Die Abkürzung to steht für TableObject und ist ein Zeiger auf My.Bussines.Strain.Misc
Danach folgt der Name der Tabelle, z.B.: b01
Der Parameter wird in eckigen Klammern übergeben: ['%P1%'] oder eine Funktion, die String zurückgibt!
Rückgabe ist immer die Variable hinter dem "." nach der Klammer.
Beispiel:
to.b01[[artnr='%P1%']].eknet1
MAN ACHTE AUF DOPPELKLAMMER UND EINZEL-HOCHKOMMA!
Wenn man die ID hat ist es einfacher:
tob01.['%P1%'].typnr
Die Parameter P1 - P4 werden in %Px% gesetzt und vor der Abfrage ausgetauscht
Alle Parameter MÜSSEN als String übergeben werden!

Die Funktionen GetCodeData() und GetMiscData() sind auch als reine Funktion in Main vorhanden!
Der Verschachtelte Datenabruf in einem Datenraster (Spezialspalte)
Die Funktion ist mit 'gleichem' Aufruf auch in Main gespeichert!
_kon=GetCodeData("to.c07(to.c09(to.c62(to.b01(to.i20("+'"idd40+idd51='+"'%P1%%P2%'"+'"'+").idb01).idc62).idc09).idc07).bezei",d51.idd40,d51.idd51)
Mit einer Funktion als Parameter wird die Sache triggi...

Aufrufinformation
Variant = My.GetCodeData(tcCode AS STRING , tcP1 AS STRING , tcP2 AS STRING , tcP3 AS STRING , tcP4 AS STRING)
Variant = My.GetCodeData(tcCode,tcP1,tcP2,tcP3,tcP4)
Codeinformation
*/ Codebeispiel, My wird vorausgesetzt...
*/ 1. Wir haben die Vorgangsposition und möchten den Kontinent des Herstellers des Artikels wissen
LOCAL lcKontinent AS String
lcKontinent = My.GetCodeData("to.c07[to.c09[to.c62[to.b01['%P1%'].idc62].idc09].idc07].bezei",e11.idb01)

*/ Wir wandeln das obige Baispiel in einzelnen Abschnitte um:
*/ Die obige Formel wird von Innen nach Außen abgearbeitet:
xIdc62 = My.Bussines.Strain.Misc.oB01[e11.idb01].idc62			&& xIdc62 = to.b01['%P1%'].idc62
xIdc09 = My.Bussines.Strain.Misc.oC62[xIdc62].idc09				&& xIdc09 = to.c62[xIdc62].idc09
xIdc07 = My.Bussines.Strain.Misc.oC09[xIdc09].idc07				&& xIdc07 = to.c09[xIdc09].idc07
lcKontinent = My.Bussines.Strain.Misc.oC07[xIdc07].bezei		&& lcKontinent = to.c07[xIdc07].bezei

*/ to steht für: My.Bussines.Strain.Misc
*/ Nachfolgend die Tabelle getrennt durch "." .b01 => .oB01
*/ Danach kommt die ID der Tabelle als Parameter in eckigen Klammern: [e11.idb01]
*/ Jetzt benötigen wird nur noch der Rückgabewert getrennt durch "." .idc62
*/ Die Funktion in Erklärung:
*/	TableObject(to).Table(b01)['Primärschlüssel'].Feldname(idc62)
*/ Durch die kurze Schreibweise kann man auch lange Verschachtelungen erzeugen...

*/ Wenn man eine Funktion zusammensetzen muss:
LOCAL lcKontinent AS String
lcKontinent = My.GetCodeData(My.GetCodeData("to.c07[to.c09[to.c62[to.b01[to.i20[[idd40+idd51='%P1%%P2%']].idb01].idc62].idc09].idc07].bezei",d51.idd40,d51.idd51)
*/ MAN ACHTE AUF DIE DOPPELKLAMMER INNERHALB to.i20[[...Funktion...]].idb01

*/ Falls man nur die Artikelnummer hat:
LOCAL lcKontinent AS String
lcKontinent = My.GetCodeData("to.c07[to.c09[to.c62[to.b01[[artnr='%P1%']].idc62].idc09].idc07].bezei",e11.artnr)

*/ Wenn man das Objekt benötigt:
LOCAL loC07 AS Object
loC07 = My.GetCodeData("to.c07[to.c09[to.c62[to.b01['%P1%'].idc62].idc09].idc07]",e11.idb01)
*/ oder...
loC07 = My.GetCodeData(My.GetCodeData("to.c07[to.c09[to.c62[to.b01[to.i20[[idd40+idd51='%P1%%P2%']].idb01].idc62].idc09].idc07]",d51.idd40,d51.idd51)
*/ oder...
loC07 = My.GetCodeData("to.c07[to.c09[to.c62[to.b01[[artnr='%P1%']].idc62].idc09].idc07]",e11.artnr)
*/ loC07 ist ein Objekt des Datensatzes der Tabelle C07!

*/ Der Verschachtelte Datenabruf in einem Datenraster (Spezialspalte)
*/ Die Funktion ist mit 'gleichem' Aufruf auch in Main gespeichert!
_kon=GetCodeData("to.c07(to.c09(to.c62(to.b01(to.i20("+'"idd40+idd51='+"'%P1%%P2%'"+'"'+").idb01).idc62).idc09).idc07).bezei",d51.idd40,d51.idd51)
*/ Mit einer Funktion als Parameter wird die Sache triggi...
*/ Obige Funktion wird in den Datenraster Tabellen X60/X61/X62 in eckigen Klammern als String gespeichert, weshalb keine solche Klammern verwendet werden dürfen.
ControlSource = [_kon=GetCodeData("to.c07(to.c09(to.c62(to.b01(to.i20("+'"idd40+idd51='+"'%P1%%P2%'"+'"'+").idb01).idc62).idc09).idc07).bezei",d51.idd40,d51.idd51)]
wait window m.ControlSource
*/ Es geht auch einfacher und schneller...
_kon=GetCodeData("to.c07(to.c09(to.c62(to.b01('%P1%).idc62).idc09).idc07).bezei",d51.idb01)

GetMiscData() - Abfrage einer Tabelle

Holt Daten aus My.Bussines.Strain.Misc
Hilfeinformation
Wenn ein Feld aus einer Tabelle ermittelt werden muss, die im Datenraster nicht zur Verfügung steht
Hier kann die Funktion GetMiscData("",,"") genommen werden. Ein Beispiel:
_k10match = GetMiscData("oK10",I20SQL.IDK10,"match")
Im Datenraster der Maske I2001 wird der Matchcode zum Projekt ermittelt.
'oK10' gibt die Property unter My.Bussines.Strain.Misc an, deren Daten abgerufen werden sollen: My.Bussines.Strain.Misc.oK10
'I20SQL.IDK10' gibt den Primärschlüssel der Projekttabelle (K10) an: My.Bussines.Strain.Misc.oK10[I20SQL.IDK10]
'match' gibt den Feldnamen der Projekttabelle an, der abgerufen werden soll: My.Bussines.Strain.Misc.oK10[I20SQL.IDK10].match
Mit der Funktion kann aber auch eine Funktion an My.Bussines.Strain.Misc abgerufen werden... dies klappt bei der nächsten neuen Funktion nicht:

Aufrufinformation
Variant = My.GetMiscData(tcObj AS STRING,tcId AS STRING,tcField AS STRING,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant,tvP5 AS Variant)
Variant = My.GetMiscData(tcObj,tcId,tcField,tvP2,tvP3,tvP4,tvP5)
Codeinformation


GetMiscValue() - Ähnlich wie GetMiscData

Rückgabe:[Variant], Rückgabe einer Value aus My.Bussines.Strain.Misc.
Hilfeinformation
Wenn ein Feld aus einer Tabelle ermittelt werden muss, die im Datenraster nicht zur Verfügung steht und man wie unter GetMiscData() über eine Objektabfrage einen Wert haben möchte...
Über die Funktion GetMiscValue("",,"") kann wie unter GetMiscData() ein Objekt und dessen Feld abgerufen werden... (Geht nur schneller)
Die entsprechende Funktion in My: My.GetMiscValue(...), Ein Beispiel:
_k10match = GetMiscValue("K10",I20SQL.IDK10,"match")
Eine Besonderheit ist die Rückgabe eines Datensatz-Objekts
oK10 = GetMiscValue("K10",I20SQL.IDK10)
Mit dieser Funktion können lediglich die Properties unter My.Bussines.Strain.Misc.oXXX abgerufen werden!

Aufrufinformation
Variant = My.GetMiscValue(tcObj AS STRING,tcId AS STRING,tcField AS STRING)
Variant = My.GetMiscValue(tcObj,tcId,tcField)
Codeinformation


GetParameters() - Parameter to Collection

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

Aufrufinformation
Collection = My.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)
Collection = My.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.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
Collection = My.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)
Collection = My.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.GetParametersCount(m.lni,m.tp1,m.tp2,m.tp3)
WAIT WINDOW m.loCollection.Count		&& Anzahl der Werte (?)

GetStackLog() - Stacklog

Rückgabe:[String], Gibt ein Stacklog im Stringformat zurück
Hilfeinformation
Rückgabe:[String], Gibt ein Stacklog im Stringformat zurück.

Aufrufinformation
String = My.GetStackLog(tlLine AS Boolean)
String = My.GetStackLog(tlLine)
Codeinformation


GetStckShort() - Wie GetStackLog

Rückgabe:[String], Rückgabe des Stcks in kurzer Schreibweise
Hilfeinformation
Rückgabe:[String], Rückgabe des Programmstacks in kurzer Schreibweise

Aufrufinformation
String = My.GetStckShort(tnDeep AS Integer)
String = My.GetStckShort(tnDeep)
Codeinformation


GetSwitchValue() - IC einer geswitchten Tabelle

Gibt die IC zur ID einer geswitchten Tabelle zurück. IPAUFv,IDAUFv
Hilfeinformation

Aufrufinformation
Variant = My.GetSwitchValue(tcIP AS String,tcID AS String)
Variant = My.GetSwitchValue(tcIP,tcID)
Codeinformation


LogTextAdd() - Log mitschreiben

Rückgabe:[Boolean], wie cLogTextAdd, jedoch wird eine Methode verwendet
Hilfeinformation
Rückgabe:[Boolean], wie cLogTextAdd, jedoch wird eine Methode verwendet. Füllt das Array My.aLogs[n,3] mit Informationen.

Aufrufinformation
Boolean = My.LogTextAdd(tvValue AS Variant)
Boolean = My.LogTextAdd(tvValue)
Codeinformation
=My.LogTextAdd("Dies ist ein Test...")
? My.LogsCount
IF My.LogsCount>0
	? My.aLogs[1,1],My.aLogs[1,2],My.aLogs[1,3]
	*/ Struktur von My.aLogs[n,3]
	*/ [n,1] = "C" - Text
	*/ [n,2] = "T" - DateTime()
	*/ [n,3] = "N" - Seconds()
ENDIF

MirrorValues() - Spiegelt Variableninhalte

Tauscht die Informationen von vValue1 und vValue2.
Hilfeinformation
Tauscht die Informationen von vValue1 und vValue2. Rückgabe ist IMMER .T.
Kann in DO CASE ... ENDCASE Konstrukten verwendet werden...

Aufrufinformation
Variant = My.MirrorValues(tvValue1 AS Variant @,tvValue2 AS Variant @)
Variant = My.MirrorValues(@tvValue1,@tvValue2)
Codeinformation
*/ Beispiel
LOCAL lvValue1 AS Variant, lvValue2 AS Variant
lvValue1 = "Michael"
lvValue2 = DATE()
=My.MirrorValues(@lvValue1,@lvValue2)
? lvValue1		&& Enthält DATE()
? lvValue2		&& Enthält "Michael"

MirrorValuesR() - Spiegelt Variablen

Rückgabe:[Variant], Wie MirrorValues, jedoch mit Rückgabe einer Value.
Hilfeinformation
Rückgabe:[Variant], Wie MirrorValues, jedoch mit Rückgabe einer Value.
Diese Methode ist ähnlich MirrorValues() jedoch wird eine der beiden Values nach dem Tausch zurückgegeben!

Aufrufinformation
Variant = My.MirrorValuesR(tvValue1 AS Variant @,tvValue2 AS Variant @,tlSecondValue AS Boolean)
Variant = My.MirrorValuesR(@tvValue1,@tvValue2,tlSecondValue)
Codeinformation
*/ Beispiel:
LOCAL lvValue1 AS Variant , lvValue2 AS Variant

lvValue1 = "Michael"
lvValue2 = DATE()
*/ Rückgabe von lvValue2 also Date
? My.MirrorValuesR(@lvValue1,@lvValue2,.F.)

lvValue1 = "Michael"
lvValue2 = DATE()
*/ Rückgabe von lvValue1 also Michael
? My.MirrorValuesR(@lvValue1,@lvValue2,.T.)

*/ Anmerkung: Die Inhalte werden erst getauscht, danach wird entschieden, welche Variable zurückgegeben wird.

ReadFieldInit() - Init der Maskenfelder

Abgekürzte Function aus My.Clients.Action.ReadFieldInit
Hilfeinformation
Abgekürzte Function aus My.Clients.Action.ReadFieldInit

Aufrufinformation
Variant = My.ReadFieldInit(toField AS TEXTBOX)
Variant = My.ReadFieldInit(toField)
Codeinformation


ResetBufferedInfos() - Globalen Reset durchführen

Zurücksetzen gepufferter Informationen...
Hilfeinformation
Setzt globale Informationen zurück.
Beispiel: "Zurücksetzen aller C-Strukturen"
Wird intern verwendet!

Aufrufinformation
Variant = My.ResetBufferedInfos(tvWhat AS Variant)
Variant = My.ResetBufferedInfos(tvWhat)
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.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.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.SetParameters(m.loCollection,@lnVar1,@lnVar2)
WAIT WINDOW m.lnVar1
WAIT WINDOW m.lnVar2

SetValue() - Setzen eines Wertes und Rückgabe von .T.

Rückgabe:[Logical], Kopiert einen Variable in eine zweite. tvVonValue => tvAnValue
Hilfeinformation
Rückgabe der Methode ist IMMER .T.!
Kann in DO CASE ... ENDCASE Konstrukten genutzt wreden...

Aufrufinformation
Logical = My.SetValue(tvVonValue AS Variant , RvAnValue AS Variant @)
Logical = My.SetValue(tvVonValue,@RvAnValue)
Codeinformation
*/ Beispiel:
LOCAL cValue AS String
=My.SetValue("Michael"+" "+"Bergner",@cValue)
WAIT WINDOW cValue

*/ Diese Funktion kan in CASE ... ENDCASE Konstrukten genutzt werden!
*/ Beispiel:
LOACL vValue1,vValue2
DO CASE
	CASE !My.SetValue("Michael",@vValue1)
		* Kommt hier nie an!
	CASE ...
	CASE !My.SetValue(DATE(),@vValue2)
		* Kommt hier nie an!
	CASE ...
	OTHERWISE
		...
ENDCASE

SetValueR() - Wie SetValue, jedoch wird die Value zurückgegeben

Wie SetValue, jedoch wird der Wert der Value zurückgegeben!
Hilfeinformation
Wie SetValue, jedoch wird der Wert der Value zurückgegeben!

Aufrufinformation
Variant = My.SetValueR(tvVonValue AS Variant , RvAnValue AS Variant @)
Variant = My.SetValueR(tvVonValue,@RvAnValue)
Codeinformation
*/ Beispiel:
LOCAL lnZahl AS Number
IF My.SetValueR(2+3,@lnZahl)>=5
	*/ Ist...
ELSE
	*/ Ist nicht...
ENDIF

SuspendPms() - Unterbrechen

Anhalten von PMS32 incl. Aktivierung des Debuggers und der Datenumgebung im Entwicklermodus. _vfp.StartMode=0
Hilfeinformation
Diese Funktion kann nur im Entwicklungsmodus genutzt werden!

Aufrufinformation
Variant = My.SuspendPms(tlDebugger AS Boolean,tlSession AS Boolean)
Variant = My.SuspendPms(tlDebugger,tlSession)
Codeinformation


TVL() - Typenprüfung

Rückgabe:[Variant], Ermitteln der Rückgabe über den Datentyp des Defaultwertes. Die Prüf-Variable muss den gleichen Datentyp haben wie der Defaultwert! Wenn nicht, wird der Defultwert zurückgegeben!
Hilfeinformation
Mit dieser Funktion kann der Inhalt einer Variablen verglichen werden.
Für die korrekte Rückgabe kann ein Standardwert angegeben werden.
Zusätzlich besteht die Möglichkeit auch NULL Werte mit einem Standard vorzubelegen.

Aufrufinformation
Variant = My.TVL(tvValue AS Variant , tvDefault AS Variant , tlNullAsDefault AS Boolean)
Variant = My.TVL(tvValue,tvDefault,tlNullAsDefault)
Codeinformation
*/ Ein Beispiel
LOCAL lvReturn AS Variant
*/ Ausgabe 25
WAIT WINDOW My.TVL('',25)
*/ Ausgabe 33
WAIT WINDOW My.TVL(33,25)
*/ Ausgabe 44
WAIT WINDOW My.TVL(.NULL.,44,.T.)


TYVL() - Typenprüfung

Rückgabe:[Variant], Wie TVL jedoch wird ein Variablenname übergeben!
Hilfeinformation
Mit dieser Funktion kann der Inhalt einer Variablen verglichen werden.
Für die korrekte Rückgabe kann ein Standardwert angegeben werden.
Zusätzlich besteht die Möglichkeit auch NULL Werte mit einem Standard vorzubelegen.

Aufrufinformation
Variant = My.TYVL(tcVariable AS String,tvDefault AS Variant, tlNullAsDefault AS Boolean)
Variant = My.TYVL(tcVariable,tvDefault,tlNullAsDefault)
Codeinformation
*/ Diese Funktion ist der Funktion TVL ähnlich!
*/ Beispiel:

PRIVATE pcTest AS String
pcTest = "Michael"

*/ Ausgabe 25
WAIT WINDOW My.TYVL("m.pcTest",25,.T.)

*/ HINWEIS: Die angegebene Variable MUSS als PUBLIC oder PRIVATE deklariert sein!

TestDirectory() - Verzeichnisprüfung

Rückgabe:[String], Testet ein Verzeichnis ob dieses Vorhanden ist und legt auch ein neues Verzeichnis an soweit möglich
Hilfeinformation
Rückgabe:[String], Testet ein Verzeichnis ob dieses Vorhanden ist und legt auch ein neues Verzeichnis an soweit möglich.

Aufrufinformation
String = My.TestDirectory(tcDir AS String,tlEmpty AS Boolean,tlCreate AS Boolean)
String = My.TestDirectory(tcDir,tlEmpty,tlCreate)
Codeinformation
LOCAL lcDir
lcDir = My.TestDirectory("c:\tmp\test1\",.T.,.T.)
IF !EMPTY(m.lcDir)
	*/ Dann wurde das Verzeichnis angelegt!
ENDIF
*/ Hinweis!
*/ Wird der zweite Parameter mit .F. angegeben und konnte das Verzeichnis NICHT angelegt werden, so wird:
lcDir = "*c:\tmp\test1\"
*/ zurückgegeben! Der * am Anfang signalisiert dann, dass das Verzeichnis nicht existiert bzw.
*/ nicht angelegt werden konnte.

TimeCheck() - Protokollieren von Laufzeiten

Protokollieren von Laufzeiten. Aufruf mit: vValue=My.TimeCheck(SECONDS(),Method(....)[,cInfo])
Hilfeinformation
Protokollieren von Laufzeiten. Aufruf mit: vValue=My.TimeCheck(SECONDS(),Method(....)[,cInfo])

Aufrufinformation
,cInfo = My.TimeCheck(SECONDS_ AS NUMBER,tvValue AS Variant,tcInfo AS STRING)
,cInfo = My.TimeCheck(SECONDS_,tvValue,tcInfo)
Codeinformation


TimeWrite() - Zeitstempel schreiben

Schreiben des Protokolls in eine Datei. =My.TimeWrite(cFileName[,cInfo])
Hilfeinformation
Schreiben des Protokolls in eine Datei. =My.TimeWrite(cFileName[,cInfo])

Aufrufinformation
,cInfo = My.TimeWrite(tcFile AS String,tcInfo AS String)
,cInfo = My.TimeWrite(tcFile,tcInfo)
Codeinformation


Wait() - Warten

Wartet eine bestimmte Zeit in Sekunden
Hilfeinformation
Wartet eine bestimmte Zeit in Sekunden.
Geht in allen Programmumgebungen...

Aufrufinformation
Variant = My.Wait(tnSeconds AS NUMBER)
Variant = My.Wait(tnSeconds)
Codeinformation
*/ Beispiel...
? TIME()
=My.Wait(3)
*/ Wartet 3 Sekunden bevor der Befehl abgearbeitet wird
? TIME()
*/ HINWEIS:
*/ Diese Funktion funktioniert auch in einer NameSpace DLL!

WaitWIndow() - Warten mit Anzeige

Rückgabe:[Boolean], Wie Wait Window
Hilfeinformation
Rückgabe:[Boolean], Wie Wait Window
Geht nur unter GUI Bedingungen!

Aufrufinformation
Boolean = My.WaitWIndow(tv1,tv2)
Boolean = My.WaitWIndow(tv1,tv2)
Codeinformation


WaitWhileFile() - Warte wenn Datei

Wartet so lange, bis eine Datei verschwunden ist. Abbruch nach 100 Sekunden...
Hilfeinformation
Wartet so lange, bis eine Datei verschwunden ist. Abbruch nach 100 Sekunden...

Aufrufinformation
Variant = My.WaitWhileFile(tcFile AS STRING,tnAttempts AS Number)
Variant = My.WaitWhileFile(tcFile,tnAttempts)
Codeinformation
*/ Beispiel
LOCAL llNotFile
*/ Wir warten nur 5 Sekunden! Der zeite Parameter ist optional!
llNotFile = My.WaitWhileFile(My.Clients.Path.cTmpDir+'test.txt',5)
IF m.llNotFile
	? "Datei gibt es nicht (mehr)"
ELSE
	? "Die Datei ",My.Clients.Path.cTmpDir+'test.txt'," existiert noch!"
ENDIF

WriteBGLog() - Log der Hintergrundverarbeitung

Schreiben des BackGround Log's
Hilfeinformation
Schreiben des BackGround Log's. Die Informationen werden in die Datei: BackGround.log geschrieben, wenn My.lWriteLog=.T.

Aufrufinformation
Variant = My.WriteBGLog(tcProgram AS String,tcText AS String)
Variant = My.WriteBGLog(tcProgram,tcText)
Codeinformation


WriteFSLog() - Spezielles FormSet LOG

Spezielles LOG nur für Formsets und Forms (HDM)
Hilfeinformation

Aufrufinformation
Variant = My.WriteFSLog(tcText AS STRING,tlOffset AS Boolean)
Variant = My.WriteFSLog(tcText,tlOffset)
Codeinformation


WriteInLog() - Log in eine angegebene Datei

Gleiches wie WriteInLogIf() jedoch wird immer geschrieben!
Hilfeinformation
Gleiches wie WriteInLogIf() jedoch wird immer geschrieben unabhängig von der Einstellung My.lWriteLog.

Aufrufinformation
Variant = My.WriteInLog(tcText AS STRING,tlNoDate AS Boolean,tcFile AS STRING,tlOverWrite AS Boolean)
Variant = My.WriteInLog(tcText,tlNoDate,tcFile,tlOverWrite)
Codeinformation
*/ Ohne Datum/Zeit
=My.WriteInLog("Text",.T.,"MyOwn.log",.F.)
*/ Mit Datum/Zeit
=My.WriteInLog("Text",.F.,"MyOwn.log",.F.)
*/ Nur Zeit
=My.WriteInLog("Text",.NULL.,"MyOwn.log",.F.)

WriteInLogIf() - Log in die angegebene Datei wenn...

Rückgabe:[Boolean], Gleiche Funktion wie WriteLogIf, jedoch kann zusätzlich ein anderer Dateiname angegeben werden.
Hilfeinformation
Gleiches wie WriteInLog() jedoch wird nur geschrieben abhängig von der Einstellung My.lWriteLog.

Aufrufinformation
Boolean = My.WriteInLogIf(tcText AS STRING,tlNoDate AS Boolean,tcFile AS STRING,tlOverWrite AS Boolean)
Boolean = My.WriteInLogIf(tcText,tlNoDate,tcFile,tlOverWrite)
Codeinformation
*/ Ohne Datum/Zeit
=My.WriteInLogIf("Text",.T.,"MyOwn.log",.F.)
*/ Mit Datum/Zeit
=My.WriteInLogIf("Text",.F.,"MyOwn.log",.F.)
*/ Nur Zeit
=My.WriteInLogIf("Text",.NULL.,"MyOwn.log",.F.)

WriteInSLog() - Schreiben zweier Informationen

Wie WriteInLog, jedoch mit zweitem Info-Parameter
Hilfeinformation
Wie WriteInLog, jedoch mit zweitem Info-Parameter.

Aufrufinformation
Variant = My.WriteInSLog(tcText AS STRING,tcInfo AS String,tlNoDate AS Boolean,tcFile AS STRING,tlOverWrite AS Boolean)
Variant = My.WriteInSLog(tcText,tcInfo,tlNoDate,tcFile,tlOverWrite)
Codeinformation
*/ Ohne Datum/Zeit
=My.WriteInSLog("Text","Info",.T.,"MyOwn.log",.F.)
*/ Mit Datum/Zeit
=My.WriteInSLog("Text","Info",.F.,"MyOwn.log",.F.)
*/ Nur Zeit
=My.WriteInSLog("Text","Info",.NULL.,"MyOwn.log",.F.)

WriteLog() - Log intern

Schreibt ein LOG mit... und zwar IMMER auch wenn best. ENV Variablen NICHT gesetzt sind...
Hilfeinformation
Schreibt ein LOG mit... und zwar IMMER auch wenn best. ENV Variablen NICHT gesetzt sind...

Aufrufinformation
Variant = My.WriteLog(tcText AS STRING,tlNoDate AS Boolean,tlOverWrite AS Boolean)
Variant = My.WriteLog(tcText,tlNoDate,tlOverWrite)
Codeinformation


WriteLogIf() - Log intern wenn

Schreibt ein LOG mit wenn PMSWRITELOG=ON. Siehe auch THIS.WriteLog()
Hilfeinformation
Schreibt ein LOG mit wenn PMSWRITELOG=ON. Siehe auch THIS.WriteLog()

Aufrufinformation
Variant = My.WriteLogIf(tcText AS STRING,tlNoDate AS Boolean,tlOverWrite AS Boolean)
Variant = My.WriteLogIf(tcText,tlNoDate,tlOverWrite)
Codeinformation


WriteLogText() - Schreibt die Informationen aus aLogs[n,3]

Rückgabe:[Boolean], Schreibt die Informationen aus THIS.aLogs(n,3) in eine Datei. tnWhat=>Bitpattern. 0-WithDate,1-WithSeconds,2-WithTime
Hilfeinformation
Rückgabe:[Boolean], Schreibt die Informationen aus THIS.aLogs[n,3] in eine Datei. tnWhat=>Bitpattern. 0-WithDate,1-WithSeconds,2-WithTime

Aufrufinformation
Boolean = My.WriteLogText(tnWhat AS INTEGER,tcFile AS STRING)
Boolean = My.WriteLogText(tnWhat,tcFile)
Codeinformation


WriteSameLog() - Alles ins gleiche Log

Schreibt alle LOG Informationen in die PMSALL.LOG Datei. NUR wenn PMSWRITELOG="ON"
Hilfeinformation
Schreibt alle LOG Informationen in die PMSALL.LOG Datei. NUR wenn PMSWRITELOG="ON"

Aufrufinformation
Variant = My.WriteSameLog(tcText AS STRING,tlNoDate AS Boolean,tlOverWrite AS Boolean)
Variant = My.WriteSameLog(tcText,tlNoDate,tlOverWrite)
Codeinformation


WriteSameLogIf() - Alles ins gleiche Log wenn

Siehe WriteSameLog() incl. Prüfung
Hilfeinformation
Siehe WriteSameLog() incl. Prüfung.

Aufrufinformation
Variant = My.WriteSameLogIf(tcText AS STRING,tlNoDate AS Boolean,tlOverWrite AS Boolean)
Variant = My.WriteSameLogIf(tcText,tlNoDate,tlOverWrite)
Codeinformation


WriteStackLogIf() - Programmstack Log

Schreiben eines StackLogs, wenn THIS.lWriteLog=.T.
Hilfeinformation
Schreiben eines StackLogs, wenn THIS.lWriteLog=.T.

Aufrufinformation
Variant = My.WriteStackLogIf(tcProgram AS STRING)
Variant = My.WriteStackLogIf(tcProgram)
Codeinformation


_MenuClick() - Intern

Array druch Funktion ersetzt
Hilfeinformation

Aufrufinformation
Variant = My._MenuClick(tvIndex1 AS Variant,tnIndex2 AS NUMBER)
Variant = My._MenuClick(tvIndex1,tnIndex2)
Codeinformation


_MenuEnabled() - Intern

Array durch Funktion übersetzt
Hilfeinformation

Aufrufinformation
Variant = My._MenuEnabled(tvIndex1 AS Variant,tnIndex2 AS NUMBER)
Variant = My._MenuEnabled(tvIndex1,tnIndex2)
Codeinformation


aMLic() - Lizensierung abrufen

Abruf der LIC mit direktem Zugriff
Hilfeinformation
Abruf der LIC mit direktem Zugriff

Aufrufinformation
Variant = My.aMLic(tvIndex1 AS Variant,tnIndex2 AS NUMBER)
Variant = My.aMLic(tvIndex1,tnIndex2)
Codeinformation


aMRights() - Rechte abrufen

Abfrage der Rechte für eine Form des angemeledeten Benutzers. Rückgabe ist entweder Integer oder String!
Hilfeinformation
Abfrage der Rechte für eine Form des angemeledeten Benutzers.  Rückgabe ist entweder Integer oder String!.

Aufrufinformation
Variant = My.aMRights(tcForm AS STRING,tlAsInteger AS Boolean)
Variant = My.aMRights(tcForm,tlAsInteger)
Codeinformation
*/ Beispiel
LOCAL lcRights AS String,liRights AS Integer
lcRights = My.aMRights("B0101",.F.)
liRights = My.aMRights("B0101",.T.)
*/ Rechte im String: (Entsprechende Stelle enthält "X")
*/	1 - Ansehen
*/	2 - Ändern
*/	3 - Neuanlage
*/	4 - Löschen
*/	5 - Drucken
*/ Gilt auch für den Integerwert: (Entspechende Stelle enthält 1)
IF BITTEST(m.liRights,1)
	*/ Dann darf er zumindest ansehen...
ENDIF

lEndForm() - Darf die Form beendet werden?

Abfrage der Felder in einer HDM Maske, ob div. Codes noch durchlaufen werden dürfen. Hier geht es um das FormSet
Hilfeinformation
Abfrage der Felder in einer HDM Maske, ob div. Codes noch durchlaufen werden dürfen. Hier geht es um das FormSet. Wird nur in HDM Masken benötigt.

Aufrufinformation
Boolean = My.lEndForm(toForm AS Form)
Boolean = My.lEndForm(toForm)
Codeinformation


oIm() - Background Log

Wird von den Handlerklassen benötigt! NICHT MY!
Hilfeinformation

Aufrufinformation
Variant = My.oIm(tcS AS STRING,toT AS OBJECT,tcN AS STRING,tlId AS Boolean,tvp1,tvp2,tvp3,tvp4,tvp5,tvp6,tvp7,tvp8,tvp9)
Variant = My.oIm(tcS,toT,tcN,tlId,tvp1,tvp2,tvp3,tvp4,tvp5,tvp6,tvp7,tvp8,tvp9)
Codeinformation


oImh() - Intern

Wie OIM, jedoch als alte Instanziierung incl. hIndex
Hilfeinformation

Aufrufinformation
Variant = My.oImh(tcS AS STRING,toT AS Object,tcN AS String,tlId AS Boolean,tvp1,tvp2,tvp3,tvp4,tvp5,tvp6,tvp7,tvp8,tvp9)
Variant = My.oImh(tcS,toT,tcN,tlId,tvp1,tvp2,tvp3,tvp4,tvp5,tvp6,tvp7,tvp8,tvp9)
Codeinformation


oIn() - Intern

Erzeugt ein neues Objekt, dass NICHT von My gehalten wird. Der "alte" Aufruf wurde mit My.CreateNew... aufgerufen, was jetzt geändert wurde.
Hilfeinformation

Aufrufinformation
Variant = My.oIn(tcS AS STRING,toT AS Object,tcN AS String,tlId AS Boolean,tvp1,tvp2,tvp3,tvp4,tvp5,tvp6,tvp7,tvp8,tvp9)
Variant = My.oIn(tcS,toT,tcN,tlId,tvp1,tvp2,tvp3,tvp4,tvp5,tvp6,tvp7,tvp8,tvp9)
Codeinformation


Liste der Properties von My


LBGPlog - Background Log

Sollen Informationen über den Hintergrundprozess PMS32HX auf dem Server protokolliert werden?
Hilfeinformation
Ist .T., wenn GETENV("PMSWRITELOG")="PMS32HX". Auf diese Einstellung wird im gesamten System reagiert! Ist der Wert auf .T. gesetzt, so werden auch in den Namespaces Logs geschrieben.

Aufrufinformation
Boolean = My.LBGPlog
Codeinformation


OutFHTM - Umwandlung UTF-String

Wert:[Object], Umwandlung UTF / HTML nach String und umgekehrt
Hilfeinformation

Aufrufinformation
Object = My.OutFHTM
Codeinformation


PrivateSession - Private Datasession Object

Wert:[Object], Gibt ein PrivateDataSesion Objekt zurück
Hilfeinformation
Wert:[Object], Gibt ein PrivateDataSesion Objekt zurück.

Aufrufinformation
Object = My.PrivateSession
Codeinformation
LOCAL loSession AS DataSession
loSession = My.PrivateSession

ScriptFile - Name der Scriptdatei

Name der Scriptdatei, die bei der Zuweisung der Mandanten-ID nachgeladen wird.
Hilfeinformation
Name der Scriptdatei, die bei der Zuweisung der Mandanten-ID nachgeladen wird.

Aufrufinformation
String = My.ScriptFile
Codeinformation
*/ ScriptFile wird eigentlich intern benötigt!
*/ Hier nur ein Beispiel...
*/ My sollte bekannt sein...
My.ScriptFile = "MeineScriptDatei.Define"		&& Die Datei muss in sys\mysys\ existieren!
*/ Zuweisen der Mandanten-ID
My.cIdx02 = My.cIdx02

_ComClsId - COM+ CLSID

Gibt die CLSID der COM Klasse zurück.
Hilfeinformation
Gibt die CLSID der COM Klasse zurück.

Aufrufinformation
String = My._ComClsId
Codeinformation


_Datasession - DataSession

Enthält die DataSessionId des COM+ Servers, der diese Klasse erstmalig aktiviert hat! Wird für die Speicherbelegung benötigt...
Hilfeinformation
Enthält die DataSessionId des COM+ Servers, der diese Klasse erstmalig aktiviert hat! Wird für die Speicherbelegung benötigt...

Aufrufinformation
Number = My._Datasession
Codeinformation


_LogDir - Verzeichnis der LOG-Dateien

Verzeichnis der LOG Dateien, wird aus dem Startpfad ermittelt...
Hilfeinformation
Verzeichnis der LOG Dateien, wird aus dem Startpfad ermittelt...

Aufrufinformation
String = My._LogDir
Codeinformation


_LogFile - Name der LOG datei

LOG Datei, die eventuell geschrieben wird. Wird vom Programmnamen abgeleitet.
Hilfeinformation
LOG Datei, die eventuell geschrieben wird. Wird vom Programmnamen abgeleitet.

Aufrufinformation
String = My._LogFile
Codeinformation


_MenuesItem - Kurzzugriff auf das Standardmenü

Rückgabe:[Variant], Kurzform von My.AppForms.Menues.Item("....") Kann in Menüs verwendet werden!
Hilfeinformation
Rückgabe:[Variant], Kurzform von My.AppForms.Menues.Item("....") Kann in Menüs verwendet werden!

Aufrufinformation
Boolean = My._MenuesItem[tcIndex1 AS String | tiIndex1 AS Integer , tiIndex2 AS Integer]
Boolean = My._MenuesItem[tcIndex1|,tiIndex1,tiIndex2]
Codeinformation
LOCAL llEnabled
llEndabled = My._MenusItem("SYSMENU._PRECORD._SAVE.Enabled")

_Name - Name des NameSpace

Name der COM+ Klasse. MUSS angegeben werden. Dieser _Name wird übertragen und ist von außen abfragbar. Diese Property ist ReadOnly.
Hilfeinformation
Dateiname der Applikation. Wenn unter Vfp gestartet wird! sind diese Werte NICHT gesetzt! Die Property _Name gibt den Klassennamen der EXE bzw. DLL zurück.
Mit diesem Namen und dem Namen der EXE/DLL kann dann die COM+ Klasse instanziiert werden. Gleiches kann man auch aus den Eigenschaften der Programmklasse
EXE/DLL herausfinden.

Aufrufinformation
String = My._Name
Codeinformation
LOCAL lcComName AS String
lcComName = My._Name
WAIT WINDOW m.lcComName

_Path - Programmpfad

Pfad der Applikation bzw. des COM+ Servers. ACHTUNG! My wird auch im COM Server als Public Variable definiert!
Hilfeinformation
Pfad der Applikation bzw. des COM+ Servers. ACHTUNG! My wird auch im COM Server als Public Variable definiert!

Aufrufinformation
String = My._Path
Codeinformation


_StartMode - Startmodus des aufrufenden Servers

Startmodus des aufrufenden Servers.
Hilfeinformation
Die Property gibt den Startmodus des Aufrufers zurück. Es gibt insgesamt 6 Modi:
0 - Unter VFP Entwicklung
1 - Unter VFP-COM Steuerung
2 - Start als COM.EXE
3 - Start als COM.DLL in Singleprocess
4 - Start als EXE (Standard Programmaufruf)
5 - Start als COM.DLL in Multiprocess

Aufrufinformation
Number = My._StartMode
Codeinformation
*/ Abfrage des Modus
WAIT WINDOW My._StartMode

_StartNumber - Intern

Nummer des Externen Starts vom Handler
Hilfeinformation
Nummer des Externen Starts vom Handler. Wird intern verwendet

Aufrufinformation
Number = My._StartNumber
Codeinformation


_Terminal - Name des Rechners

Computername aus SYS(0)
Hilfeinformation
Computername aus SYS(0) in Großschrift.

Aufrufinformation
String = My._Terminal
Codeinformation
LOCAL lcTerminal
lcTerminal = UPPER(ALLTRIM(GETWORDNUM(SYS(0),1,"#")))
IF m.lcTerminal==My._Terminal
	*/ Dann wars korrekt berechnet...
ENDIF

_User - Benutzer (Windows)

Systembenutzer aus SYS(0)
Hilfeinformation
Systembenutzer aus SYS(0) in UPPER()

Aufrufinformation
String = My._User
Codeinformation
LOCAL lcUser
lcUser = UPPER(ALLTRIM(GETWORDNUM(SYS(0),2,"#")))
IF m.lcUser==My._User
	*/ Dann wars korrekt berechnet...
ENDIF

_Version - Version der Programmdatei

Versionsnummer nach PMS32 Konvention. H.U.DD.VFPV.bbbb
Hilfeinformation
Versionsnummer nach PMS32 Konvention. H.U.DD.SSHH.bbbb
Die Property _Version gibt die Programmversion (gilt für DLL, EXE und auch für APP) zurück.
H      - Hauptversion
U      - Unterversion
DD      - Datenbankversion
SS      - Servicepack
HH      - Hotfix
bbbb- Buildnumber

Aufrufinformation
String = My._Version
Codeinformation
WAIT WINDOW My._Version

_VfpVersion - VFP Version

VFP Version der VFP-9 dll.
Hilfeinformation
VFP Version der VFP-9 dll.

Aufrufinformation
String = My._VfpVersion
Codeinformation
WAIT WINDOW My._VfpVersion

_lComStart - Start unter COM+?

Ist .T., wenn My unter COM+ gestartet wurde.
Hilfeinformation
Ist .T., wenn My unter COM+ gestartet wurde.
Interne Verwendung

Aufrufinformation
Boolean = My._lComStart
Codeinformation


aLogs - Array der Log's

Array für den Zugriff von cLogTextAdd
Hilfeinformation
Array für den Zugriff von cLogTextAdd...
Wird intern verwendet, wenn LOG's mitgeschrieben werden.

Aufrufinformation
Array = My.aLogs[tiIndex1 AS Integer , tiIndex2 AS Integer]
Array = My.aLogs[tiIndex1,tiIndex2]
Codeinformation


aLogsCount - Anzahl der Sätze in aLogs

Zähler für aLogs(n,m). Siehe auch WriteLogText()
Hilfeinformation
Zähler für aLogs(n,m). Siehe auch WriteLogText()
Wird intern verwendet, wenn LOG's mitgeschrieben werden.

Aufrufinformation
Array = My.aLogsCount
Codeinformation


aTimes - Array mit Zeitdaten

Speichert Zeitdaten / Durchlaufzeiten von Methoden bzw. Berechnungen
Hilfeinformation
Speichert Zeitdaten / Durchlaufzeiten von Methoden bzw. Berechnungen.
Wird intern verwendet, wenn LOG's mitgeschrieben werden.

Aufrufinformation
Array = My.aTimes[tiIndex1 AS Integer , tiIndex2 AS Integer]
Array = My.aTimes[tiIndex1,tiIndex2]
Codeinformation


aTimesCount - Anzahl der Sätze in aTimes

Zähler von THIS.aTimes(n,m)
Hilfeinformation
Zähler von THIS.aTimes(n,m)
Wird intern verwendet, wenn LOG's mitgeschrieben werden.

Aufrufinformation
Array = My.aTimesCount
Codeinformation


cBrowFor - Filterbedingung

Rückgabe: [String], gibt den Wert für m.brow_for zurück, soweit definiert ansonsten Leerstring
Hilfeinformation
Rückgabe: [String], gibt den Wert für m.brow_for zurück, soweit definiert ansonsten Leerstring.

Aufrufinformation
String = My.cBrowFor
Codeinformation
LOCAL lcFilter
lcFilter = My.cBrowFor

cClassHelp - Hilfe der Klasse

Gibt die Hilfe aus PMSMESS.DBF zurück
Hilfeinformation

Aufrufinformation
String = My.cClassHelp
Codeinformation


cIdc26 - Systemsprache

Eingestellte Sprache des PMS32 Systems
Hilfeinformation
Eingestellte Sprache des PMS32 Systems
Die Einstellung wird über PMS_00.DLL vorgenommen

Aufrufinformation
String = My.cIdc26
Codeinformation
WAIT WINDOW My.cIdc26

cIdc26R - Reportsprache

Reportsprache. Es wird m.g_rsprache abgefragt
Hilfeinformation
Reportsprache. Es wird m.g_rsprache abgefragt. Wird die Sparche in Reports abgefragt, so sollten Sie My.cIdc26R benutzen und NICHT mehr die alte Variable m.g_rSprache!

Aufrufinformation
String = My.cIdc26R
Codeinformation


cIdx02 - Mandanten-ID

Mandanten-ID. Diese ist in der Datei pms32.pth gespeichert und dient dort zur Zuordnung des Mandante und dessen Pfade.
Hilfeinformation
Mandanten-ID. Diese ist in der Datei pms32.pth gespeichert und dient dort zur Zuordnung des Mandante und dessen Pfade.
Auszug aus der Pfaddatei pms32.pth:

      */ Verzeichnis der Microcube - Dateien. Wenn leer dann gleich: cDbfdir
      cCubdir = ""
      */ Ein 'anderes' Dokumentenverzeichnis kann angegeben werden. Wenn nicht angegeben dann gleich: cDbfdir+'docs\'
      */ cDocDir = ""
      */ Verzeichnis der Mandantentabellen. Hier ein Beispiel mit UNC Pfaden.
      */ Wird die Freigabe auf dem Server 'versteckt' \pms$\ angegeben, so kann ein Cryptovirius das Verzeichnis nicht finden!
      cDbfdir = "\\server\pms$\pms32\daten\demo.32\"
      */ Verzeichnis der Reporttabellen
      */ Gibt man Bilddateien in einem Report mit My.Clients.Path.cFrxDir+'BILDNAME.JPG' an, so kann PMS32 einfach auf einen anderen Rechner kopiert werden!
      cFrxdir = "\\server\pms$\pms32\reports\demo.32\"
      */ Beschreibung des Mandanten
      cIcx02  = "TESTMANDANT DEMO"
      */ ID der Firmenparameter zum Mandant.
      cIdx09  = "DEMO"
      */ Kann unter der Mandanteninformation leer sein, wenn für mehrere Mandanten das 'gleiche' Systemverzeichnis gültig ist.
      cSysdir = ""
      */ Willkommens-Information als Hintergrundbild in PMS32
      cWelcome= "pms32.htm"
      */ Nummer des Mandanten, beim Einsatz eines BarcodeScanners sollte diese Nummer EINDEUTIG sein!
      nNumber = 1
<>

Aufrufinformation
String = My.cIdx02
Codeinformation
*/ Abfrage der Mandanten-ID
WAIT WINDOW My.cIdx02

*/ Wenn man mittels VFP Zugriff auf die Applikation braucht:

*/ 1. vfp9.exe öffenen
*/ 2. In das Startverzeichnis von PMS32 wechseln (MUSS)
CD c:\pms\pms32
*/ 3. My Instanziieren
My = NEWOBJECT("pmsmy","pmsmyhandler.vcx","pmsmyhandler.app")
*/ 4. Den letzten aktuellen Mandanten zuweisen
My.cIdx02 = My.cIdx02
*/ 5. Los gehts...

cLogTextAdd - Textlog merken

Added eine Information, die später ausgegeben werden soll. Siehe auch WriteLogText()
Hilfeinformation
Added eine Information, die später ausgegeben werden soll. Siehe auch WriteLogText()

Aufrufinformation
String = My.cLogTextAdd
Codeinformation


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.cMethod
Codeinformation
*/ Abruf...
WAIT WINDOW My.cMethod

cPmsOtherLicFile - Andere Lizenzdatei

Wert:[String], Umgebungsvariable, wenn eine andere LIC Datei genommen werden soll. GETENV("PMSLICFILE"), wenn leer wird er Standard genommen.
Hilfeinformation
Wert:[String], Umgebungsvariable, wenn eine andere LIC Datei genommen werden soll. GETENV("PMSLICFILE"), wenn leer wird der Standard genommen.

Aufrufinformation
String = My.cPmsOtherLicFile
Codeinformation


cPmsVersion - Version von PMS

Rückgabe der PMS Version im Format H.U.DD#SSFF
Hilfeinformation
Rückgabe der PMS Version im Format H.U.DD#SSFF.
Beispiel: 1.0.04#3403

Aufrufinformation
String = My.cPmsVersion
Codeinformation


cResetInfos - Reset C-Structure

Reset C-Structure
Hilfeinformation
Reset C-Structure
Diese Property ist normalerweise WriteOnly! Sie dient zum Zurücksetzen verschiedener Informationen.
#DEFINE CRI_REMOVE_MENUES "REMOVE-MENUES"
#DEFINE CRI_REMOVE_CSFILES "REMOVE-CS-FILES"
#DEFINE CRI_REMOVE_SCRIPTS "REMOVE-CS-SCRIPTS"
#DEFINE CRI_CHANGE_IDX09 "CHANGE-IDX09"
#DEFINE CRI_LOGIN "USER_LOGIN"

Aufrufinformation
String = My.cResetInfos
Codeinformation
*/ Verschiedene RESET Befehle...
My.cResetInfos = "REMOVE-MENUES"
My.cResetInfos = "REMOVE-CS-FILES"
My.cResetInfos = "REMOVE-CS-SCRIPTS"
My.cResetInfos = "CHANGE-IDX09"
My.cResetInfos = "USER_LOGIN"
*/ Je nach Klasse wird ein entsprechender RESET ausgeführt!

cSys2015 - Rückgabe einer lokalen temporären ID

Gibt eine LOKALE ID in Form von _000000001 => _999999999 zurück. Schneller wie SYS(2015)
Hilfeinformation
Gibt eine LOKALE ID in Form von _000000001 => _999999999 zurück. Schneller wie SYS(2015)

Aufrufinformation
String = My.cSys2015
Codeinformation
*/ Beispiel:
? My.cSys2015
? My.cSys2015
? My.cSys2015
*/ Die Rückgabe ist vom Typ: String und hat IMMER 10 Stellen
*/ Kann genommen werden, wenn für temporäre Cursor eine temporäre ID benötigt wird...
CREATE CURSOR temp (_id C(10))
INSERT INTO temp (_id) VALUES (My.cSys2015)
INSERT INTO temp (_id) VALUES (My.cSys2015)
INSERT INTO temp (_id) VALUES (My.cSys2015)
BROWSE

cTerminal - Name der Terminals

Name des Terminals incl. Umwandlung von Sonderzeichen.
Hilfeinformation
Name des Terminals incl. Umwandlung von Sonderzeichen.

Aufrufinformation
String = My.cTerminal
Codeinformation


cUser - Benutzer

Angemeldeter Benutzer unter PMS32 bzw. Windows
Hilfeinformation
Angemeldeter Benutzer unter PMS32 bzw. Windows

Aufrufinformation
String = My.cUser
Codeinformation
WAIT WINDOW My.cUser

fxUsr - Eindeutiger Schlüssel

Gibt einen Schlüssel für Terminal-User-IDX02-SYS(2015) zurück. Eindeutiger Schlüssel
Hilfeinformation
Gibt einen Schlüssel für Terminal-User-IDX02-SYS(2015) zurück. Eindeutiger Schlüssel pro Terminal, Benutzer, Mandant und SYS(2015).

Aufrufinformation
Number = My.fxUsr
Codeinformation
*/ Gibt einen Schlüssel für Terminal-User-MANDANT-SYS(2015) zurück. Eindeutiger Schlüssel
*/ TTTTT-UUUUU-MMMMM-SSSSSSSSS : 27 Stellen...

lChange - Änderung?

Gibt den Wert von l_change zurück. Wenn l_change NICHT vorhanden ist, wird .T. zurückgegeben. Verhindert MenüFehler im Skip For
Hilfeinformation
Gibt den Wert von l_change zurück. Wenn l_change NICHT vorhanden ist, wird .T. zurückgegeben. Verhindert MenüFehler im Skip For.
ACHTUNG: Es gibt auch eine NICHT Funktion! Auf keinen Fall die Funktionen verwechseln!

Aufrufinformation
Boolean = My.lChange
Codeinformation


lChild - Childtabelle?

Prüfung auf m.Child.
Hilfeinformation
Prüfung auf m.Child. Gibt zurück, ob eine Childtabelle (ALIAS) definiert ist.

Aufrufinformation
Boolean = My.lChild
Codeinformation
*/ Nur sinnvoll innerhalb von PMS32
PRIVATE Child AS String
Child = .NULL.
? My.lChild
Child = "E11"
? My.lChild

lENVlog - Environment Log

Soll vom ENV ein LOG mitgeschrieben werden?
Hilfeinformation
Ist .T., wenn GETENV("PMSWRITELOG")="ENV". Auf diese Einstellung wird im gesamten System reagiert! Ist der Wert auf .T. gesetzt, so werden auch in den Namespaces Logs geschrieben.

Aufrufinformation
Boolean = My.lENVlog
Codeinformation


lEditGridColumns - Datenraster

Wird durch GETENV("PMS32EditGridColumns")="ON" gesetzt
Hilfeinformation
Wird durch GETENV("PMS32EditGridColumns")="ON" gesetzt, wenn der Benutzer Datenrasterinformatioen explizit ändern darf.

Aufrufinformation
Boolean = My.lEditGridColumns
Codeinformation


lEnd - Beenden?

Der COM - Server wird beendet...
Hilfeinformation
Wird gesetzt, wenn ein Namespace Server beendet wird.
Interne Verwendung.

Aufrufinformation
Boolean = My.lEnd
Codeinformation


lEndAll - PMS32 beenden?

Wert:[Boolean], Gibt den Wert von m.g_EndAll zurück... Wenn .T. wird PMS beendet.
Hilfeinformation
Wert:[Boolean], Gibt den Wert von m.g_EndAll zurück... Wenn .T. wird PMS beendet.

Aufrufinformation
Boolean = My.lEndAll
Codeinformation
*/ Beispiel...
IF !My.lEndAll
	*/ Hier kann weitergearbeitet werden
ENDIF

lEplanLog - EPLAN SQL Protokollieren?

Soll ein LOG bei EPLAN mitgeschrieben werden? Bedingt: PMSWRITELOG LIKE 'EPLAN'
Hilfeinformation
Wird durch GETENV("PMSWRITELOG")="EPLAN" gesetzt.

Aufrufinformation
Boolean = My.lEplanLog
Codeinformation


lEraseClass - Im Destroy?

Diese Klasse wird beendet. Keine Instanziierung im DESTROY der Klasse
Hilfeinformation
Diese Klasse wird beendet. Keine Instanziierung im DESTROY der Klasse.
Wenn das Objekt aus dem Speicher gelöscht werden soll, sollen 'KEINE' weiteren Klassen instanziiert werden!
Auf keinen Fall ändern!

Aufrufinformation
Boolean = My.lEraseClass
Codeinformation


lFormStackLog - Mitschreiben eines FormStack's

Mitschreiben eines speziellen LOG's nur beim Aufruf von HDM Masken. PMSWRITELOG="FORM"
Hilfeinformation
Mitschreiben eines speziellen LOG's nur beim Aufruf von HDM Masken. PMSWRITELOG="FORM".
Diese Einstellung bezieht sich nur auf Protokolle der HDM Masken.

Aufrufinformation
Boolean = My.lFormStackLog
Codeinformation


lGrid - Datenraster aktiv?

Rückgabe:[Boolean], Gibt .T. zurück, wenn ein Grid aktiv ist.
Hilfeinformation
Rückgabe:[Boolean], Gibt .T. zurück, wenn ein Datenraster aktiv ist.
Diese Property ist nur innerhalb PMS32 sinnvoll.

Aufrufinformation
Boolean = My.lGrid
Codeinformation


lGridLog - Grid's protokollieren

Wert:[Boolean], Mitschreiben der Grid Log's. PMSWRITELOG=GRID
Hilfeinformation
Ist .T., wenn GETENV("PMSWRITELOG")="GRID". Auf diese Einstellung wird im gesamten System reagiert! Ist der Wert auf .T. gesetzt, so werden auch in den Namespaces Logs geschrieben.
Diese Einstellung wird nur in Grid's verwendet, um dort ein Protokoll mitzuschreiben.
Damit können dediziert nur Grid's protokolliert werden.

Aufrufinformation
Boolean = My.lGridLog
Codeinformation


lHasGUI - Besteht ein GUI?

Wert:[Boolean], Gibt an, ob das System ein GUI hat oder nicht. Bei COM+ DLL's ist dieser Wert .F.
Hilfeinformation
Wert:[Boolean], Gibt an, ob das System ein GUI hat oder nicht. Bei COM+ DLL's ist dieser Wert .F.

Aufrufinformation
Boolean = My.lHasGUI
Codeinformation
IF My.lHasGui
	*/ Funktioniert nur dann wenn ein GUI besteht!
	WAIT WINDOW "Hallo Welt..."
ENDIF

lInDialog - Dialogabfrage?

Wird gerade ein Dialog ausgeführt. Bedeutet für alle Timer Ihren Prozess zu stoppen...
Hilfeinformation
Wird gerade ein Dialog ausgeführt. Bedeutet für alle Timer Ihren Prozess zu stoppen...

Aufrufinformation
Boolean = My.lInDialog
Codeinformation


lIsJSOn - Json Library?

Prüfen und Setzen der JSON.FLL
Hilfeinformation

Aufrufinformation
Boolean = My.lIsJSOn
Codeinformation


lIsTheme - Theme installiert?

Ist die uxtheme.dll installiert?
Hilfeinformation
Ist die uxtheme.dll installiert?
Diese Property wird eigentlich intern verwendet um zu prüfen, ob Themes verfügbar sind.

Aufrufinformation
Boolean = My.lIsTheme
Codeinformation


lIsVfp2C32 - Bibliothek aktiv?

Wert:[Boolean], Gibt an, ob die VFP2C32 Library gesetzt ist und diese auch Initialisiert wurde
Hilfeinformation
Wert:[Boolean], Gibt an, ob die VFP2C32 Library gesetzt ist und diese auch Initialisiert wurde

Aufrufinformation
Boolean = My.lIsVfp2C32
Codeinformation


lLookupChildRelation - Relationen neu herstellen?

Wert:[Boolean], Umgebungsvariable, die bei Lookups des Masters die Relation zum Child neu herstellt. GETENV("PMS32LookupChildRelation")=="OFF"
Hilfeinformation
Wert:[Boolean], Umgebungsvariable, die bei Lookups des Masters die Relation zum Child neu herstellt. GETENV("PMS32LookupChildRelation")=="OFF". 
Diese Property wird intern benötigt!

Aufrufinformation
Boolean = My.lLookupChildRelation
Codeinformation


lMaster - Master definiert?

Rückgabe des Masters der Form oder EMPTY wenn m.Master nicht definiert ist
Hilfeinformation
Rückgabe des Masters der Form oder EMPTY wenn m.Master nicht definiert ist.

Aufrufinformation
String = My.lMaster
Codeinformation
LOCAL lcMaster
lcMaster = My.lMaster
IF !EMPTY(m.lcMaster)
	SELECT (m.lcMaster)
	*/ ...
ENDIF

lMyReadCheck - Intern

Wird im INIT der Klasse auf .T. gesetzt, wenn VARTYPE(MyReadCheck)=.T. ist. Verhindert jegliche Aktivierung von Klassen!
Hilfeinformation
Wird im INIT der Klasse auf .T. gesetzt, wenn VARTYPE(MyReadCheck)=.T. ist. Verhindert jegliche Aktivierung von Klassen!
AUF KEINEN FALL ÄNDERN!

Aufrufinformation
Boolean = My.lMyReadCheck
Codeinformation


lNoAutoLogon - Automatikmodus?

Wert:[Boolean], Es wurden keine Automatik Parameter an PMS32C.EXE übergeben. Ist dann .F., wenn eine automatische Prozessausführung gewünscht ist.
Hilfeinformation
Wert:[Boolean], Es wurden keine Automatik Parameter an PMS32C.EXE übergeben. Ist dann .F., wenn eine automatische Prozessausführung gewünscht ist.

Aufrufinformation
Boolean = My.lNoAutoLogon
Codeinformation
IF !My.lNoAutoLogon
	*/ Dann soll eine automatik Funktion ausgeführt werden.
ENDIF

lNotUseDynamicValues - Abschalten der Dynamicfunktionen

Nicht die DynamicValues der Grid's verwenden! Wird über die ENV Variable NotUseDynamicValues=ON gesetzt
Hilfeinformation
Nicht die DynamicValues der Grid's verwenden! Wird über die ENV Variable NotUseDynamicValues=ON gesetzt

Aufrufinformation
Boolean = My.lNotUseDynamicValues
Codeinformation


lPmsCompatiple - Verhalten wie PMS16?

Wert:[Boolean], Gleichers Verhalten wie unter PMS16? GETENV("PMSCOMPATIPLE")=="PMS32"
Hilfeinformation
Wert:[Boolean], Gleichers Verhalten wie unter PMS16? GETENV("PMSCOMPATIPLE")=="PMS32"

Aufrufinformation
Boolean = My.lPmsCompatiple
Codeinformation


lPmsRemoteServer - Remote Server?

Wert:[Boolean], Läuft PMS32 auf einem Remote Plattform? Dient zur Steuerung der READ CYCLE Felder. In diesem Fall darf das Feld nicht geändert werden...
Hilfeinformation
Wert:[Boolean], Läuft PMS32 auf einem Remote Plattform? Dient zur Steuerung der READ CYCLE Felder. In diesem Fall darf das Feld nicht geändert werden...

Aufrufinformation
Boolean = My.lPmsRemoteServer
Codeinformation


lProcessServerRunning - Läuft der Hintergrundprozess?

Wert:[Boolean], Gibt zurück, ob ein Hintergrundprozess auf dem Server am Laufen ist
Hilfeinformation
Ist ein Hintergrundprozess auf dem Server am Laufen?
Dazu müssen die Dateien im Verzeichnis sys\mysys\
System.Define und eventuell System.Background.Define vorhanden sein.
Weitere Informationen erhalten Sie unter Samples\sample_pms32hx.zip

Aufrufinformation
Boolean = My.lProcessServerRunning
Codeinformation


lProgram - Momentanes Programm

Gibt den Wert von m.l_program zurück, falls vorhanden
Hilfeinformation
Gibt den Wert von m.l_program zurück, falls vorhanden, wenn nicht wird der Name der momentan aktiven Methode zurückgegeben.
ACHTUNG: Dieser Abruf gibt IMMER einen Programmnamen zurück!

Aufrufinformation
String = My.lProgram
Codeinformation


lReleaseAlwaysMenus - Alles Menüs schliessen?

Wert:[Boolean], Umgebungsvariable, die ein Schliessen aller Menüs veranlasst. GETENV("PMS32RELEASEALWAYSMENUS")=="ON"
Hilfeinformation
Wert:[Boolean], Umgebungsvariable, die ein Schliessen aller Menüs veranlasst. GETENV("PMS32RELEASEALWAYSMENUS")=="ON"
Diese Funktion wird nur dann benötigt, wenn Menüs geändert und getestet werden.

Aufrufinformation
Boolean = My.lReleaseAlwaysMenus
Codeinformation


lRunTime - Laufzeitmodus?

Die Applikation befindet sich im RunTime Modus... Wird entweder als COM+ Server oder EXE ausgeführt.
Hilfeinformation
Die Applikation befindet sich im RunTime Modus... Wird entweder als COM+ Server oder EXE ausgeführt.

Aufrufinformation
Boolean = My.lRunTime
Codeinformation
IF NOT My.lRunTime
	*/ Dann könnte hier z.B. ein SUSPEND erfolgen
ENDIF

lRushMore - SQL Protokoll aktiv?

Diese Property wird durch die Umgebungsvariable: GETENV("PMSRUSHMORESTATISTIK")=="ON" gesetzt
Hilfeinformation
Diese Property wird durch die Umgebungsvariable: GETENV("PMSRUSHMORESTATISTIK")=="ON" gesetzt. Damit werden alle SQL Befehle protokolliert. Sollte nur dann gesetzt werden, falls Laufzeitfehler auftreten!

Aufrufinformation
Boolean = My.lRushMore
Codeinformation


lSetPath - Pfade setzen?

Während der Ausführung sind "KEINE" Pfade gesetzt! Nur auf Verlangen muss mit My.Functions.SetPath.SetPath(.T./.F.) der Pfad gesetzt werden...
Hilfeinformation
Während der Ausführung sind "KEINE" Pfade gesetzt! Nur auf Verlangen muss mit My.Functions.SetPath.SetPath(.T./.F.) der Pfad gesetzt werden...
Sollte wegen Geschwindigkeitseinbusen nicht gesetzt werden! Geben Sie bei der Ausführung von SQL und anderen Befehlen bitte immer den Pfad mit an!

Aufrufinformation
Boolean = My.lSetPath
Codeinformation
*/ Schlecht:
SELECT b01.* FROM b01 WHERE ...
*/ Besser:
SELECT b01.* FROM (My.Clients.Path.cDbfDir+'b01.dbf') WHERE ...
*/ Man kann auch über den SQL Handler gehen....
LOCAL lcSql
TEXT TO m.lcSql NOSHOW TEXTMERGE PRETEXT 3
SELECT b01.* FROM CDBFDIR!B01 AS b01 WHERE ...
ENDTEXT
IF My.Clients.Sql.SqlRead(SET("DataSession"),m.lcSql,"qB01")
	*/ Dann haben wir den Cursor aus B01 (qB01) am Wickel...
ENDIF

lSuspendPms - Verarbeitung unterbrechen?

Soll SuspendPMS() die Applikation wirklich anhalten? Standard = .T., wenn .F. wird KEIN Suspend ausgeführt auch wenn _vfp.StartMode=0
Hilfeinformation
Soll SuspendPMS() die Applikation wirklich anhalten? Standard = .T., wenn .F. wird KEIN Suspend ausgeführt auch wenn _vfp.StartMode=0
Geht nur im Entwicklermode!

Aufrufinformation
Boolean = My.lSuspendPms
Codeinformation


lSysmenuEnabled - Intern

Gibt .F. zurück, wenn dieser Wert .F.! Siehe auch THIS._MenuEnabled
Hilfeinformation
Gibt .F. zurück, wenn dieser Wert .F.! Siehe auch THIS._MenuEnabled

Aufrufinformation
Boolean = My.lSysmenuEnabled
Codeinformation


lTimerStop - Alle Timer anhalten?

Wert:[Boolean], Stoppt bzw. startet wieder alle Timer, die im System laufen..
Hilfeinformation
Wert:[Boolean], Stoppt bzw. startet wieder alle Timer, die im System laufen..

Aufrufinformation
Boolean = My.lTimerStop
Codeinformation
My.lTimerStop = .T.
*/ Jetzt stehen alle Systemtimer still
My.lTimerStop = .F.
*/ Nicht vergessen, sonst steht PMS32!

lVfpOriginalStatusBar - Original Statusbar verwenden?

GETENV("PMS32StatusBar"), welche Statusbar wird genommen?
Hilfeinformation
GETENV("PMS32StatusBar"), welche Statusbar wird genommen?
Wird die Property auf .T. gesetzt so wird die Original Statusbar von VFP genommen!

Aufrufinformation
Boolean = My.lVfpOriginalStatusBar
Codeinformation


lWriteLog - Logs schreiben?

Ist .T., wenn GETENV("PMSWRITELOG")="ON"
Hilfeinformation
Ist .T., wenn GETENV("PMSWRITELOG")="ON". Auf diese Einstellung wird im gesamten System reagiert! Ist der Wert auf .T. gesetzt, so werden auch in den Namespaces Logs geschrieben.

Aufrufinformation
Boolean = My.lWriteLog
Codeinformation
*/ Nur kurzzeitig ein Log mitschreiben
My.lWriteLog = .T.
=MenuHit("E4101")
My.lWriteLog = .F.


lWritelogSUM - Summenlog schreiben?

Es wird auch ein Summenlog mitgeschrieben! PMSWRITELOG=SUM
Hilfeinformation
Es wird auch ein Summenlog mitgeschrieben! PMSWRITELOG=SUM. Die Umgebungsvariable PMSWRITELOG kann verschiedene Inhalte haben!
PMSWRITELOG = "OFF" - Alle Logs abgeschaltet
PMSWRITELOG = "ON" - Nur Standardlog eingeschaltet
PMSWRITELOG = "SUM" - Auch das Summenlog ist eingeschaltet

Aufrufinformation
Boolean = My.lWritelogSUM
Codeinformation


llMaster - Existieret m.Master?

Gibt zurück, ob m.Master existiert.
Hilfeinformation
Gibt zurück, ob m.Master existiert.

Aufrufinformation
Boolean = My.llMaster
Codeinformation
*/ Diese Property wird eigentlich nur intern verwendet...
*/ Trotzdem ein Beispiel:
PRIVATE Master AS STring
Master = .NULL.
? My.llMaster
Master = "B01"
? My.llMaster


nCounter - Intern

Wird benötigt bei MT-EXE-MU Servern, der Counter wird mit jedem Start hoch- und mit jedem Beenden heruntergezählt. Bei 0 kann My gelöscht werden...
Hilfeinformation
Wird benötigt bei MT-EXE-MU Servern, der Counter wird mit jedem Start hoch- und mit jedem Beenden heruntergezählt. Bei 0 kann My gelöscht werden...
Diese Property wird intern verwendet und sollte vom Benutzer NICHT verändert werden.

Aufrufinformation
Number = My.nCounter
Codeinformation


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.nError
Codeinformation
WAIT WINDOW My.nError

nFormSetLog - Zeit in Sekunden

Zeitangabe für lFormsetLog
Hilfeinformation

Aufrufinformation
Number = My.nFormSetLog
Codeinformation


nLine - Zeilennummer d. Fehlers

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

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

nStackCount - Verschachtelungstiefe

Stackgröße, bei der Ausführung von Programmen. Wichtiger Parameter für die Abfrage von CanSendMessage()
Hilfeinformation
Stackgröße, bei der Ausführung von Programmen. Wichtiger Parameter für die Abfrage von CanSendMessage().
Wird eigentlich nur intern benötigt. Gibt die Programmverschachtelungstiefe beim Programmstart an. Werden PMS interne Funktionen ausgeführt, dann wird das Senden von Messages unterbunden!

Aufrufinformation
Number = My.nStackCount
Codeinformation


nlChange - Rückgabe von m.l_change

Gleiche Funktion wie lChange, jedoch wird .F. zurückgegeben wenn l_change nicht vorhanden ist. NOT lChange
Hilfeinformation
Gleiche Funktion wie lChange, jedoch wird .F. zurückgegeben wenn l_change nicht vorhanden ist. NOT lChange.
Die Rückgabe ist immer Boolean .T./.F.

Aufrufinformation
Number = My.nlChange
Codeinformation


oCollection - Rückgabe einer Collection

Rückgabe:[Collection], gibt eine erweiterte Collection zurück
Hilfeinformation
Weitere Methoden:
oCollection.AddCheck(tvItem,tcKey) - Adden eines Eintrags mit verheriger Prüfung (Wenn vorhanden wird NICHT geadded!)
oCollection.Clear() - Löschen des gesamten Collection Inhalts

Aufrufinformation
Object = My.oCollection
Codeinformation
*/ Beispiel:
LOCAL loColl AS Collection,lReturn AS Boolean
loColl = My.oCollection

*/ Adden mit Prüfung
lReturn = loColl.AddCheck(DATE(),"KEY1")		&& Sollte .T. zurückgeben

*/ Nochmals
lReturn = loColl.AddCheck(DATETIME(),"KEY1")	&& Sollte .F. zurückgeben

loColl.Clear()									&& Alle Inhalte löschen

*/ Anmerkung: Ansonsten sind alle Methoden und Properties einer Collection vorhanden!


oException - Fehlerpointer

Kann von TRY ... CATCH ... ENDTRY genutzt werden, um Fehlermeldungen weiter zu geben.
Hilfeinformation
Kann von TRY ... CATCH ... ENDTRY genutzt werden, um Fehlermeldungen weiter zu geben.

Aufrufinformation
Object = My.oException
Codeinformation
*/ Beispiel:
LOCAL loException AS Exception
TRY
	i = j		&& Erzeugt einen Fehler!
CATCH TO loException
	*/ Fehlerdetails vervollständigen
	loException.Details = "Erzwungener Fehler!"
	*/ Und den Fehler speichern (Auch im Errorlog!)
	My.oException = m.loException
ENDTRY

oKeys - Collection mit KeyCodes

Enthält eine Collection mit KeyCodes
Hilfeinformation
Enthält eine Collection mit KeyCodes für die neue PMS Version

Aufrufinformation
Object = My.oKeys
Codeinformation


oMisc - Zugriff auf Misc

Zugriff auf Misc
Hilfeinformation
Gleiches wie My.Bussines.Strain.Misc

Aufrufinformation
Object = My.oMisc
Codeinformation


oPictures - Zeiger auf Pictures

Wert:[Object], Gibt den Zeiger auf Pictures zurück
Hilfeinformation
Zwischenspeicher für Bildinformationen.

Aufrufinformation
Object = My.oPictures
Codeinformation


oXml - XML-Collection

Gibt eine XML-Collection zurück
Hilfeinformation
Gibt eine XML-Collection zurück.
Wichtige Methoden:
cStructure = GetCursorStructure()      && Struktur ohne ()
cXml = ObjectToXml(lStructured)
lDone = StructureToCursor(nDataSession,cAlias)
lDone = XmlToObject(cXmlString)

Aufrufinformation
Object = My.oXml
Codeinformation
*/ Die obigen Funktionen werden über:
My.Functions.Xml.... aufgerufen

txUSR - Schlüssel aus FXUSR

Gibt den Ausdruck für Table.TXUSR [C(10)] zurück.
Hilfeinformation
Gibt den Ausdruck für Table.TXUSR [C(10)] zurück.

Aufrufinformation
String = My.txUSR
Codeinformation
*/ Beispiel:
LOCAL lcTx AS String
lcTx = My.txUsr
WAIT WINDOW m.lcTx

*/ Anmerkung:
*/ Obiger String wird aus den Werten My._Terminal + My._User gebildet!
*/ Diese beiden Werte werden aus den Teilen von SYS(0) beim Instanziieren von My gebildet
*/ ._Terminal = UPPER(ALLTRIM(GETWORDNUM(SYS(0),1,"#")))
*/ ._User     = UPPER(ALLTRIM(GETWORDNUM(SYS(0),2,"#")))
*/ Aus beiden Teilen wird eine maximal 5-stellige Checksumme gebildet, die zurückgegeben wird.

vVarHolder - Hält Variablen fest

Hält Variablen, die eventuell benötigt werden gespeichert. My.vVarHolder["Varname"]=vValue. Wenn die Variable NICHT gefunden wird wird NULL zurückgegeben.
Hilfeinformation
Diese Property kann als Zwischenspeicher für globale Variablen genutzt werden.
Dabei wird der Name und der Variableninhalt übergeben.
Intern wird zum Speichern der Informationen eine Collection verwendet!
Die Namen der Variablen werden in UPPER umgewandelt!

Aufrufinformation
"Varname" = My.vVarHolder[tcIndex1 AS String | tiIndex1 AS Integer , tiIndex2 AS Integer]
"Varname" = My.vVarHolder[tcIndex1|,tiIndex1,tiIndex2]
Codeinformation
*/ Beispiel:
LOCAL lvVariable AS Variant
lvVariable = CREATEOBJECT("Collection")		&& Wir nehmen eine Collection...

*/ Zuweisen der Variablen
My.vVarHolder['MeineVariable'] = m.lvVariable
*/ Existiert obiger Eintrag: 'MeineVariable' so wird der Wert überschrieben!
*/ Der VarHolder macht KEINEN Unterschied in Groß-/Kleinschreibung!
*/ MeineVariable = MEINEVARIABLE = meinevariable!

*/ Abruf der Information
lvVariable = My.vVarholder['MeineVariable']

*/ Ein spezieller Abruf, hier wird die VarHolder-Collection komplett abgerufen!
LOCAL loVarHolder AS Collection
*/ Abruf der kompletten Collection...
loVarHolder = My.vVarHolder[1]
*/ Gibt es einen Eintrag? (In der Collection wird der Variablenname in UPPER gespeichert!)
IF loVarHolder.GETKEY('MEINEVARIABLE')>0
	*/ Wenn die Variable existiert, dann löschen wir den Eintrag!
	=loVarHolder.REMOVE('MEINEVARIABLE')
ENDIF

*/ Anmerkung:
*/ vVarHolder['...'] gibt .NULL. zurück, wenn der Variablenname nicht gefunden wird!
*/ Beispiel:
lvVariable = My.vVarHolder['IstNichtDefiniert']
? lvVariable	&& Solle .NULL. sein...

*/ Anmerkung:
*/ Wenn man einen Eintrag löschen möchte...
My.vVarHolder['MeineVariable'] = .NULL.

xDate - Globales Datum

Rückgabe des aktuellen Datums
Hilfeinformation
Rückgabe des aktuellen Datums

Aufrufinformation
Date = My.xDate
Codeinformation
*/ Beispiel:
LOCAL ldDate AS Date
ldDate = My.xDate
WAIT WINDOW m.ldDate

xDateTime - Globales Datum/Zeit

Rückgabe der aktuellen Datum und Uhrzeit
Hilfeinformation
Rückgabe der aktuellen Datum und Uhrzeit.

Aufrufinformation
DateTime = My.xDateTime
Codeinformation
*/ Beispiel:
LOCAL ltDateTime AS DateTime
ltDateTime = My.xDateTime
WAIT WINDOW m.ltDateTime

xNoChange - Umkehrwert zu lChange

Ermittelt den Kehrwert von m.l_Change. xNoChange = NOT m.l_Change. Ist m.l_change NICHT definiert, so wird .F. zurückgegeben!
Hilfeinformation
Ermittelt den Kehrwert von m.l_Change. xNoChange = NOT m.l_Change. Ist m.l_change NICHT definiert, so wird .F. zurückgegeben!

Aufrufinformation
Boolean = My.xNoChange
Codeinformation
*/ Dieses Beispiel kann nur in PMS32 sinnvoll verwendet werden...

xProgram - Aktives Programm

Rückgabe:[String], Gibt den Wert für m.l_program zurück, jedoch NICHT WIE lProgram. Leerstring, falls die Variable NICHT definiert ist!
Hilfeinformation
Rückgabe:[String], Gibt den Wert für m.l_program zurück, jedoch NICHT WIE lProgram. Leerstring, falls die Variable NICHT definiert ist!

Aufrufinformation
String = My.xProgram
Codeinformation
*/ Dieses Beispiel kann nur in PMS32 sinnvoll verwendet werden...
*/ Trotzdem ein Beispiel:
PRIVATE l_program AS String
l_program = .NULL.		&& Ist damit nicht definiert...
? My.xProgram + '!'		&& !
l_program = 'TEST.PRG'
? My.xProgram + '!'		&& TEST.PRG!

xTag - Zwischenspeicher

Wert:[Variant], Zwischenspeicher für verschiedene Werte
Hilfeinformation
Wert:[Variant], Zwischenspeicher für verschiedene Werte.
Dieser Speicher sollte nur intern verwendet werden, wenn diverse Informationen kurzzeitig zwischengespeichert werden müssen.
Verwenden Sie stattdessen: vVarHolder[]...

Aufrufinformation
Variant = My.xTag
Codeinformation


xTime - Uhrzeit

Rückgabe der aktuellen Uhrzeit
Hilfeinformation
Rückgabe der aktuellen Uhrzeit. Gleiche Funktion wäre TIME()

Aufrufinformation
String = My.xTime
Codeinformation
*/ Beispiel:
LOCAL lcTime AS String
lcTime = My.xTime
WAIT WINDOW m.lcTime

yDate - Rückgabe eines C-Datums

Rückgabe eines C-Datums in der Schreibweise YYYY-MM-DD
Hilfeinformation
Rückgabe eines C-Datums in der Schreibweise YYYY-MM-DD

Aufrufinformation
String = My.yDate
Codeinformation
*/ Beispiel:
LOCAL lcDate AS String
lcDate = My.yDate		&& Das heutige Datum in der Schreibweise YYYY-MM-DD
WAIT WINDOW m.lcDate


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