PMS32 Online- Hilfereferenz
CodeBase - Interne Verarbeitung von Tabellen. Siehe auch PMS-DATA
Interne Verarbeitung von Tabellen. Siehe auch PMS-DATA
*/ Kurzbeispiel für den Zugriff auf diese Struktur */ Der Zugriff erfolgt über: My.Clients.CodeBase */ 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 loCodeBase AS My.Clients.CodeBase */ Setzen der Variablen loCodeBase = My.Clients.CodeBase */ Jetzt erst die Schleifen durchlaufen... man beachte ALL, dass können ne Menge Sätze sein... REPLACE ALL Feldname1 WITH loCodeBase.Function1(),Feldname2 WITH loCodeBase.Function1(), ... */ Oder in einer Schleife... SCAN lvValue = loCodeBase.Function(Alias.Spalte) + 25 lvValue = loCodeBase.Function2(m.lvValue) REPLACE Feldname WITH m.lvValue,... ENDSCAN */ Es sind auch geschachtelte Aufrufe möglich...
Rückgabe: [Boolean], Beenden einer Neuanlage im angegebenen ALIAS.
Boolean = My.Clients.CodeBase.AppendEnd(tcAlias as String) Boolean = My.Clients.CodeBase.AppendEnd(tcAlias)
Rückgabe: [Boolean], Starten einer Neuanlage im angegebenen ALIAS.
Boolean = My.Clients.CodeBase.AppendStart(tcAlias as String,tcId as String,tlNoDefault as Boolean) Boolean = My.Clients.CodeBase.AppendStart(tcAlias,tcId,tlNoDefault)
Rückgabe: [Boolean], Schliesst die angegebene Tabelle (ALIAS).
Boolean = My.Clients.CodeBase.CloseAlias(tcAlias as String) Boolean = My.Clients.CodeBase.CloseAlias(tcAlias)
Rückgabe: [Boolean], Schliesst die angegebene Tabelle .
Boolean = My.Clients.CodeBase.CloseTable(tcTableName as String) Boolean = My.Clients.CodeBase.CloseTable(tcTableName)
Rückgabe: [Boolean], Löscht einen Datensatz im angegebenen ALIAS.
Boolean = My.Clients.CodeBase.DeleteX(tcAlias as String,tcMessage as String) Boolean = My.Clients.CodeBase.DeleteX(tcAlias,tcMessage)
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.Clients.CodeBase.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.Clients.CodeBase.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.Clients.CodeBase.EValUATE([m.pnVar1+m.pnVar2]) WAIT WINDOW m.lnVar && Ergibt 4... ENDTEXT
Rückgabe: [Boolean], Prüfung auf EOF() und BOF() im angegebenen ALIAS.
Boolean = My.Clients.CodeBase.EofX(tcAlias as String) Boolean = My.Clients.CodeBase.EofX(tcAlias)
Ausführen eines VFP-Scripts incl. der Prüfung, ob ein ALIAS besteht.
Variant = My.Clients.CodeBase.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 Variant) Variant = My.Clients.CodeBase.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.Clients.CodeBase.ExecScript("",m.lcScript,0,@lnVar1,@lnVar2) */ und das Ergebnis... WAIT WINDOW m.lnVar WAIT WINDOW m.lnVar1 WAIT WINDOW m.lnVar2
Rückgabe: [Variant], Ermittelt das Feld des größten Eintrags MAX(tcField)
Variant = My.Clients.CodeBase.GetBottomField(tcTable as String,tcField as String) Variant = My.Clients.CodeBase.GetBottomField(tcTable,tcField)
Rückgabe: [Variant], Ermittelt das Feld des letzten Datensatzes RECNO()=RECCOUNT()
Variant = My.Clients.CodeBase.GetBottomRecno(tcTable as String,tcField as String) Variant = My.Clients.CodeBase.GetBottomRecno(tcTable,tcField)
Ruft die Value einer Property in der Klasse ab.
Die Parameter: tcProperty as String
tcProperty: Name der Property in der Klasse
Variant = My.Clients.CodeBase.GetProperty(tcProperty as String,tnAsXMLStructure as Variant) Variant = My.Clients.CodeBase.GetProperty(tcProperty,tnAsXMLStructure)
*/ Vorausgesetzt wird, dass My bekannt ist... LOCAL lnError AS Number lnError = My.Clients.CodeBase.GetProperty('nError')
Rückgabe: [Variant], Ermittelt das Feld des kleinsten Eintrags MIN(tcField)
Variant = My.Clients.CodeBase.GetTopField(tcTable as String,tcField as String) Variant = My.Clients.CodeBase.GetTopField(tcTable,tcField)
Rückgabe: [Variant], Ermittelt das Feld des ersten Datensatzes RECNO()=1
Variant = My.Clients.CodeBase.GetTopRecno(tcTable as String,tcField as String) Variant = My.Clients.CodeBase.GetTopRecno(tcTable,tcField)
Ruft die Value einer Variablen in der Klasse ab.
Die Parameter: tcVariable as String
Variant = My.Clients.CodeBase.GetValue(tcScript as String) Variant = My.Clients.CodeBase.GetValue(tcScript)
*/ Vorausgesetzt wird, dass My bekannt ist... LOCAL lcIdx02 AS String lcIdx02 = My.Clients.CodeBase.GetValue('My.cIdx02') IF !ISNULL(m.lcIdx02) WAIT WINDOW m.lcIdx02 ELSE */ My in der Klasse nicht bekannt! ENDIF
Rückgabe: [Boolean], Öffnet die angegebene Tabelle mit dem entsprechenden ALIAS.
Boolean = My.Clients.CodeBase.OpenX(tcTableName as String,tcAlias as String) Boolean = My.Clients.CodeBase.OpenX(tcTableName,tcAlias)
Rückgabe: [Boolean], Rückgabe eines Wertes im angegebenen ALIAS.
Boolean = My.Clients.CodeBase.ReadX(tcAlias as String,tcField as String,teValue as Variant) Boolean = My.Clients.CodeBase.ReadX(tcAlias,tcField,teValue)
Rückgabe:[Variant], Ausführen eines Scriptes ohne Beeinflussung von irgendwas!!!
Variant = My.Clients.CodeBase.RealExecute(tcScript as String,tp1 as Variant,tp2 as Variant,tp3 as Variant,tp4 as Variant,tp5 as Variant,tp6 as Variant,tp7 as Variant,tp8 as Variant,tp9 as Variant) Variant = My.Clients.CodeBase.RealExecute(tcScript,tp1,tp2,tp3,tp4,tp5,tp6,tp7,tp8,tp9)
Variant = My.Clients.CodeBase.RealSQLget(lcSQL as String,tlNoClose as Boolean,tcIndexList as String) Variant = My.Clients.CodeBase.RealSQLget(lcSQL,tlNoClose,tcIndexList)
*/ Öffnen der CodeBaseEngine loBase = CREATEOBJECT("pms_09.PmsCodeBaseEngine") */ Setzen der Mandanten ID loBase.cIdx02 = "DEMO_PMS_DEMO" */ Setzen des Moduls loBase.nPmsModul = 113 */ Einen SQL absetzen incl. erzeugen der benötigten Indizes IF !EMPTY(loBase.RealSQLget([SELECT * FROM B01 WHERE artnr='SIE.' ORDER BY b01.artnr INTO TABLE c:\tmp\qb01.dbf],.T.,[IDB01;ARTNR;TYPNR;MATCH])) */ 1. Parameter - SQL Select */ 2. Parameter - Die Ergebnistabelle wird am BackEnd geöffnet (ALIAS=QB01) */ 3. Erstellen der benötigten Indizes auf die Tabelle */ Einzelne Indizes sind mit ; (Semikolon) zu trennen */ Wird ein spezieller TAG-Name benötigt, so kann dieser mit # getrennt angegeben werden! */ Beispiel: [IDB01+IDK10+IDC66#MIX;IDB01;ARTNR;MATCH;...] */ Suche den ersten Artikel, der mit SIE.3TH... anfängt IF loBase.SeekX('QB01.ARTNR','SIE.3TH',.T.,.T.) */ Wenn gefunden, gebe die vollständige Artikelnummer zurück cArtnr = loBase.oData.Artnr ENDIF ENDIF
Rückgabe: [Boolean], Ändern eines Feldes im angegebenen ALIAS.
Boolean = My.Clients.CodeBase.ReplaceX(tcAlias as String,tcField as String,teValue as Variant,tcMessage as String) Boolean = My.Clients.CodeBase.ReplaceX(tcAlias,tcField,teValue,tcMessage)
Rückgabe:[Boolean], Speichert den Datensatz aus oData.
Boolean = My.Clients.CodeBase.SaveX(tcAlias as String) Boolean = My.Clients.CodeBase.SaveX(tcAlias)
Rückgabe: [Boolean], Setzen eines Filters im angegebenen ALIAS.
Boolean = My.Clients.CodeBase.Scope(tcAlias as String,tcFilter as String) Boolean = My.Clients.CodeBase.Scope(tcAlias,tcFilter)
Rückgabe: [Boolean], Suchen eines Eintrags im angegeben ALIAS.
Boolean = My.Clients.CodeBase.SeekX(tcAlias as String,teValue as Variant,tlNoFilter as Boolean,tlScatterObject as Boolean) Boolean = My.Clients.CodeBase.SeekX(tcAlias,teValue,tlNoFilter,tlScatterObject)
Setzt die Value an die benannte Property.
Die Parameter: tcProperty as String,tvValue as Variant,tnAsObject as Integer
tcProperty: Name der Property in der Klasse
tvValue: Value der Property
tnAsObject: 0=Value, 1=C-Structure, 2=XML
Wird tnAsObject nicht angegeben, so wird 0=Value vorausgesetzt
Variant = My.Clients.CodeBase.SetProperty(tcProperty as String,tvValue as Variant,tnAsObject as Integer) Variant = My.Clients.CodeBase.SetProperty(tcProperty,tvValue,tnAsObject)
*/ Als Beispielcode für eine Klasse in einem COM+ Server */ Vorausgesetzt wird, dass My bekannt ist... =My.Clients.CodeBase.SetProperty('nError',0,0) */ oder auch... =My.Clients.CodeBase.SetProperty('nError',0)
Rückgabe: [Boolean], Setzen eines Index im angegebenen ALIAS.
Boolean = My.Clients.CodeBase.SetTag(tcAlias as String,tcTag as String) Boolean = My.Clients.CodeBase.SetTag(tcAlias,tcTag)
Rückgabe: [Boolean], Einen Datensatz weiter gehen.
Boolean = My.Clients.CodeBase.SkipX(tcAlias as String,tnSkip as Integer,tlScatterObject as Boolean) Boolean = My.Clients.CodeBase.SkipX(tcAlias,tnSkip,tlScatterObject)
Rückgabe: [String], Führt einen SQL Select aus. Rückgabe ist
String = My.Clients.CodeBase.SqlOpenX(tcSqlSelect as String,tlNoClose as Boolean,tlCleanSQL as Boolean) String = My.Clients.CodeBase.SqlOpenX(tcSqlSelect,tlNoClose,tlCleanSQL)
Rückgabe: [Boolean], Setzen aller benötigten Parameter nach dem Init(). Ist vom Benutzer auszuführen!
Boolean = My.Clients.CodeBase.Start(tcIdx02 as String,tnPmsModul as Double) Boolean = My.Clients.CodeBase.Start(tcIdx02,tnPmsModul)
Variant = My.Clients.CodeBase.Terminate()
Rückgabe: [Boolean], Entsperren eines Datensatzes im angegebenen ALIAS.
Boolean = My.Clients.CodeBase.UnlockX(tcAlias as String) Boolean = My.Clients.CodeBase.UnlockX(tcAlias)
Rückgabe:[String], Update bzw. Neuanlage von Artikelstammdaten. Parameter: 9, 15 oder 24
String = My.Clients.CodeBase.UpdateB01(cIdb01 as String,mBez as Variant,cIeb01 as Variant,cMatch as Variant,cTypnr as Variant,cIdc49 as Variant,cZollnr as Variant,cIdc09u as Variant,cIdc19lg as Variant,cArtnr as Variant,mNotiz as Variant,cBestnr as Variant,cIdc61 as Variant,cIdc62 as Variant,) String = My.Clients.CodeBase.UpdateB01(cIdb01,mBez,cIeb01,cMatch,cTypnr,cIdc49,cZollnr,cIdc09u,cIdc19lg,cArtnr,mNotiz,cBestnr,cIdc61,cIdc62)
Rückgabe:[String], Update bzw. Neuanlage von technischen Daten. Parameter: 4 oder 6
String = My.Clients.CodeBase.UpdateB02(cIdb02 as String,vInhalt as Variant,nC510036 as Variant,cC510024 as Variant,cIdb01 as Variant,cIdc51 as Variant) String = My.Clients.CodeBase.UpdateB02(cIdb02,vInhalt,nC510036,cC510024,cIdb01,cIdc51)
Rückgabe:[String], Update bzw. Neuanlage von Fremdsprachen für einen Artikel
String = My.Clients.CodeBase.UpdateB04(cIdB01X26 as String,mBez as Variant,mLang as Variant,mNotiz as Variant,cIdb01 as Variant,cIdx26 as Variant) String = My.Clients.CodeBase.UpdateB04(cIdB01X26,mBez,mLang,mNotiz,cIdb01,cIdx26)
Rückgabe:[String], Update bzw. Neuanlage von EK - Daten. Parameter: 12 oder 16
String = My.Clients.CodeBase.UpdateD03(cIdd03 as String,nEkPreis as Variant,iPeek as Variant,lNetto as Variant,nRabatt1 as Variant,nRabatt2 as Variant,nMgvp as Variant,nWbz as Variant,cIdc19ek as Variant,cRabgrp as Variant,mBez as Variant,dEkpdatum as Variant,cIdb01 as Variant,cIdc61 as Varia) String = My.Clients.CodeBase.UpdateD03(cIdd03,nEkPreis,iPeek,lNetto,nRabatt1,nRabatt2,nMgvp,nWbz,cIdc19ek,cRabgrp,mBez,dEkpdatum,cIdb01,cIdc61)
Rückgabe:[String], Update bzw. Neuanlage von Edelmetall - Daten. Parameter: 7 oder 10
String = My.Clients.CodeBase.UpdateD05(cIdd05 as String,cIpd05 as Variant,iBasis as Variant,nEdelzahl as Variant,nUflaEzu as Variant,cIdc98 as Variant,cRohgrp as Variant,cIdb01 as Variant,cIdc61 as Variant) String = My.Clients.CodeBase.UpdateD05(cIdd05,cIpd05,iBasis,nEdelzahl,nUflaEzu,cIdc98,cRohgrp,cIdb01,cIdc61)
Rückgabe:[String], Wie SQLOpenX jedoch für Preisupdate, hiermit werden die benötigten Daten aufbereitet.
String = My.Clients.CodeBase.UpdateStart(tnTransAction as Double) String = My.Clients.CodeBase.UpdateStart(tnTransAction)
Mit dieser Methode kann eine Protokollierung div. Informationen in einem LOG File erfolgen.
Diese Methode ist 'nur' bei den NameSpace Servern von PMS zu finden!
Variant = My.Clients.CodeBase.WriteSettings(tcWann as String) Variant = My.Clients.CodeBase.WriteSettings(tcWann)
*/ Als Beispielcode für eine Klasse in einem COM+ Server */ Vorausgesetzt wird, dass My bekannt ist... =My.Clients.CodeBase.WriteSettings('Heute um 15:00Uhr') */ oder auch... =My.Clients.CodeBase.WriteSettings(TTOC(DATETIME(),1)) && Ausgabe: JJJJMMTThhmmss
Object = My.Clients.CodeBase._FieldInfo2Collection(tcAlias as String) Object = My.Clients.CodeBase._FieldInfo2Collection(tcAlias)
Variant = My.Clients.CodeBase.setToStructure(lcDbf as String,tcAlias as String) Variant = My.Clients.CodeBase.setToStructure(lcDbf,tcAlias)
Wert:[Object],
Variant = My.Clients.CodeBase.Scripting
Diese Property gibt es nur bei NameSpace Servern, dies sind Programmteile, die in einem geschützten Speicherbereich ablaufen. Sollten Sie mal von außen auf den NameSpace von PMS32 zugreifen und es fehlt Ihnen die Aufrufinformationen, so kann obiger String aus der Registry ermittelt werden.
String = My.Clients.CodeBase._Clsid
LOCAL lcClsID AS String lcClsID = My.Clients.CodeBase._Clsid WAIT WINDOW m.lcClsID
Diese Property gibt es nur bei NameSpace Servern, dies sind Programmteile, die in einem geschützten Speicherbereich ablaufen.
String = My.Clients.CodeBase._ComServer
LOCAL lcComServer AS String lcComServer = My.Clients.CodeBase._ComServer WAIT WINDOW m.lcComServer
Boolean = My.Clients.CodeBase._Isreleased_
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.
String = My.Clients.CodeBase._Name
LOCAL lcComName AS String lcComName = My.Clients.CodeBase._Name WAIT WINDOW m.lcComName
Variant = My.Clients.CodeBase._Pcreleaselog_
Die Property _ServerName gibt den kompletten 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.
String = My.Clients.CodeBase._ServerName
LOCAL lcServerName AS String lcServerName = My.Clients.CodeBase._ServerName WAIT WINDOW m.lcServerName
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
Number = My.Clients.CodeBase._StartMode
*/ Abfrage des Modus WAIT WINDOW My.Clients.CodeBase._StartMode
Gibt den verwendeten Speicher des Namespace zurück.
Rückgabe ist Byte.
Integer = My.Clients.CodeBase._Sys1016
LOCAL liBytes AS Integer */ Abfrage des Speichers liBytes = My.Clients.CodeBase._Sys1016 WAIT WINDOW LTRIM(STR(m.liBytes/1024))+" kB"
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
String = My.Clients.CodeBase._Version
WAIT WINDOW My.Clients.CodeBase._Version
VFP Version der VFP-9 dll.
String = My.Clients.CodeBase._VfpVersion
WAIT WINDOW My.Clients.CodeBase._VfpVersion
Wert:[Boolean], Ausführen eines Scriptes ohne Beeinflussung von irgendwas!!!
Boolean = My.Clients.CodeBase._lvActive
Mit dieser Property kann der Name der Applikation abgerufen werden.
String = My.Clients.CodeBase.cAppNameExe
*/ Als Beispielcode für eine Klasse in einem COM+ Server */ Vorausgesetzt wird, dass My bekannt ist... LOCAL lcName AS String lcName = My.Clients.CodeBase.cAppNameExe
String = My.Clients.CodeBase.cClass
Pfad der Mandantentabellen
Normalerweise zu finden unter \\server\freigabe\...\pms32\daten\mandant\
String = My.Clients.CodeBase.cDbfDir
IF !DIRECTORY(My.Clients.CodeBase.cDbfDir) */ Benötigte Pfade sollten eigentlich da sein! =MESSAGEBOX("Pfad fehlt:" + My.Clients.CodeBase.cDbfDir,64,"Mandanten Verzeichnis") ENDIF
Report Verzeichnis des Mandanten
Normalerweise zu finden unter \\server\freigabe\...\pms32\reports\mandant\
String = My.Clients.CodeBase.cFrxDir
IF !DIRECTORY(My.Clients.CodeBase.cFrxDir) */ Benötigte Pfade sollten eigentlich da sein! =MESSAGEBOX("Pfad fehlt:" + My.Clients.CodeBase.cFrxDir,64,"Report Verzeichnis") ENDIF
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
<>
String = My.Clients.CodeBase.cIdx02
*/ Abfrage der Mandanten-ID WAIT WINDOW My.Clients.CodeBase.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...
Name des Kunden aus der LIC Datei
String = My.Clients.CodeBase.cKundenName
Kundennummer aus der LIC Datei
String = My.Clients.CodeBase.cKundenNummer
Pfad und Name der LOG Datei
String = My.Clients.CodeBase.cLogFile
Methode in der der letzte Fehler auftrat.
Aufbau: [Fehlernummer] [Methode] [Zeilennummer] [Message]
String = My.Clients.CodeBase.cMethod
*/ Abruf... WAIT WINDOW My.Clients.CodeBase.cMethod
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"
String = My.Clients.CodeBase.cResetInfos
*/ Verschiedene RESET Befehle... My.Clients.CodeBase.cResetInfos = "REMOVE-MENUES" My.Clients.CodeBase.cResetInfos = "REMOVE-CS-FILES" My.Clients.CodeBase.cResetInfos = "REMOVE-CS-SCRIPTS" My.Clients.CodeBase.cResetInfos = "CHANGE-IDX09" My.Clients.CodeBase.cResetInfos = "USER_LOGIN" */ Je nach Klasse wird ein entsprechender RESET ausgeführt!
String = My.Clients.CodeBase.cSearchPath
Verzeichnis der Systemtabellen von PMS32
Das Verzeichnis ist normalerweise unter: \\server\pms$\pms32\dbf\ zu finden...
String = My.Clients.CodeBase.cSysDir
IF !DIRECTORY(My.Clients.CodeBase.cSysDir) */ Benötigte Pfade sollten eigentlich da sein! =MESSAGEBOX("Pfad fehlt:" + My.Clients.CodeBase.cSysDir,64,"Systemverzeichnis") ENDIF
Temporäres Verzeichnis für verschiedene Zwischenspeicherungen
Das Verzeichnis ist normalerweise unter: c:\benutzer\
String = My.Clients.CodeBase.cTmpDir
*/ Same as: ADDBS(SYS(2023)) IF !DIRECTORY(My.Clients.CodeBase.cTmpDir) */ Benötigte Pfade sollten eigentlich da sein! =MESSAGEBOX("Pfad fehlt:" + My.Clients.CodeBase.cTmpDir,64,"Temporäres Verzeichnis") ENDIF
Wert:[Boolean], Gibt an, ob beim Scatter in oData zusätzlich ein Objekt oData.Alias._oRecord mit den Datensatz und Tabelleninfor
Boolean = My.Clients.CodeBase.lScatterWithRecordInfo
Fehlernummer des letzten Fehlers.
Ist der Wert kleiner null, so handelt es sich um einen logischen Fehler.
Number = My.Clients.CodeBase.nError
WAIT WINDOW My.Clients.CodeBase.nError
Zeilennummer, in der der letzte Fehler auftrat
Number = My.Clients.CodeBase.nLine
WAIT WINDOW My.Clients.CodeBase.nLine
Nummer des PMS Moduls, dass belegt werden soll.
Number = My.Clients.CodeBase.nPmsModul
Object = My.Clients.CodeBase.oClass
Wert:[Object], Datenobjekt, kann dazu benutzt werden Tabellendaten aus Userscripten zugänglich zu machen.
Object = My.Clients.CodeBase.oData
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