p$TDV:SMPAPI:L_PrjNum
p$TDV:SMPAPI:L_PrjNum
Ermitteln der höchsten vorhandenen Angebot- oder Auftragsnummer.
Bei der Verwendung von rein numerischen Angebot- und Auftragsnummern, z.B. einer reinen Zählnummer, braucht für die Ermittlung der Nummer nur eines der Schlüsselworte „Kontakt" oder „Auftrag" angegeben werden.
Ist dies nicht der Fall, z.B. bei einer Unterscheidung von Beschaffungs- und Reparaturaufträgen in der Auftragsnummer, kann eine SQL-Anweisung angegeben werden, über die die höchste Nummer ermittelt wird (siehe Beispiel). Die Feld- und Tabellennamen sind hierbei KontaktNr aus V_Kontakt für die Angebote bzw. AuftragNr aus V_Auftrag für die Aufträge.
Bitte beachten:
Wenn eine SQL-Anweisung übergeben wird, muss die Angebot- bzw. Auftragsnummer unbedingt unter dem Namen (Identifier) "Nummer" gelesen werden:
select ... as Nummer from ... |
Bei Angabe einer „where"-Klausel kann als Platzhalter (Wildcard) das Zeichen „*" als Kennzeichnung für beliebig viele Zeichen verwendet werden.
Werden Texte in der SQL-Anweisung aufgeführt, so sind diese in das Zeichen „’" einzuschließen. Das dieses Zeichen wiederum ebenfalls der Textbegrenzer in ePOS ist, ist diesem Zeichen ein umgekehrter Schrägstrich („\") voranzustellen:
... where KontaktNr like \’AB%\’ ... |
Bitte beachten: Der Parametername, der in ParName übergeben wird, wird indirekt in einer Zeichenkette übergeben, also in Anführungszeichen eingeschlossen. Außerdem muss er global und vom Typ Zeichenkette sein!
Syntax: | Status = p$TDV:SMPAPI:L_PrjNum( Vorgabe, ParName, SQL ) | ||
| Argument | Typ | Bedeutung |
| Vorgabe | Zeichenkette | a) Schlüsselwort 'Kontakt' zur Bestimmung der höchsten KontaktNr. |
| ParName | Zeichenkette | Name eines globalen Zeichenketten-Parameters, der nach Ausführung dieser Funktion die höchste Nummer enthält. |
| SQL | Ganzzahl | 0: Der in Vorgabe übergebene Text ist ein Schlüsselwort |
Ergebnis: | Ganzzahl | Status der Operation | |
Beispiel 1: | Status = p$TDV:SMPAPI:L_PrjNum( 'Kontakt', 'KontaktNr', 0 ) KontaktNr = '100458' Dieser Aufruf entspricht dem folgenden, wobei hier eine SQL-Anweisung übergeben wird: sql = 'select MAX(KontaktNr) as Nummer from V_Kontakt' Status = p$TDV:SMPAPI:L_PrjNum( sql, 'KontaktNr', 1 ) | ||
Beispiel 2: | Ermitteln der höchsten Auftragsnummer in einem Nummernkreis, der mit den Buchstaben "AB" beginnt, gefolgt von einer laufenden Nummer: sql = 'select MAX(AuftragNr) as Nummer from V_Auftrag where AuftragNr like \'AB%\'' Status = p$TDV:SMPAPI:L_PrjNum( sql, 'AuftragNr', 1 ) | ||