PMS32 Online- Hilfereferenz
AppForms - Beherbergt alle Forms für Abfragen bzw. Eingaben
Beherbergt alle Forms für Abfragen bzw. Eingaben
*/ Kurzbeispiel für den Zugriff auf diese Struktur */ Der Zugriff erfolgt über: My.AppForms.AppForms */ 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 loAppForms AS My.AppForms.AppForms */ Setzen der Variablen loAppForms = My.AppForms.AppForms */ Jetzt erst die Schleifen durchlaufen... man beachte ALL, dass können ne Menge Sätze sein... REPLACE ALL Feldname1 WITH loAppForms.Function1(),Feldname2 WITH loAppForms.Function1(), ... */ Oder in einer Schleife... SCAN lvValue = loAppForms.Function(Alias.Spalte) + 25 lvValue = loAppForms.Function2(m.lvValue) REPLACE Feldname WITH m.lvValue,... ENDSCAN */ Es sind auch geschachtelte Aufrufe möglich...
Variant = My.AppForms.AppForms.ActivateB01Bg(tcIdb01 AS STRING) Variant = My.AppForms.AppForms.ActivateB01Bg(tcIdb01)
Boolean = My.AppForms.AppForms.ActivateMenutree()
Ein Dokument in die Dokumentenverwaltung aufnehmen.
Mit dieser Funktion wird die Maske zur Auswahl eines Dokuments geöffnet.
Die Angaben für toDbf entnehmen Sie bitte dem Codebeispiel.
Variant = My.AppForms.AppForms.AddDocument(toDbf AS OBJECT) Variant = My.AppForms.AppForms.AddDocument(toDbf)
LOCAL loDbf AS Object */ Ein Tabellenobjekt der Master - Tabelle erstellen loDbf = My.Systems.LocalDict.DocumentCan(JUSTSTEM(DBF(m.Master)),.T.) IF !ISNULL(m.loDbf) =My.AppForms.AppForms.AddDocument(m.loDbf) ENDIF
Rückgabe:[Boolean], Added eine neue Spalte im Grid
Boolean = My.AppForms.AppForms.AddGridColumn(toForm AS FORM,toGrid AS OBJECT,toColumn AS OBJECT) Boolean = My.AppForms.AppForms.AddGridColumn(toForm,toGrid,toColumn)
Boolean = My.AppForms.AppForms.AddGridColumnS(toForm AS FORM,toGrid AS GRID,toColumn AS COLUMN) Boolean = My.AppForms.AppForms.AddGridColumnS(toForm,toGrid,toColumn)
Variant = My.AppForms.AppForms.AddTree(tcName AS String) Variant = My.AppForms.AppForms.AddTree(tcName)
Rückgabe:[Boolean], Aufruf der Auswahlform ALT+F3 oder F3.
Boolean = My.AppForms.AppForms.AltF3Form(toLookup AS OBJECT,tlExactSearch AS Boolean,tlOnTop AS Boolean,tlSystem AS Boolean) Boolean = My.AppForms.AppForms.AltF3Form(toLookup,tlExactSearch,tlOnTop,tlSystem)
Rückgabe:[Boolean], Anzeigeform, die vor dem eigentlichen Login gestartet wird.
Boolean = My.AppForms.AppForms.AppGimick()
Boolean = My.AppForms.AppForms.AppJK()
Variant = My.AppForms.AppForms.AppLK(tcDbf AS String) Variant = My.AppForms.AppForms.AppLK(tcDbf)
Rückgabe:[Boolean], Login zur Applikation starten
Boolean = My.AppForms.AppForms.AppLogin(tcUser AS STRING @) Boolean = My.AppForms.AppForms.AppLogin(@tcUser)
Integer = My.AppForms.AppForms.AppUsers(tcAbteilung AS String) Integer = My.AppForms.AppForms.AppUsers(tcAbteilung)
Rückgabe:[Boolean], Eingabe bzw. Änderung von B12 .icb12 und .imb12
Boolean = My.AppForms.AppForms.B12Info(toB12 AS OBJECT) Boolean = My.AppForms.AppForms.B12Info(toB12)
Rückgabe:[Boolean], Wechseln der Masken, wenn mehrere Fenster übereinander liegen...
Boolean = My.AppForms.AppForms.ChangeWindow()
Rückgabe:[Boolean], Auswahl über eine integrierte Liste incl. deren Positionen. Es wird Master und Child dargestellt.
Boolean = My.AppForms.AppForms.DblBrowForm(tcProgram AS STRING,tlClose AS Boolean,tlMaster AS Boolean,tnDataSession AS Number) Boolean = My.AppForms.AppForms.DblBrowForm(tcProgram,tlClose,tlMaster,tnDataSession)
Rückgabe:[Boolean], Wie EditCodeScript, jedoch wird die Datei übergeben und eventuell der ScriptPfad geadded, falls nicht vorhanden. Siehe auch ModifyScript
Boolean = My.AppForms.AppForms.EditCodeFile(tcFile AS STRING,tv1 AS Variant @,tv2 AS Variant @,tv3 AS Variant @,tv4 AS Variant @, tv5 AS Variant @,tv6 AS Variant @,tv7 AS Variant @,tv8 AS Variant @,tv9 AS Variant @) Boolean = My.AppForms.AppForms.EditCodeFile(tcFile,@tv1,@tv2,@tv3,@tv4,@tv5,@tv6,@tv7,@tv8,@tv9)
Rückgabe:[Boolean], Ermöglicht ein Editieren eines Scripts über das Programm "Codeblock", jedoch mit Angabe von Parametern
Boolean = My.AppForms.AppForms.EditCodeScript(tcScript AS STRING @,tv1 AS Variant @,tv2 AS Variant @,tv3 AS Variant @, tv4 AS Variant @, tv5 AS Variant @,tv6 AS Variant @, tv7 AS Variant @,tv8 AS Variant @, tv9 AS Variant @) Boolean = My.AppForms.AppForms.EditCodeScript(@tcScript,@tv1,@tv2,@tv3,@tv4,@tv5,@tv6,@tv7,@tv8,@tv9)
Rückgabe:[Boolean], Eigenschaften des Grid's ändern.
Boolean = My.AppForms.AppForms.EditGridProps(toGrid AS GRID , toHeader AS Header) Boolean = My.AppForms.AppForms.EditGridProps(toGrid,toHeader)
Variant = My.AppForms.AppForms.EnvFilter(toCursor AS b64cur OF vcx\pms64_03base.vcx , tnData AS Number) Variant = My.AppForms.AppForms.EnvFilter(toCursor,tnData)
Variant = My.AppForms.AppForms.EnvLookup(tcLookup AS String,tlExact AS Boolean, tnData AS Number,tlOnTop AS Boolean) Variant = My.AppForms.AppForms.EnvLookup(tcLookup,tlExact,tnData,tlOnTop)
Variant = My.AppForms.AppForms.EnvSearch(toField AS TextBox , tlContinue AS Boolean , tnData AS Number) Variant = My.AppForms.AppForms.EnvSearch(toField,tlContinue,tnData)
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.AppForms.AppForms.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.AppForms.AppForms.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.AppForms.AppForms.Evaluate([m.pnVar1+m.pnVar2]) WAIT WINDOW m.lnVar && Ergibt 4... ENDTEXT
Ausführen eines VFP-Scripts incl. der Prüfung, ob ein ALIAS besteht.
Variant = My.AppForms.AppForms.ExecScript(_es_pcAlias AS STRING,_es_pcScript AS STRING,_es_tlBoolean AS Boolean, _es_tvP1 AS Variant,_es_tvP2 AS Variant,_es_tvP3 AS Variant,_es_tvP4 AS Variant,_es_tvP5 AS Variant,_es_tvP6 AS Variant, _es_tvP7 AS Variant,_es_tvP8 AS Variant,_es_tvP9 AS V) Variant = My.AppForms.AppForms.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.AppForms.AppForms.ExecScript("",m.lcScript,0,@lnVar1,@lnVar2) */ und das Ergebnis... WAIT WINDOW m.lnVar WAIT WINDOW m.lnVar1 WAIT WINDOW m.lnVar2
Ausführen eines VFP-Scripts incl. PARAMETER (Collection)
Als Parameter wird eine Collection mit Informationen übergeben!
Variant = My.AppForms.AppForms.ExecScriptP(tcScript AS STRING,toPara AS COLLECTION) Variant = My.AppForms.AppForms.ExecScriptP(tcScript,toPara)
*/ Mit EXECSCRIPTP kann ein VFP-Script ausgeführt werden LOCAL lcScript AS String,lnVar AS Number,loColl AS Collection loColl = CREATEOBJECT("Collection") loColl.Add(2,"Var1") loColl.Add(2,"Var2") TEXT TO lcScript NOSHOW TEXTMERGE LPARAMETERS toColl AS Collection RETURN toColl.Item("Var1") + toColl.Item("Var2") ENDTEXT lnVar = My.AppForms.AppForms.ExecScriptP(m.lcScript,m.loColl) */ und das Ergebnis... WAIT WINDOW m.lnVar
String = My.AppForms.AppForms.FilterExpression(toField AS TEXTBOX) String = My.AppForms.AppForms.FilterExpression(toField)
Rückgabe:[Variant], Ruft GetExpression auf und gibt die Variante zurück, incl. Menüprüfung.
Variant = My.AppForms.AppForms.GetExpression(tcIrgendwas) Variant = My.AppForms.AppForms.GetExpression(tcIrgendwas)
Variant = My.AppForms.AppForms.GetFieldExpression(poFields AS OBJECT,pcDbf AS String) Variant = My.AppForms.AppForms.GetFieldExpression(poFields,pcDbf)
Rückgabe:[String], Gibt die ID der ausgewählten Sprache zurück...
String = My.AppForms.AppForms.GetLanguage(tcTable AS STRING) String = My.AppForms.AppForms.GetLanguage(tcTable)
Wandelt übergebene Parameter in eine Collection um.
Umkehrfunktion zu SetParameters.
Variant = My.AppForms.AppForms.GetParameters(tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant,tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant) Variant = My.AppForms.AppForms.GetParameters(tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
*/ Hier können mehrere Parameter in eine Collection übertragen werden LOCAL loCollection AS Collection , lni AS Integer , lcNames AS String loCollection = My.AppForms.AppForms.GetParameters(1,DATE(),TIME()) WAIT WINDOW m.loCollection.Count && Anzahl der Werte (3) */ Die Namen der Parameter bestimmen lcNames = "" FOR m.lni = 1 TO m.loCollection.Count lcNames = m.lcNames + ";" + m.loCollection.GetKey(m.lni) NEXT m.lni WAIT WINDOW SUBSTR(m.lcNames,2)
Wandelt übergebene Parameter in eine Collection um.
Jedoch wird als 'erster' Parameter die Anzahl der Parameter mitgegeben.
Variant = My.AppForms.AppForms.GetParametersCount(tnCnt AS Number,tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant,tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant) Variant = My.AppForms.AppForms.GetParametersCount(tnCnt,tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
*/ Hier können mehrere Parameter in eine Collection übertragen werden */ Als Beispiel kann nur der Aufruf eines Scripts / einer Methode dienen LPARAMETERS tp1 AS Variant , tp2 AS Variant , tp3 AS Variant && Es könnten mehr sein! LOCAL loCollection AS Collection , lni AS Integer lni = PCOUNT() && Wieviele Parameter wurden übergeben? loCollection = My.AppForms.AppForms.GetParametersCount(m.lni,m.tp1,m.tp2,m.tp3) WAIT WINDOW m.loCollection.Count && Anzahl der Werte (?)
Variant = My.AppForms.AppForms.GetTableFilter(tcDbf AS STRING) Variant = My.AppForms.AppForms.GetTableFilter(tcDbf)
String = My.AppForms.AppForms.GetX63Caption(tcProgram AS STRING,tcGridType AS STRING,RcUser AS STRING @,tlLoad AS Boolean,tlSV AS Boolean) String = My.AppForms.AppForms.GetX63Caption(tcProgram,tcGridType,@RcUser,tlLoad,tlSV)
Boolean = My.AppForms.AppForms.I01Change(tcIdB01I01 AS STRING , tcIdk10 AS STRING , tcIdc66 AS STRING) Boolean = My.AppForms.AppForms.I01Change(tcIdB01I01,tcIdk10,tcIdc66)
Rückgabe:[Integer], Eingabe eines Wertes mit DefaultWert und Rückgabe, ob eine Übernahme erfolgt ist oder nicht. Rückgabe=1 => Ok
Integer = My.AppForms.AppForms.InputBox(tcPrompt AS STRING,tcCaption AS STRING,tvValue AS Variant @,tnButtons AS INTEGER, tvSelectOnEntry AS Variant,tcFormat AS STRING,tcInputMask AS STRING,tcButtons AS STRING) Integer = My.AppForms.AppForms.InputBox(tcPrompt,tcCaption,@tvValue,tnButtons,tvSelectOnEntry,tcFormat,tcInputMask,tcButtons)
Rückgabe:[Integer], Wie Inputbox jedoch mit Definitionen aus Dialogen.
Integer = My.AppForms.AppForms.InputBoxDialog(tcMatch AS STRING,tvValue AS Variant @,tnButtons AS INTEGER, tvSelectOnEntry AS Variant,tcFormat AS STRING,tcInputMask AS STRING,tcButtons AS STRING) Integer = My.AppForms.AppForms.InputBoxDialog(tcMatch,@tvValue,tnButtons,tvSelectOnEntry,tcFormat,tcInputMask,tcButtons)
String = My.AppForms.AppForms.InputExpression(tcCaption AS String,tcType AS String,tcDefaultExpression AS String) String = My.AppForms.AppForms.InputExpression(tcCaption,tcType,tcDefaultExpression)
Variant = My.AppForms.AppForms.IsWhatActiveControl(tcInlist AS STRING,toForm AS FORM @,toControl AS Control) Variant = My.AppForms.AppForms.IsWhatActiveControl(tcInlist,@toForm,toControl)
Rückgabe:[Boolean], Führt ein Lookup auf der selektierten Tabelle aus. Alte Funktion ist H_LISTE3().
Boolean = My.AppForms.AppForms.Lookup(tcX50Name AS String ,tlExact AS Boolean ,tnData AS Number ,tlOnTop AS Boolean , tlSystem AS Boolean) Boolean = My.AppForms.AppForms.Lookup(tcX50Name,tlExact,tnData,tlOnTop,tlSystem)
*/ Beispiel eines normalen Lookup's PRIVATE sx AS String , lcText AS String sx = "SIE." && Suchbegriff (Vorgabe) */ Öffenen des Artikelstamms SELECT 0 USE (My.Clients.Path.cDbfDir+'b01.dbf') ALIAS b01LL ORDER artnr SHARED AGAIN IF My.AppForms.AppForms.Lookup("B01",.F.) WAIT WINDOW "Gewählt:"+b01LL.artnr ENDIF */ Eine Mehrfachauswahl mit MARKER SELECT .F. AS __marker,c65.* ; FROM (My.Clients.Path.cSysDir+'c65.dbf') ; ORDER BY idc65 ; INTO CURSOR qC65 READWRITE */ Bei einer Mehrfachauswahl MUSS der Cursor READWRITE sein! */ Alle Spalten mit einem Index versehen (außer die Markierspalte) My.DATA.Tabellen.AllIndex(ALIAS(),'__MARKER') */ Die Auswahl... IF My.AppForms.AppForms.Lookup("C65",.F.) */ Erstellen der gewählten Informationen lcText = "" SCAN FOR __Marker lcText = m.lcText + CHR(13) + RTRIM(qC65.match) ENDSCAN */ Das erste CR entfernen lcText = SUBSTR(m.lcText,2) =MESSAGEBOX(m.lcText,64,"Info...") ENDIF
Variant = My.AppForms.AppForms.LookupArray(taArray , tcCaption AS String) Variant = My.AppForms.AppForms.LookupArray(taArray,tcCaption)
Variant = My.AppForms.AppForms.LookupField(tcDbf AS STRING , tcField AS STRING,tlOnTop AS Boolean) Variant = My.AppForms.AppForms.LookupField(tcDbf,tcField,tlOnTop)
Rückgabe:[Boolean], Führt ein Lookup aus, wie THIS.Lookup jedoch unter zusätzlicher Angabe einer DataSessionID
Boolean = My.AppForms.AppForms.LookupS(tcX50Name AS STRING,tlExact AS Boolean,tnDataSession AS NUMBER,tlOnTop AS Boolean) Boolean = My.AppForms.AppForms.LookupS(tcX50Name,tlExact,tnDataSession,tlOnTop)
Rückgabe:[Boolean], Markieren nach Bedingung. Alte Funktion Y1002.PRG
Boolean = My.AppForms.AppForms.MarkExpression(toColumn AS OBJECT) Boolean = My.AppForms.AppForms.MarkExpression(toColumn)
Variant = My.AppForms.AppForms.MaskOriginal()
Variant = My.AppForms.AppForms.ModifyC15(tcIdc14 AS STRING , tcIdc09 AS STRING) Variant = My.AppForms.AppForms.ModifyC15(tcIdc14,tcIdc09)
Rückgabe:[Boolean], Datum mittels eines Kalenders editieren.
Boolean = My.AppForms.AppForms.ModifyDate(tvDateField AS Variant @,tcCaption AS STRING,tlReadOnly AS Boolean,tcFont AS STRING,tnSize AS INTEGER) Boolean = My.AppForms.AppForms.ModifyDate(@tvDateField,tcCaption,tlReadOnly,tcFont,tnSize)
Rückgabe:[Variant], Datum ändern mit einer OffScreenMaske
Variant = My.AppForms.AppForms.ModifyDateTl(toField AS TEXTBOX) Variant = My.AppForms.AppForms.ModifyDateTl(toField)
Rückgabe:[Integer], Editieren einer Datei. Entsprechende Parameter können übergeben werden.
Integer = My.AppForms.AppForms.ModifyFile(tcFile AS STRING, tlReadOnly AS Boolean, tcFont AS STRING, tnSize AS INTEGER) Integer = My.AppForms.AppForms.ModifyFile(tcFile,tlReadOnly,tcFont,tnSize)
Rückgabe:[Boolean], Ruft eine FOrm auf, in der ein MemoFeld geändert werden kann. Die Form kann in der Größe geändert werden.
Boolean = My.AppForms.AppForms.ModifyMemo(tvMemoField AS Variant,tcCaption AS STRING,tlReadOnly AS Boolean,tcFont AS STRING,tnSize AS INTEGER) Boolean = My.AppForms.AppForms.ModifyMemo(tvMemoField,tcCaption,tlReadOnly,tcFont,tnSize)
Rückgabe:[Boolean], Editieren einer Scriptdatei. Ähnlich ModifyFile, jedoch wird der ScriptPfad My.Clients.Path.cSctDir zugefügt, falls nicht vorhanden.
Boolean = My.AppForms.AppForms.ModifyScript(tcFile AS STRING, tlReadOnly AS Boolean, tcFont AS STRING, tnSize AS INTEGER) Boolean = My.AppForms.AppForms.ModifyScript(tcFile,tlReadOnly,tcFont,tnSize)
Rückgabe:[Boolean], Gibt den Status des Record aus. Alte Funktion = STATUS.SCX
Boolean = My.AppForms.AppForms.RecordStatus(tcAlias AS STRING) Boolean = My.AppForms.AppForms.RecordStatus(tcAlias)
Boolean = My.AppForms.AppForms.RefreshB01BG(tcIdb01 AS STRING) Boolean = My.AppForms.AppForms.RefreshB01BG(tcIdb01)
Rückgabe:[Boolean], Suchen im Datenraster nach einem best. Wert. Alte Funktion = Y2001.PRG
Boolean = My.AppForms.AppForms.SearchChild(toColumn AS OBJECT,tlContinue AS Boolean) Boolean = My.AppForms.AppForms.SearchChild(toColumn,tlContinue)
Variant = My.AppForms.AppForms.SearchEvery(toInfo AS OBJECT) Variant = My.AppForms.AppForms.SearchEvery(toInfo)
Rückgabe:[Boolean], Suchen im Master nach einem best. Wert. Alte Funktion = BORIS.PRG
Boolean = My.AppForms.AppForms.SearchMaster(toField AS OBJECT, tlContinue AS Boolean) Boolean = My.AppForms.AppForms.SearchMaster(toField,tlContinue)
Wandelt eine übergebene Collection in Parameter um.
Umkehrfunktion zu GetParameters.
Variant = My.AppForms.AppForms.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.AppForms.AppForms.SetParameters(toPara,@tvP1,@tvP2,@tvP3,@tvP4,@tvP5,@tvP6,@tvP7,@tvP8,@tvP9)
*/ Umwandeln einer Collection in Parameter LOCAL loCollection AS Collection,lnVar1 AS Number,lnVar2 AS Number loCollection = CREATEOBJECT("Collection") =loCollection.Add(1,"tvp1") =loCollection.Add(2,"tvp2") =My.AppForms.AppForms.SetParameters(m.loCollection,@lnVar1,@lnVar2) WAIT WINDOW m.lnVar1 WAIT WINDOW m.lnVar2
Rückgabe:[Boolean], Einstellungen der LV-Kopplung ändern
Boolean = My.AppForms.AppForms.SetPmsLv()
Boolean = My.AppForms.AppForms.ShowBackgroundMessages(toMessages AS COLLECTION) Boolean = My.AppForms.AppForms.ShowBackgroundMessages(toMessages)
Boolean = My.AppForms.AppForms.ShowDocument(tcDbf AS STRING , tcID AS STRING) Boolean = My.AppForms.AppForms.ShowDocument(tcDbf,tcID)
Rückgabe:[Boolean], Anzeige der Feld - Properties in einer Maske.
Boolean = My.AppForms.AppForms.ShowFieldProps(toObject AS OBJECT) Boolean = My.AppForms.AppForms.ShowFieldProps(toObject)
Boolean = My.AppForms.AppForms.ShowFieldPropsN(toField AS fTEXTBOX OF vcx\pmsafbasic.vcx , toFld AS OBJECT) Boolean = My.AppForms.AppForms.ShowFieldPropsN(toField,toFld)
Rückgabe:[Boolean], Anzeige der Relationen. tcAliasFrom => ausgehend von diesem Alias
Boolean = My.AppForms.AppForms.ShowRelations(tcAliasFrom AS STRING,tnDataSession AS NUMBER) Boolean = My.AppForms.AppForms.ShowRelations(tcAliasFrom,tnDataSession)
Rückgabe:[Boolean], Anzeige aller Relationen in einer Datenumgebung! Ausgehend vom Aktiven Alias und allen anderen.
Boolean = My.AppForms.AppForms.ShowRelationsAll(tnDataSession AS NUMBER) Boolean = My.AppForms.AppForms.ShowRelationsAll(tnDataSession)
Rückgabe:[Boolean], Ändert die Posnr eines Childs anhand der angegebenen Sortierung.
Boolean = My.AppForms.AppForms.SortChildByPosnr(tcAlias AS STRING, tcFilter AS STRING, tcSort AS STRING, tlDescending AS Boolean) Boolean = My.AppForms.AppForms.SortChildByPosnr(tcAlias,tcFilter,tcSort,tlDescending)
Anzahl der Datensätze eines SQL Statements ermitteln.
Die Rückgabe ist Number oder .NULL.
Die Datenbankangaben:
CSYSDIR! => My.Clients.Path.cSysDir
CDBFDIR! => My.Clients.Path.cDbfDir
CFRXDIR! => My.Clients.Path.cFrxDir
CNETDIR! => My.Clients.Path.cNetDir
CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.
Variant = My.AppForms.AppForms._SqlCount(tcSql AS String) Variant = My.AppForms.AppForms._SqlCount(tcSql)
LOCAL lcSql AS String lcSql = [SELECT COUNT(*) FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"] IF My.AppForms.AppForms._SqlCount(m.lcSql)>0 WAIT WINDOW "Es sind Daten vorhanden!" ENDIF */ Bemerkung: */ Bei der Angabe der Datenbank, hier CSYSDIR!, wird der Wert gegen den Pfad ausgetauscht!
Werden Datensätze im SQL-Statement ermittelt?
Die Rückgabe ist Boolean oder .NULL.
Die Datenbankangaben:
CSYSDIR! => My.Clients.Path.cSysDir
CDBFDIR! => My.Clients.Path.cDbfDir
CFRXDIR! => My.Clients.Path.cFrxDir
CNETDIR! => My.Clients.Path.cNetDir
CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.
Variant = My.AppForms.AppForms._SqlExist(tcSql AS String) Variant = My.AppForms.AppForms._SqlExist(tcSql)
LOCAL lcSql AS String lcSql = [SELECT ipy01 FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"] IF My.AppForms.AppForms._SqlExist(m.lcSql) && Gibt Boolean zurück WAIT WINDOW "Es sind Daten vorhanden!" ENDIF */ Bemerkung: */ Bei der Angabe der Datenbank, hier CSYSDIR!, wird der Wert gegen den Pfad ausgetauscht!
Ausführen eines SQL-Statements und Rückgabe des angegebenen Cursors.
Die Rückgabe ist Boolean oder .NULL.
Die Datenbankangaben:
CSYSDIR! => My.Clients.Path.cSysDir
CDBFDIR! => My.Clients.Path.cDbfDir
CFRXDIR! => My.Clients.Path.cFrxDir
CNETDIR! => My.Clients.Path.cNetDir
CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.
Variant = My.AppForms.AppForms._SqlRead(tcSql AS String,tcAlias AS String,tvTable AS Variant,tcIndex AS String) Variant = My.AppForms.AppForms._SqlRead(tcSql,tcAlias,tvTable,tcIndex)
LOCAL lcSql AS String lcSql = [SELECT * FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"] IF My.AppForms.AppForms._SqlRead(m.lcSql,"qY01",2) && Gibt Boolean zurück ACTIVATE _SCREEN BROWSE ENDIF */ Bemerkung: */ Bei der Angabe der Datenbank, hier CSYSDIR!, wird der Wert gegen den Pfad ausgetauscht! */ Die einzelnen Parameter: */ tcSql AS String,tcAlias AS String,tvTable AS Variant,tcIndex AS String */ Ein muss sind: tcSql AS String,tcAlias AS String */ tvTable kann angegeben werden mit: */ .F. => Cursor incl. __Changed [L] und __New [L], .T. - Tabelle incl. */ Bit-0 => 1 - Als Tabelle, 0 - Als Cursor */ Bit-1 => 1 - Ohne __Changed und __New, 0 - Mit... */ tcIndex kann angegeben werden, wenn Indizes auf dem Cursor / der Tabelle benötigt werden. */ "IndexKey1#IndexTag1;IndexKey2#IndexTag2;...." */ Wird kein IndexTag angegeben und der IndexKey NICHT aus einer Funktion ermittelt, so hat der IndexKey den Namen des IndexTag! */ Wird der IndexKey aus einer Funktion gebildet und es ist kein IndexTag angegeben, so erhält der IndexTag den Namen _Index<Nummer>
Ausführen eines SQL-Statements in ein Array und Rückgabe ob Daten ermittelt wurden.
Die Rückgabe ist Boolean oder .NULL.
Die Datenbankangaben:
CSYSDIR! => My.Clients.Path.cSysDir
CDBFDIR! => My.Clients.Path.cDbfDir
CFRXDIR! => My.Clients.Path.cFrxDir
CNETDIR! => My.Clients.Path.cNetDir
CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.
Variant = My.AppForms.AppForms._SqlReadArray(tcSql AS String,toObject AS Object,taArray) Variant = My.AppForms.AppForms._SqlReadArray(tcSql,toObject,taArray)
LOCAL lcSql AS String , laErg[1] , loObject AS Object lcSql = [SELECT * FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"] */ Ausführen in ein lokales Array IF My.AppForms.AppForms._SqlReadArray(m.lcSql,.NULL.,@laErg) && Es gibt Datensätze... */ FOR i = ... NEXT i ENDIF */ Ausführen in ein Objekt-Array loObject = CREATEOBJECT("EMPTY") =ADDPROPERTY(loObject,"aErg[1]") IF My.AppForms.AppForms._SqlReadArray(m.lcSql,m.loObject,"aErg") && Es gibt Datensätze... */ FOR i = ... NEXT i ENDIF
Ausführen eines SQL-Statements in eine Collection und Rückgabe der Collection.
Die Rückgabe ist Collection oder .NULL.
Die Datenbankangaben:
CSYSDIR! => My.Clients.Path.cSysDir
CDBFDIR! => My.Clients.Path.cDbfDir
CFRXDIR! => My.Clients.Path.cFrxDir
CNETDIR! => My.Clients.Path.cNetDir
CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.
Variant = My.AppForms.AppForms._SqlReadCollection(tcSql AS String,tcIndex AS String) Variant = My.AppForms.AppForms._SqlReadCollection(tcSql,tcIndex)
LOCAL lcSql AS String , loColl AS Collection lcSql = [SELECT * FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"] */ Normale Ausführung OHNE Indexangabe. */ Die Keys der Collection sind fortlaufend nummeriert! loColl= My.AppForms.AppForms._SqlReadCollection(m.lcSql) WAIT WINDOW loColl.GetKey(1) && "0000001" */ Hat der SQL einen eindeutigen Key so kann dieser benutzt werden! loColl= My.AppForms.AppForms._SqlReadCollection(m.lcSql,"ipy01") WAIT WINDOW loColl.GetKey(1) && "SU0"
Ausführen eines SQL-Statements und Rückgabe der Value des ERSTEN Feldes.
Die Rückgabe ist Variant oder .NULL.
Die Datenbankangaben:
CSYSDIR! => My.Clients.Path.cSysDir
CDBFDIR! => My.Clients.Path.cDbfDir
CFRXDIR! => My.Clients.Path.cFrxDir
CNETDIR! => My.Clients.Path.cNetDir
CTMPDIR! => My.Clients.Path.cTmpDir
werden unter VFP-Tabellen in den entsprechenden Pfad umgewandelt!
Bei der Verwendung eines SQL-Servers werden diese Informationen gegen den Datenbanknamen im SQL-Server ausgetauscht.
Variant = My.AppForms.AppForms._SqlReadValue(tcSql AS String,tiValue AS Integer) Variant = My.AppForms.AppForms._SqlReadValue(tcSql,tiValue)
LOCAL lcSql AS String , lvValue AS Variant */ Gibt den Inhalt der ERSTEN Spalte zurück lcSql = [SELECT bezei,kurz,master FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"] lvValue = My.AppForms.AppForms._SqlReadValue(m.lcSql) && y01.Bezei */ Gibt den Inhalt der ZWEITEN Spalte zurück lcSql = [SELECT bezei,kurz,master FROM CSYSDIR!Y01 WHERE idc26="DE " AND ipy01="SU"] lvValue = My.AppForms.AppForms._SqlReadValue(m.lcSql,2) && y01.Kurz
UPDATE eines lokalen Cursors gegenüber der angegebenen Tabelle durchführen.
Die Rückgabe ist Boolean oder .NULL.
Der Cursor MUSS die Spalten __Changed und __New enthalten!
Außerdem MUSS die Zieltabelle die Spalte LastUpd enthalten!
Variant = My.AppForms.AppForms._SqlUpdate(tcTable AS STRING,tcAlias AS STRING,tcIdName AS STRING,tcFilter AS String) Variant = My.AppForms.AppForms._SqlUpdate(tcTable,tcAlias,tcIdName,tcFilter)
LOCAL lcSql AS String , tlUpdate AS Boolean lcSql = [SELECT * FROM CDBFDIR!B01 WHERE b01.artnr='SIE.3TH'] */ Lesen der Daten vom Backend IF My.AppForms.AppForms._SqlRead(m.lcSql,"qB01",1) */ Ändern der Daten... SELECT qB01 REPLACE ALL match WITH "LEISTUNGSSCHALTER",__Changed WITH .T. tlUpdate = My.AppForms.AppForms._SqlUpdate("B01",ALIAS(),"IDB01") IF NOT m.tlUpdate WAIT WINDOW My.AppForms.AppForms.cLastError ENDIF ENDIF
UPDATE mehrerer lokaler Cursor gegenüber den angegebenen Tabellen durchführen.
Die Rückgabe ist Boolean oder .NULL.
Die Cursor MUSS die Spalten __Changed und __New enthalten!
Außerdem MUSS die Zieltabelle die Spalte LastUpd enthalten!
;Filter1 = My.AppForms.AppForms._SqlUpdateAll(tcList AS STRING) ;Filter1 = My.AppForms.AppForms._SqlUpdateAll(tcList)
LOCAL tlUpdate AS Boolean */ Lesen der Daten vom Backend IF My.AppForms.AppForms._SqlRead([SELECT * FROM CDBFDIR!B01 WHERE b01.artnr='SIE.3TH'],"qB01",1) AND ; My.AppForms.AppForms._SqlRead([SELECT d03.* FROM CDBFDIR!D03 INNER JOIN CDBFDIR!B01 ON d03.idd03=b01.idd03 WHERE b01.artnr='SIE.3TH'],"qD03",1) */ Ändern der Daten... UPDATE qB01 SET lang = qD03.bez, __Changed = .T. FROM qD03 WHERE qB01.idd03=qD03.idd03 UPDATE qD03 SET ekpdatum = My.xDate, __Changed = .T. tlUpdate = My.AppForms.AppForms._SqlUpdateAll("B01;QB01;IDB01#D03;QD03;IDD03") IF NOT m.tlUpdate WAIT WINDOW My.AppForms.AppForms.cLastError ENDIF ENDIF */ Hinweis: */ Der Update der einzel angegebenen Cursor wird mit einer Transaktion durchgeführt! */ Läuft einer der Updates auf einen Fehler wird die Änderung rückgängig gemacht! */ Der String ist folgendermaßen aufgebaut: */ "Tableinfo1#Tableinfo2#Tableinfo3#..." */ Tableinfo: */ Tabelle;Cursor;ID-Field[;Filter]
Mit dieser Property kann der letzte Fehler im Klartext abgerufen werden.
String = My.AppForms.AppForms.cLastError
*/ Vorausgesetzt wird, dass My bekannt ist... LOCAL lcError AS String lcError = My.AppForms.AppForms.cLastError
Methode in der der letzte Fehler auftrat.
Aufbau: [Fehlernummer] [Methode] [Zeilennummer] [Message]
String = My.AppForms.AppForms.cMethod
*/ Abruf... WAIT WINDOW My.AppForms.AppForms.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.AppForms.AppForms.cResetInfos
*/ Verschiedene RESET Befehle... My.AppForms.AppForms.cResetInfos = "REMOVE-MENUES" My.AppForms.AppForms.cResetInfos = "REMOVE-CS-FILES" My.AppForms.AppForms.cResetInfos = "REMOVE-CS-SCRIPTS" My.AppForms.AppForms.cResetInfos = "CHANGE-IDX09" My.AppForms.AppForms.cResetInfos = "USER_LOGIN" */ Je nach Klasse wird ein entsprechender RESET ausgeführt!
E = My.AppForms.AppForms.eInfo
Thermosanzeige bei der Ausführung
Boolean = My.AppForms.AppForms.lShowThermos
My.AppForms.AppForms.lShowThermos = .T.
Fehlernummer des letzten Fehlers.
Ist der Wert kleiner null, so handelt es sich um einen logischen Fehler.
Number = My.AppForms.AppForms.nError
WAIT WINDOW My.AppForms.AppForms.nError
Wird von SearchEvery benötigt. Setzt den Datensatzzeiger wieder auf den Ursprungswert
Number = My.AppForms.AppForms.nGoRecno
Zeilennummer, in der der letzte Fehler auftrat
Number = My.AppForms.AppForms.nLine
WAIT WINDOW My.AppForms.AppForms.nLine
Verarbeitete Datensätze
Number = My.AppForms.AppForms.nRecords
WAIT WINDOW My.AppForms.AppForms.nRecords
Ausführungszeit in Sekunden
Number = My.AppForms.AppForms.nSeconds
WAIT WINDOW My.AppForms.AppForms.nSeconds
Status der Ausführung
Number = My.AppForms.AppForms.nStatus
WAIT WINDOW My.AppForms.AppForms.nStatus
Merkt sich die Datenumgebung für eine Verarbeitung.
Beim Release der Variable wird die vorherige Datenumgebung wieder hergestellt.
Object = My.AppForms.AppForms.oSelected
LOCAL loSelected AS My_Fu_Selected loSelected = My.AppForms.AppForms.oSelected */ Danach können Tabellen und Cursor geöffnet werden... */ Mit dem Nachfolgenden Befehl wird der obige Zustand der Datenumgebung wieder hergestellt RELEASE loSelected
Instanziiert einen temporären Thermos
Object = My.AppForms.AppForms.oThermos
LOCAL loThermos AS My_Sy_Thermos */ Instanziieren loThermos = My.AppForms.AppForms.oThermos loThermos.AutoCenter = .T. loThermos.cFaktor(1,1/10,.F.,"Info-1...") loThermos.cFaktor(1,2/10,.F.,"Info-2...") */ ... */ Schliesst den Thermos RELEASE loThermos
Object = My.AppForms.AppForms.oTree
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