PMS32 Online- Hilfereferenz
CAE-Differenzliste -Pos
Direkte Anzeige der Artikelnummer in einer Fremdtabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.
Direkte Anzeige der Artikelnummer in einer Fremdtabelle. Zusätzlich zur IDB01 (Primärer Artikelschlüssel) wird in diesen Tabellen die Artikelnummer angezeigt. Fehlt das Feld (IDB01) in der Tabelle, so wird die Artikelnummer aus Sicherheitsgründen genommen, um bei eventuell gelöschtem Artikel noch die Nummer anzeigen zu können. Im Standard erfolgt eine relationale Verknüpfung zum Artikelstamm über die Information IDB01 (Primärschlüssel) des Artikelstamms. Hier wurde jedoch die Artikelnummer direkt gewählt, was auch durch ein extern angeschlossenes System notwendig sein kann. Ein externes System muss nicht unbedingt den Primärschlüssel von PMS32 verwenden oder kennt diesen.
BMK - Betriebsmittelkennzeichen und deren Teile.
Durch das Betriebsmittelkennzeichen oder kurz BMK unterscheidet ein CAD-System die Symbole in einem Schaltplan. Zwei oder mehr Symbole mit dem gleichen BMK müssen sich daher auf das gleiche physische Betriebsmittel beziehen. Bei bestimmten Symbolen wird automatisch davon ausgegangen, daß die BMKs mehrfach auftreten, wie bei den Schützspulen und Kontakten. Andere Symbole müssen dazu "querverweisfähig gemacht" werden (Querverweis). Die Klemmen nehmen eine besondere Stellung ein, da hier das BMK aus verschiedenen Komponenten zusammengesetzt wird, hauptsächlich aus der Klemmleistenbezeichnung und der Klemmennummer. Bei der DIN-Bearbeitung gehören zum vollständigen BMK noch ein Anlagenkennzeichen und/oder ein Ortskennzeichen. Das BMK wird beim Einlesen von Schaltplänen mit eingelesen. Manuelle Einträge in dieses Feld sind möglich, aber nicht sinnvoll. Siehe dazu auch das Codebeispiel.
*/ BMK der Position. */ Ist unter E10.BMKNR = 2 (DIN) eingestellt, so wird die BMK in ihre verschiedenen Teile aufgelöst! BMKANL = Anlage, Anlage BMK kann ein Teil der BMK - Nummer sein. Diese wird durch ein "=" eingeleitet und durch ein "+" abgeschlossen. BMKKB = Kennbuchstabe, K | M | ... BMKORT = Ort BMKZNR = Zählnummer F_A bis F_E => Sortierungen !Die Inhalte werden vor der Summierung bzw. Gruppierung für jede Position ermittelt! !Deshalb kann auch eine Gruppierung z.B. nach IP, Artikelnummer und BMKANL vorgenommen werden! Am Beispiel einer BMK in E11: BMK = "=A01+O01-Q1" BMKANL = "A01" BMKORT = "O01" BMKZNR = "" BMKKB = "Q1" F_A = "" F_B = "Q" F_C = "00...01" F_D = "" F_E = ""
Lookup in : CAE-Differenzliste (F90). Eine Änderung erfolgt durch F3 - Auswahl. Der Srung zu Stammtabelle erfolgt mit F2
Lookup- bzw. relationale Felder werden benötigt um Tabellen mittels SQL Select oder einer Relation zu verbinden. Durch die Namensgebung der Lookupfelder kann aus dem Feldnamen "meistens" die Zieltabelle der Relation bestimmt werden. Alle Relationen werden in PMS32 über sogenannte ID- Felder hergestellt, wobei die Zieltabelle ab der dritten Stelle des Feldnamens bis zur fünften Stelle des Feldnames angegeben ist. Aus ein paar Beispielen: D51.IDB01 => B01, I40.IDC42VKB => C42, I50.IDC25B => C25. Mit der Formel aus dem Codeblock kann zu "fast" allen ID Feldern die entsprechende Zieltabelle ermittelt werden. Spezial- Lookupfelder wie z.B.: I20.IDZWI oder I23.IDAUFA... benötigen zur Bestimmung die entsprechende IP, mit der über die Systemtabelle Y01 die entsprechende Zieltabelle ermittelt werden kann.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: F90 - CAE-Differenzliste */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen F91 und F90... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT F91.IDF90 AS _Quelle, F90.IDF90 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"F91.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"F90.DBF") ON F91.IDF90=F90.IDF90 ; WHERE F91.... ; INTO CURSOR qF91 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle F91 im Feld _Quelle und nur vorhandene Datensätze der Tabelle F90 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT F91.IDF90 AS _Quelle, F90.IDF90 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"F91.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"F90.DBF") ON F91.IDF90=F90.IDF90 ; WHERE F91.... ; INTO CURSOR qF91 NOFILTER READWRITE */ Geht auch so... SELECT F91.IDF90 AS _Quelle, F90.IDF90 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"F91.DBF") , (My.Clients.Path.cDbfDir+"F90.DBF") ; WHERE F91.IDF90=F90.IDF90 AND F91.... ; INTO CURSOR qF91 NOFILTER READWRITE
Interne ID der Tabelle F91
Interne ID der Tabelle F91
*/ Das Feld IDF91 ist das Primärschlüsselfeld der Tabelle F91 - CAE-Differenzliste -Pos */ Dieses Feld kann in anderen Tabellen als relationaler Schlüssel zu dieser Tabelle dienen */ An einem SQL - Beispiel eines beschreibbaren Cursors... */ Die Daten des Cursors können zwar geändert werden, die Änderungen werden jedoch NICHT in die Datenbank zurückgeschrieben! SELECT F91.* FROM (My.Clients.Path.cDbfDir+"F91.DBF") ; WHERE F91.IDF91 = m.idf91 ; INTO CURSOR qF91 NOFILTER READWRITE */ Werden die Daten über die die Methode _SqlRead() abgerufen, so kann der Pfad als Datenbank-Verweis angegeben werden... IF poThis._SqlRead([SELECT F91.* FROM CDBFDIR!F91 WHERE IDF91=']+m.idf91+['],"qF91",2) */ Hier könnte Code stehen... */ Siehe auch: My.Clients.SQL.SQLRead(tnDataSession,tcSQLStatement,tcAlias,tvTable) ENDIF
Bitte wählen Sie mit F3 aus, falls eine Auswahlmöglichkeit besteht.
IP Felder definieren die Art des Datensatzes oder dessen Status. Der Feldinhalt wird immer aus der Tabelle Y01 ermittelt. Sollte die Möglichkeit einer Benutzereingabe bestehen, so wird der Wert mit einer Auswahl F3 auf dem Feld geändert. Die Werte in diesen Feldtypen sind immer von der Relation in die Tabelle Y01 (Systemtabelle) abhängig.
*/ Dieses Feld ist ein IP - Feld der Tabelle... */ Der Abruf der Informationen kann über die Tabelle Y01 erfolgen... */ IP Felder geben entweder eine Zeilenart oder eine relationale Tabelle an... LOCAL loY01 AS Object loY01 = My.Bussines.Strain.Misc.vY01[F91.IPF91] */ Damit kann die Zeilenart bestimmt werden...
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das letzte Änderungsdatum des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LDATUM WITH My.xDate UPDATE .... , LDATUM = My.xDate
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Programm der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LPRG WITH My.lProgram UPDATE .... , LPRG = My.lProgram
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält den Benutzer der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LWER WITH My.cUser UPDATE .... , LWER = My.cUser
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält die Uhrzeit der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LZEIT WITH My.xTime UPDATE .... , LZEIT = My.xTime
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Neuanlagedatum des Datensatzes.
My.xDate gibt das aktuelle Datum zurück.
Bitte verwenden Sie nicht DATE()!
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NDATUM) VALUES (...,My.xDate)
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Programm der Neuanlage des Datensatzes.
My.lProgram gibt das aktuelle Programm zurück.
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NWER) VALUES (...,My.cUser)
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält den Benutzer der Neuanlage des Datensatzes.
My.cUser gibt den angemeldeten Benutzer (C65) zurück.
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NWER) VALUES (...,My.cUser)
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Neuanlageuhrzeit des Datensatzes.
My.xTime gibt das aktuelle Uhrzeit zurück.
Bitte verwenden Sie nicht TIME()!
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NZEIT) VALUES (...,My.xTime)
Positionsnummer. Sortierkriterium der Positionstabelle.
Positionsnummer. Sortierkriterium der Positionstabelle. Die Nummer kann in verschiedenen Modulen mit entsprechenden Funktionen (Menü) geändert bzw. neu nummeriert werden. Teilweise wird die Positionsnummer nur intern verwendet und ist für den Benutzer nach außen nicht sichtbar. In der Vorgangsverwaltung, E-Masken, besteht eine besondere Positionsnummerierung. Dort werden Positionen der gleichen Pseudobaugruppe mit gleicher Positionsnummer angegeben. Intern jedoch verwendet die Positionsnummer vier Nachkommastellen, die aber bei der Anzeige nicht ausgegeben werden. Dadurch entsteht der Effekt der "gleichen" Positionsnummer bei korrekter Sortierung.
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