PMS32 Online- Hilfereferenz

CURSOR.FIELD.L01

Kopfinfo CAE-Listen


Felddefinition: L01.ANAF
Feldname............ ANAF
Feldtyp............. C
Feldgröße........... 25
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Auftragsnummer
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.ANAF

Feldhilfe: L01.ANAF

Auftrags / Angebotsnummer des Vorgangs / CAE - Liste. Freie Eingabe des Benutzers

Beispielcode: L01.ANAF


Felddefinition: L01.ANLAGE
Feldname............ ANLAGE
Feldtyp............. C
Feldgröße........... 48
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Anlage
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.ANLAGE

Feldhilfe: L01.ANLAGE

Anlagenkennzeichnung. Freie Eingabe des Benutzers

Beispielcode: L01.ANLAGE


Felddefinition: L01.BMKNR
Feldname............ BMKNR
Feldtyp............. N
Feldgröße........... 2
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ignorieren
Erweiterter Typ..... BMK
Feldbezeichnung..... BMK Nummerierung
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.BMKNR

BMK Nummerierung. Wie wird die Nummerierung des BMK's im Vorgang vorgenommen.

Feldhilfe: L01.BMKNR

Wie sind die BMK's der Positionsliste aufgebaut? 0-Es wird der Standard verwendet.1-Gesamt. Nummerierung nach Standard.2-DIN, nur bei dieser BMK Nummerierung wird das BMK aufgelöst! Siehe dazu auch das Codebeispiel.

Beispielcode: L01.BMKNR
*/ 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		= ""

Felddefinition: L01.CAEPFAD
Feldname............ CAEPFAD
Feldtyp............. M
Feldgröße........... 4
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Pfad des CAE Projekts*
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.CAEPFAD

Feldhilfe: L01.CAEPFAD

Dieses Feld enthält den Pfad des CAE-Projktes auf der CAE Seite.

Beispielcode: L01.CAEPFAD


Felddefinition: L01.CAEPRJ
Feldname............ CAEPRJ
Feldtyp............. C
Feldgröße........... 51
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Name des CAE Projekts*
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.CAEPRJ

Feldhilfe: L01.CAEPRJ

Dieses Feld enthält den Namen des CAE-Projktes auf der CAE Seite. Er wird bei der Übertragung im Feld E10.CAEPRJ gespeichert. Damit besteht eine Referenz zwischen dem CAE-System und PMS und der Vorgang kann wieder ermittelt werden. Der Name des CAE-Projekts sollte auf CAE Seite eindeutig sein!

Beispielcode: L01.CAEPRJ


Felddefinition: L01.ICAESYSTEM
Feldname............ ICAESYSTEM
Feldtyp............. I
Feldgröße........... 4
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ignorieren
Erweiterter Typ.....
Feldbezeichnung..... CAE System
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.ICAESYSTEM

Feldhilfe: L01.ICAESYSTEM

Welches CAE System hat die Daten geliefert?

Beispielcode: L01.ICAESYSTEM


Felddefinition: L01.ICK10
Feldname............ ICK10
Feldtyp............. C
Feldgröße........... 25
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Projektnummer*
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.ICK10

Feldhilfe: L01.ICK10

ICK10 gibt die Projektnummer in PMS an. Die Projektnummer wird nur bei einer Neuanlage der CAE-Liste benötigt. Beim Update oder Löschen wird diese Nummer nicht benötigt!
Um eine CAE Liste neu anlegen zu können, müssen folgende Bedingungen erfüllt sein:
      1.)      ICK10 ist mit der PMS Projektnummer angeben oder
      2.)      In den Firmenparametern ist ein Standardprojekt vorgegeben
Ist beides nicht der Fall, wird bei einer Neuanlage eines Vorgangs ein Fehler erzeugt. Die übergebene Projektnummer muss in PMS vorhanden sein!

Beim Update bzw. beim Auslesen der CAE - Liste werden diese Informationen automatisch mitübertragen.
Die entsprechenden Felder sind dann korrekt gefüllt!

!ACHTUNG!
Ist L01.IUPDE10 = 1 und wird in L01.ICL01 ein "*" angegeben, so wird IMMER ein neuer Vorgang angelegt! Voraussetzung, dass Projekt kann ermittelt werden!

Beispielcode: L01.ICK10


Felddefinition: L01.ICL01
Feldname............ ICL01
Feldtyp............. C
Feldgröße........... 25
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... IC
Feldbezeichnung..... Vorgangsnummer*
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.ICL01

Bitte füllen Sie möglichst das Feld mit einem eindeutigen Wert, damit Sie bei einer Auswahl (Lookup) die Information deutlich indentifizieren können.

Feldhilfe: L01.ICL01

Candidate Felder einer Tabelle definieren einen eindeutigen Suchbefriff für den Benutzer. Meistens hat die Tabelle auch eine interne ID, die den Primärschlüssel der Tabelle bildet. Dann "könnten" mehrere "gleiche" Datensätze mit gleichem Candidateschlüssel angelegt werden. Das System wäre in der Lage, bei Doppeltbenennungen "quasi gleicher" Definitionen, anhand der internen ID die Daten auseinander zu halten. Der Benutzer kann bei einer Auswahl (Lookup) die Informationen dann aber nicht unbedingt auseinanderhalten. Dieses Feld wird "meistens" bei einer Relation aus einer anderen Tabelle heraus angezeigt. Achten Sie deshalb darauf, dass Sie die Information wiedererkennen können. Am Beispiel einer Artikelnummer: Unter einer Artikelnummer mit "74568958743.14" kann sich kaum jemand was vorstellen, jedoch mit "SIE.3TH..." (Hersteller + Typennummer) weiss der Benutzer zumindest, dass es sich hier um Leistungsschütze handelt. Wie Sie Ihre Candidate Schlüssel eingeben bleibt Ihnen überlassen, bedenken Sie jedoch, dass einen sprechende Nummer für nicht eingeweihte Personen besser lesbar ist.

Beispielcode: L01.ICL01


Felddefinition: L01.IDC63
Feldname............ IDC63
Feldtyp............. C
Feldgröße........... 6
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... LU
Feldbezeichnung..... Kunden ID
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IDC63

Relationales Feld (Lookup) in die Kundentabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.

Feldhilfe: L01.IDC63

Relationales Feld zur Kundentabelle. Dieses Feld ist ein Lookup- relationales Feld in die Kundentabelle (C63). Bei SQL Abfragen wird dieses Feld zur Verknüpfung der eigentlichen Tabelle mit der Kundentabelle benötigt. Ein Beispiel: SELECT c63.match, COUNT(*) AS anzahl FROM c63,d40 WHERE c63.idc63=d40.idc61 AND ... GROUP BY 1 ... Dieser SQL würde alle Beistellungen und Reparaturbestellungen zum Kunden ermitteln.

Beispielcode: L01.IDC63
*/ Dieses Feld ist ein relationales Feld zur Tabelle: C63 - Kunden

*/ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen L01 und C63...
*/ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel:
SELECT L01.IDC63 AS _Quelle, C63.IDC63 AS _Ziel ;
	FROM ("L01") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"C63.DBF") ON L01.IDC63=C63.IDC63 ;
	WHERE L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Der obige Cursor enthält alle Datensätze der Tabelle L01 im Feld _Quelle und nur vorhandene Datensätze der Tabelle C63
*/ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL.

*/ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind:
SELECT L01.IDC63 AS _Quelle, C63.IDC63 AS _Ziel ;
	FROM ("L01") INNER JOIN (My.Clients.Path.cDbfDir+"C63.DBF") ON L01.IDC63=C63.IDC63 ;
	WHERE L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Geht auch so...
SELECT L01.IDC63 AS _Quelle, C63.IDC63 AS _Ziel ;
	FROM ("L01") , (My.Clients.Path.cDbfDir+"C63.DBF") ;
	WHERE L01.IDC63=C63.IDC63
	AND   L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt...
LOCAL loC63 AS Object
loC63 = My.Bussines.Strain.Misc.oC63[L01.IDC63]
IF !EMPTY(loC63.IDC63)
	*/ Dann wurde der Datensatz in der Tabelle C63 gefunden!
	*/ Weiterer Code kann hier stehen...
ENDIF

Felddefinition: L01.IDE10
Feldname............ IDE10
Feldtyp............. C
Feldgröße........... 8
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... LU
Feldbezeichnung..... ID des Vorgangs
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IDE10

Relationales Feld (Lookup) in die Vorgangstabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.

Feldhilfe: L01.IDE10

Relationales Feld zur Vorgangstabelle. Dieses Feld ist ein Lookup- relationales Feld in die Vorgangstabelle (E10). Bei SQL Abfragen wird dieses Feld zur Verknüpfung der eigentlichen Tabelle mit der Vorgangstabelle benötigt. Ein Beispiel: SELECT e10.nummer, i20.menge_s FROM i20,e10 WHERE i20.idzwi = e10.ide10 AND i20ipzwi $ "101,107,108" AND ...

Beispielcode: L01.IDE10
*/ Dieses Feld ist ein relationales Feld zur Tabelle: E10 - VK-Vorgänge

*/ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen L01 und E10...
*/ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel:
SELECT L01.IDE10 AS _Quelle, E10.IDE10 AS _Ziel ;
	FROM ("L01") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"E10.DBF") ON L01.IDE10=E10.IDE10 ;
	WHERE L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Der obige Cursor enthält alle Datensätze der Tabelle L01 im Feld _Quelle und nur vorhandene Datensätze der Tabelle E10
*/ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL.

*/ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind:
SELECT L01.IDE10 AS _Quelle, E10.IDE10 AS _Ziel ;
	FROM ("L01") INNER JOIN (My.Clients.Path.cDbfDir+"E10.DBF") ON L01.IDE10=E10.IDE10 ;
	WHERE L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Geht auch so...
SELECT L01.IDE10 AS _Quelle, E10.IDE10 AS _Ziel ;
	FROM ("L01") , (My.Clients.Path.cDbfDir+"E10.DBF") ;
	WHERE L01.IDE10=E10.IDE10
	AND   L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt...
LOCAL loE10 AS Object
loE10 = My.Bussines.Strain.Misc.oE10[L01.IDE10]
IF !EMPTY(loE10.IDE10)
	*/ Dann wurde der Datensatz in der Tabelle E10 gefunden!
	*/ Weiterer Code kann hier stehen...
ENDIF

Felddefinition: L01.IDK10
Feldname............ IDK10
Feldtyp............. C
Feldgröße........... 8
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... LU
Feldbezeichnung..... ID des Projekts
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IDK10

Relationales Feld (Lookup) in die Projekttabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.

Feldhilfe: L01.IDK10

Relationales Feld zur Projekttabelle. Dieses Feld ist ein Lookup- relationales Feld in die Projekttabelle (K10). Bei SQL Abfragen wird dieses Feld zur Verknüpfung der eigentlichen Tabelle mit der Projekttabelle benötigt. Ein Beispiel: SELECT k10.prjnr, i21.menge, i21.preis FROM i21,k10 WHERE i21.idk10 = k10.idk10 AND ...

Beispielcode: L01.IDK10
*/ Dieses Feld ist ein relationales Feld zur Tabelle: K10 - Projekte

*/ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen L01 und K10...
*/ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel:
SELECT L01.IDK10 AS _Quelle, K10.IDK10 AS _Ziel ;
	FROM ("L01") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"K10.DBF") ON L01.IDK10=K10.IDK10 ;
	WHERE L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Der obige Cursor enthält alle Datensätze der Tabelle L01 im Feld _Quelle und nur vorhandene Datensätze der Tabelle K10
*/ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL.

*/ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind:
SELECT L01.IDK10 AS _Quelle, K10.IDK10 AS _Ziel ;
	FROM ("L01") INNER JOIN (My.Clients.Path.cDbfDir+"K10.DBF") ON L01.IDK10=K10.IDK10 ;
	WHERE L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Geht auch so...
SELECT L01.IDK10 AS _Quelle, K10.IDK10 AS _Ziel ;
	FROM ("L01") , (My.Clients.Path.cDbfDir+"K10.DBF") ;
	WHERE L01.IDK10=K10.IDK10
	AND   L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt...
LOCAL loK10 AS Object
loK10 = My.Bussines.Strain.Misc.oK10[L01.IDK10]
IF !EMPTY(loK10.IDK10)
	*/ Dann wurde der Datensatz in der Tabelle K10 gefunden!
	*/ Weiterer Code kann hier stehen...
ENDIF

Felddefinition: L01.IDL01
Feldname............ IDL01
Feldtyp............. C
Feldgröße........... 8
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... ID
Feldbezeichnung..... ID-Kopfinfo CAE-Listen
Standardwert........ My.Clients.Numbers.GetMoreIds("IDL01",1)
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IDL01

Primärschlüssel der Tabelle : Kopfinfo CAE-Listen

Feldhilfe: L01.IDL01

Primärfelder einer Tabelle indentifizieren den Datensatz der Tabelle. Der Feldinhalt ist immer eindeutig und kann niemals mehrfach vorkommen. Primärfelder können aus einem Feld der Tabelle oder aus mehreren Feldern der Tabelle bestehen.

Beispielcode: L01.IDL01
*/ Das Feld IDL01 ist das Primärschlüsselfeld der Tabelle L01 - Kopfinfo CAE-Listen
*/ 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 L01.* FROM ("L01") ;
	WHERE L01.IDL01 = m.idl01 ;
	INTO CURSOR qL01 NOFILTER READWRITE

*/ Werden die Daten über die die Methode _SqlRead() abgerufen, so kann der Pfad als Datenbank-Verweis angegeben werden...
IF poThis._SqlRead([SELECT L01.* FROM L01 WHERE IDL01=']+m.idl01+['],"qL01",2)
	*/ Hier könnte Code stehen...
	*/ Siehe auch: My.Clients.SQL.SQLRead(tnDataSession,tcSQLStatement,tcAlias,tvTable)
ENDIF

Felddefinition: L01.IDL01P
Feldname............ IDL01P
Feldtyp............. C
Feldgröße........... 8
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... ID
Feldbezeichnung..... Kopf-ID der Positionslist
Standardwert........ L01.IDL01
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IDL01P

Lookup in : Kopfinfo CAE-Listen (L01). Eine Änderung erfolgt durch F3 - Auswahl. Der Srung zu Stammtabelle erfolgt mit F2

Feldhilfe: L01.IDL01P

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.

Beispielcode: L01.IDL01P
*/ Dieses Feld ist ein relationales Feld zur Tabelle: L01 - Kopfinfo CAE-Listen

*/ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen L01 und L01...
*/ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel:
SELECT L01.IDL01P AS _Quelle, L01.IDL01 AS _Ziel ;
	FROM ("L01") LEFT OUTER JOIN ("L01") ON L01.IDL01P=L01.IDL01 ;
	WHERE L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Der obige Cursor enthält alle Datensätze der Tabelle L01 im Feld _Quelle und nur vorhandene Datensätze der Tabelle L01
*/ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL.

*/ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind:
SELECT L01.IDL01P AS _Quelle, L01.IDL01 AS _Ziel ;
	FROM ("L01") INNER JOIN ("L01") ON L01.IDL01P=L01.IDL01 ;
	WHERE L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE
*/ Geht auch so...
SELECT L01.IDL01P AS _Quelle, L01.IDL01 AS _Ziel ;
	FROM ("L01") , ("L01") ;
	WHERE L01.IDL01P=L01.IDL01
	AND   L01.... ;
	INTO CURSOR qL01 NOFILTER READWRITE

Felddefinition: L01.IDMAN
Feldname............ IDMAN
Feldtyp............. C
Feldgröße........... 128
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... LU
Feldbezeichnung..... ID des Mandanten
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IDMAN

Feldhilfe: L01.IDMAN

ID des PMS - Mandanten aus PMS32.PTH
Ist dieses Feld leer, wird der momentan aktive Mandant (zuletzt gestartet) genommen. Durch das Anlegen mehrerer Kopfdatensätze ist es möglich die Positionslisten gefiltert in verschiedene Mandanten zu übertragen!

Beispielcode: L01.IDMAN


Felddefinition: L01.IFILTER
Feldname............ IFILTER
Feldtyp............. M
Feldgröße........... 4
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Filterung
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IFILTER

Feldhilfe: L01.IFILTER

Hier kann eine Filterung der Positionen vorgenommen werden. Dazu können nur Felder der Tabelle L02 angegeben werden! Der Filter muss einen logischen Ausdruck enthalten und darf nur Felder der Tabelle L02 enthalten! Beispiel:
IDC25 = "FL" AND ...
Es werden nur Positionen der Artikelgruppen übertragen, die mit "FL" anfangen.

Es gibt verschiedene Felder in der Tabelle L02, die während der Ermittlung der Artikel aus dem Artikelstamm gefüllt werden. Damit kann auch auf solche Felder gefiltert werden. Wer sich gut in PMS auskennt kann für den Filter auch folgende SQL Syntax verwenden:
IDC25 IN (SELECT c25.idc25 FROM c25 WHERE "ELEKTRO" $ c25.bezei)
Geht auch! Ist nur nicht so einfach...
In die Filteranweisung können zur besseren Lesbarkeit die einzelnen Filterdefinitionen in mehreren Zeilen eingetragen werden!!
!! OHNE ; am Ende der Zeile. CR und LF werden in Leerzeichen umgewandelt!

IDC25 = "FL"
AND IDC66 = "STAMM"

Es wird NICHT auf der Originaltabelle gefiltert! Der neue Tabellen ALIAS ist in der Variablen m.tcALVon angegeben!
Beim Erstellen des Filters wie der Gruppierung wird im SQL auf den ALIAS = _L02 verwiesen!

Muss auf Kopfdaten zugegriffen werden, dann muss mit der Variablen:
      toL01 gearbeitet werden! toL01 ist ein Objekt mit den Feldnamen aus L01
      Beispiel:
            IDC25 IN (SELECT IDC25 FROM (THIS.cDbfDir+'c25.dbf') WHERE UPPER(LEFT(toL01.Anlage,AT(" ",toL01.Anlage)-1)) $ c25.bezei)

Wahnsinn, was? ...
      THIS.cDbfDir      => Enthält das Mandantenverzeichnis
      THIS.cSysDir      => Enthält das Systemverzeichnis

Beispielcode: L01.IFILTER


Felddefinition: L01.IGRUPPE
Feldname............ IGRUPPE
Feldtyp............. M
Feldgröße........... 4
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Gruppierung
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IGRUPPE

Feldhilfe: L01.IGRUPPE

Hier kann eine Gruppierung / Summierung der Positionsliste eingetragen werden! Dabei wird die eine Summenliste erstellt, die für die angegebene Gruppierung die Summe der Mengen enthält. Bei der Gruppierung sollte IMMER die Artikelnummer angegeben sein!
Die Gruppierung erfolgt immer über die Felder der Tabelle L02! Nur über die in dieser Tabelle vorhandenen Felder kann gruppiert werden! Die Gruppierung der Positionsliste erfolgt erst nach der Ermittlung der Artikelnummern aus dem Artikelstamm und der Ermittlung der Positionsart.
Ist eine Gruppierung angegeben, so wird der Wert in IUPDE11 ignoriert und automatisch der Wert IUPDE11=16 genommen!

Die Gruppierung wird mit den Feldnamen der Tabelle L02 durch Komma getrennt angegeben. Beispiel:
IPL02,ICB01
Die Gruppierung erfolgt lt. obigem Beispiel nach Positionsart und Artikelnummer. (Man bedenke: Beistellung und Fremdbearbeitung)

Siehe auch IFILTER

Beispielcode: L01.IGRUPPE


Felddefinition: L01.IPE10
Feldname............ IPE10
Feldtyp............. C
Feldgröße........... 3
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... IPS
Feldbezeichnung..... Vorgangsart
Standardwert........ "108"
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IPE10

Vorgangsart. Über die Relation zur Systemtabelle (Y01) kann die Vorgangsart im Klartext angezeigt werden. Das Feld wird vom System gesetzt.

Feldhilfe: L01.IPE10

Vorgangsart. Über die Relation zur Systemtabelle (Y01) kann die Vorgangsart im Klartext angezeigt werden. Ein Liste der Vorgangsartne finden Sie im Codebeispiel.

Beispielcode: L01.IPE10
*/ 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[L01.IPE10]
*/ Damit kann die Zeilenart bestimmt werden...

Felddefinition: L01.IPL01
Feldname............ IPL01
Feldtyp............. C
Feldgröße........... 3
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... IP
Feldbezeichnung..... IP - Vorgangsart*
Standardwert........ "108"
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IPL01

Bitte wählen Sie mit F3 aus, falls eine Auswahlmöglichkeit besteht.

Feldhilfe: L01.IPL01

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.

Beispielcode: L01.IPL01
*/ 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[L01.IPL01]
*/ Damit kann die Zeilenart bestimmt werden...

Felddefinition: L01.IUPDB01
Feldname............ IUPDB01
Feldtyp............. I
Feldgröße........... 4
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ignorieren
Erweiterter Typ.....
Feldbezeichnung..... Artikelermittlung
Standardwert........ 0
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IUPDB01

Feldhilfe: L01.IUPDB01

IUPDB01 gibt an, wie die Artikel aus der Positonsliste im Artikelstamm zu ermitteln sind.

Möglichkeiten: (Dezimal / Hexadezimal)
      0                  0x00000000      - Wie im Vorgangskopf in PMS definiert. Standard = 1 (über Artikelnummer wenn der Vorgang nicht vorhanden ist (Neuanlage))
      1                  0x00000001      - B01.ARTNR (B01.ICB01), Die Artikel werden über die PMS - Artikelnummer des Artikelstamms (B01) ermittelt
      2                  0x00000002      - D04.KDARTNR (D04.ICD04), Die Artikel werden über die Kundenartikelnummer (D04) in PMS ermittelt
      4                  0x00000004      - B01.FPARAC1, Die Artikel werden über die Zusatz- / Externe- Artikelnummer des Artikelstamms (B01) ermittelt
      8                  0x00000008      - B01.TYPNR (B01.IBB01), Die Artikel werden über die Typennummer des Artikelstamms (B01) ermittelt
      16                  0x00000010      - B01.BESTNR (D03.IBD03), Die Artikel werden über die Bestellnummer des Artikelstamms (B01) ermittelt

Wenn der ermittelte Artikel gesperrt oder als gelöscht markiert oder als Auslaufartikel definiert ist (B01), dann ermittle weitere Artikel über die Definition Referenzartikel (B03)
      65536            0x00010000      - Der erste definierte Referenzartikel des gleichen Herstellers (B01.IDC62), wenn dieser nicht die obigen Stati hat.
      131072      0x00020000      - Der erste definierte Referenzartikel der gleichen Artikelgruppe (B01.IDC25), wenn dieser nicht die obigen Stati hat.
      262144      0x00040000      - Der erste definierte Referenzartikel, wenn dieser nicht die obigen Stati hat.
      2097152      0x00200000      - Der Artikel, der über die Referenz ermittelt wurde wird an das CAE - System übergeben! Beinhaltet die Werte von 1 - 16!
      4194304      0x00400000      - Trage den letzten über Referenz gefunden Artikel ein. Wird kein "freier" Artikel über die Referenz ermittelt, so wird der Letzte über Referenz gefundene Artikel eingetragen.
      8388608      0x00800000      - Benutze Rekursion zur Ermittlung. Wird kein Artikel im ersten Step gefunden, dann wird rekursiv über B03 und B01 ermittelt

Alle Möglichkeiten sind durch Addition der Werte kombinierbar. So ergibt die Kombination:
1 + 2 + 4      = 7, Zuerst über Artikelnummer (B01.ARTNR), dann über Kundenartikelnummer (D04.KDARTNR) und dann über Fremdartikelnummer (B01.FPARAC1)

Die Einstellung 0x00800000:
Angenommen in der CAE - Liste kommt der Artikel "SIE.4711" vor. Dieser Artikel wurde von Siemens schon mehrmals durch Revisionen ersetzt. Für jede weitere Revision wurde eine fortlaufende Revisionsnummer vergeben. SIE.4711.1, SIE.4711.2, usw.
In PMS sind in der Referenztabelle folgende Einträge vorhanden:
SIE.4711            » SIE.4711.1, dieser Artikel ist gesperrt
SIE.4711.1      » SIE.4711.2, s.o.
SIE.4711.2      » SIE.4711.3, freigegeben
Dann wird, wenn der Artikel SIE.4711 in der CAE-Liste vorkommt der Artikel SIE.4711.3 ermittelt. Ist das Flag nicht gesetzt, dann würde der Artikel SIE.4711 erhalten bleiben, wenn in dessen Referenzliste kein weiterer "freier" Artikel mehr vorhanden ist.

Die Einstellung 0x00400000:
Wenn anhand des obigen Beispiels auch der Artikel SIE.4711.3 "gesperrt" ist, so wird doch dieser Artikel eingetragen. Damit steht die Letzte Referenz zur Verfügung.
Bei den Einstellungen 0x00XX.... wird die Reihenfolge 0x0001.... - 0x0004.... eingehalten! Wenn also Rekursion gewählt ist, dann wird diese zuerst auf die Filterbedingung und dann auf die Rekrusion angewendet!
Beispiel, gewählt ist:
      0x00010000 + 0x00040000 + 0x00800000 = 0x0085xxxx
      Suchen in B03 nach Artikel gleichen Herstellers
      Wenn gefunden, jedoch nicht frei
            Suchen in B03 über Referenz für Artikel gleichen Herstellers
            Wenn gefunden, jedoch nicht frei
                  ....
      Suchen in B03 nach erstem Referenzartikel der frei ist
      Wenn gefunden jedoch nicht frei
            Suchen in B03 über Referenz für den ersten Artikel
            Wenn ....

Wenn kein "freier" Artikel ermittelt werden konnte und das Flag 0x004..... gesetzt ist, dann der letzte gefundene Artikel:
      gleichen Herstellers oder wenn hier keiner existiert
      der letzte in der Rekursion gefundene Artikel genommen

Die Einstellung 0x00200000:
Ist dieses Flag gesetzt, so wird beim Export der Daten von PMS an das CAE - System die neu ermittelte "Artikelnummer" übergeben! Hier wird die Einstellung 1 - 16 berücksichtigt! In PMS wird die PMS eigene Artikelnummer angezeigt. Bei der Übertragung an das CAE-System wird die entsprechende "Nummer":
      Artikelnummer
      Kundenartikelnummer
      Fremdartikelnummer
      Typennummer oder
      Bestellnummer
übergeben. Je nach Einstellung in PMS.

Die Ermittlung über Referenz geht nicht für Artikel, die in PMS unbekannt sind! NN - Artikel. Also alle Artikel, die in den Kombinationen 0x00000001 - 0x00000010 nicht ermittelt werden konnten!

Beispielcode: L01.IUPDB01


Felddefinition: L01.IUPDE10
Feldname............ IUPDE10
Feldtyp............. I
Feldgröße........... 4
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ignorieren
Erweiterter Typ.....
Feldbezeichnung..... Updateinformation
Standardwert........ 0
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IUPDE10

Feldhilfe: L01.IUPDE10

IUPDE10 gibt die Aktion an, die ausgeführt werden soll.
      0            0x0000 - Neuanlage / Update, je nach dem, ob der angegebene Vorgang existiert oder nicht (Standard)
      1            0x0001 - Neuanlge, es wird ein Fehler zurückgegeben wenn der Vorgang schon existiert!
      2            0x0002 - Update, es wird ein Fehler zurückgegeben wenn der Vorgang nicht existiert!
      4            0x0004 - Löschen, es wird ein Fehler zurückgegeben, wenn der Vorgang nicht existiert!
      8            0x0008 - Löschen der CAE - Positionen (Keine Bedarfspositionen und auch der Kopf bleibt erhalten!)
      256      0x01XX - Bei der Neuanlage das Projekt aus gleichem angegebenen CAEPRJ + CAEPFAD ermitteln
      512      0x02XX - Bei der Neuanlage das Projekt aus gleichem angegebenen CAEPRJ ermitteln
      
Die Anweisung kann durch addieren der Werte in eine Mehrfachanweisung umgewandelt werden!
4 + 1 = 5      : Erst Löschen dann Neuanlage
4 + 2 = 6      : Erzeugt auf jeden Fall einen Fehler, da zuerst gelöscht wird und dann ein Update gemacht werden soll
8 + 0 = 8      : Löscht zuerst die CAE - Positionen des Vorgangs (Gibt keinen Fehler zurück, wenn der Vorgang noch nicht existiert!) Danach Update bzw. Neuanlage des Vorgangs und seiner Positionen. Bedarfspositionen bleiben erhalten!

!ACHTUNG! - Ein Löschen des Vorgangs (4) löscht auch Bedarfspositionen! Diese Informationen gehen dann verloren!

!ACHTUNG! - Wird in L01.ICL01 ein "*" angegeben und ist IUPDE10=0, so wird, wenn das Projekt ermittelt werden kann, IMMER ein neuer Vorgang angelegt! Siehe dazu auch IUPDE10=256/512. Ist dieses Flag gesetzt, so wird die Projektnummer, wenn nicht angegeben, aus den Vorgängen ermittelt, die das gleiche CAE Projekt und/oder Pfad haben. Werden bei der Ermittlung mehrere Projekte ermittelt, so wird das "jüngste" angelegte Projekt MAX(K10.NDATUM) genommen!

Siehe auch die Felder: L01.ICL01 und L01.ICK10

Beispielcode: L01.IUPDE10


Felddefinition: L01.IUPDE11
Feldname............ IUPDE11
Feldtyp............. I
Feldgröße........... 4
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ignorieren
Erweiterter Typ.....
Feldbezeichnung..... Positionsermittlung
Standardwert........ 0
Tabellendefinitionen: L01
Kurzbeschreibung: L01.IUPDE11

Feldhilfe: L01.IUPDE11

IUPDE11 gibt an, wie die Positionen in PMS zur Positionsliste zu ermitteln sind. D.h.: wie sind die Positionen aus der Positionstabelle zu den in PMS vorhandenen Positionen zu ermitteln um ein Update zu erreichen?
Bitmuster (Dezimal / Hexadezimal)
      0            0x0000      - Standard = 15
      1            0x0001      - SYSID, nach einer vorhandenen SYSID des CAE - Systems. Die SYSID ist numerisch und muss größer Null sein.
      2            0x0002      - BMK + Artikelnummer, es wird nach BMK und Artikelnummer ermittelt.
      4            0x0004      - BMK, es wird nach BMK ermittelt
      8            0x0008      - ARTNR, es wird nach Artikelnummer ermittelt
      
      16            0x0010      - Nach Gruppierung, wird automatisch ausgeführt, wenn eine Gruppierung angegeben ist! Siehe auch L01.IGRUPPE

Die Werte 1 - 8 sind kombinierbar! Es wird nach obiger Reihenfolge 1,2,4,8 ermittelt!

Beispielcode: L01.IUPDE11


Felddefinition: L01.KOMMISION
Feldname............ KOMMISION
Feldtyp............. C
Feldgröße........... 48
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Kommision
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.KOMMISION

Feldhilfe: L01.KOMMISION

Kommision des Vorgangs / CAE - Liste. Freie Eingabe des Benutzers

Beispielcode: L01.KOMMISION


Felddefinition: L01.KUNDE
Feldname............ KUNDE
Feldtyp............. C
Feldgröße........... 6
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Kunden ID
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.KUNDE

Feldhilfe: L01.KUNDE

Kunden ID. Nur bei Neuanlage interessant, wenn der Kunde zum Vorgang ermittelt wird.

Beispielcode: L01.KUNDE


Felddefinition: L01.Z1
Feldname............ Z1
Feldtyp............. C
Feldgröße........... 48
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Zusatztext
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.Z1

Feldhilfe: L01.Z1

Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7

Beispielcode: L01.Z1


Felddefinition: L01.Z2
Feldname............ Z2
Feldtyp............. C
Feldgröße........... 48
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Zusatztext
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.Z2

Feldhilfe: L01.Z2

Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7

Beispielcode: L01.Z2


Felddefinition: L01.Z3
Feldname............ Z3
Feldtyp............. C
Feldgröße........... 48
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Zusatztext
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.Z3

Feldhilfe: L01.Z3

Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7

Beispielcode: L01.Z3


Felddefinition: L01.Z4
Feldname............ Z4
Feldtyp............. C
Feldgröße........... 48
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Zusatztext
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.Z4

Feldhilfe: L01.Z4

Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7

Beispielcode: L01.Z4


Felddefinition: L01.Z5
Feldname............ Z5
Feldtyp............. C
Feldgröße........... 48
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Zusatztext
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.Z5

Feldhilfe: L01.Z5

Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7

Beispielcode: L01.Z5


Felddefinition: L01.Z6
Feldname............ Z6
Feldtyp............. C
Feldgröße........... 48
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Zusatztext
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.Z6

Feldhilfe: L01.Z6

Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7

Beispielcode: L01.Z6


Felddefinition: L01.Z7
Feldname............ Z7
Feldtyp............. C
Feldgröße........... 48
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ.....
Feldbezeichnung..... Zusatztext
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.Z7

Feldhilfe: L01.Z7

Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7

Beispielcode: L01.Z7


Felddefinition: L01.ZNR
Feldname............ ZNR
Feldtyp............. C
Feldgröße........... 30
Dezimalstellen...... 0
NULL erlaubt........ Nein
CPTRANS durchführen. Ja
Erweiterter Typ..... NR
Feldbezeichnung..... Zeichnungsnummer
Standardwert........
Tabellendefinitionen: L01
Kurzbeschreibung: L01.ZNR

Zeichnungsnummer zum Artikel. Wird benötigt, wenn dem Artikel eine technische Zeichung hinterlegt ist. Mit F3 - Auswahl kann eine Zeichnung (Dateiname) gewählt werden.

Feldhilfe: L01.ZNR

Zeichnungsnummer zum Artikel. Wird benötigt, wenn dem Artikel eine technische Zeichung hinterlegt ist. Mit F3 - Auswahl kann eine Zeichnung (Dateiname) gewählt werden. Bei der Schnittstelle zwischen PMS32 und DDM9000 wird die Zeichnungsnummer als Identifizierung an PMS32 übergeben.

Beispielcode: L01.ZNR


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