Skip to main content
Skip table of contents

AufKopfNeu()

AufKopfNeu() – Neuer Auftragskopf

Die Funktion legt einen neuen Auftragskopf an und lässt ihn im Einfügemodus. Der neue Dab050-Datensatz befindet sich anschließend im Einfügemodus und kann weiter bearbeitet werden.

Parameter

Beschreibung

nKdNr:N

Kunden-Nr.

cAufTyp:C

Auftrags-Typ
A = Angebot
N = Neuer Auftrag
L = Lieferbuchung
S = Service-Anforderung

nAufArt:N

Auftragsart (0-99)

oDab000:O

Tabellenobjekt DAB000

oDab050:O

Tabellenobjekt DAB050

oMem050:O

TMemCalcTable-Object (nur aus Kompatibilität); default = nil

nAuftragsNrAusAbteilung:N

Abteilung, die für die Auftragsnummerkreise benutzt wird

Rückgabewert

Numerisch - Neue Auftragsnummer, falls Neuanlage erfolgreich

Beispiel

CODE
| oDM, oDab000, oDab050, oMem050, nCustomerNo, nOrderNo, cOrderKind, nOrderType |

//******************************************************************************
// Die Funktion legt einen neuen Auftrag an und speichert diesen
// @Result: Integer - ANUMMER des neuen Auftrags
//******************************************************************************
function CreateNewOrder()
   Result := -1,
   DbStartTrans(oDM.AdsConnection),
   startseq
      // Auftrag anlegen
      Result := AufKopfNeu(nCustomerNo, cOrderKind, nOrderType, oDab000, oDab050,,5),
      SetErrorIf(Result = 0, 'Auftrag konnte nicht angelegt werden.'),

      // Auftrag speichern
      if AufKopfPost(Result, oDab000, oDab050, oMem050) then
         DbCommit(oDM.AdsConnection),
      else
         SetError('Der Auftrag mit der Nummer: ' + Str(Result) + ' konnte nicht gespeichert werden.'),
      endif,
   onerror
      if DbInTrans(oDM.AdsConnection) then
         DbRollBack(oDM.AdsConnection),
      endif,

      MessageDlg('Fehler beim Anlegen des Auftrags.' + CRLF + GetErrorText()),
   stopseq,
end,

//******************************************************************************
// Die Funktion editiert einen bestehenden Auftrag und setzt den Termin auf die
// aktuelle Woche. Nach dem Editieren wird der Auftrag gespeichert.
// @Result: boolean - Editieren und Speichern des Auftrags erfolgreich
//******************************************************************************
function EditOrder()
   Result := False,
   DbStartTrans(oDM.AdsConnection),
   startseq
      // Auftrag editieren
      Result := AufKopfEdit(nOrderNo, oDab000, oDab050, oMem050),
      if Result then
         // Den Termin auf den nächsten Monat setzten
         oDab050:TERMIN := 'KW.' + KW(Date() + 30),

         // Auftrag speichern
         Result := AufKopfPost(nOrderNo, oDab000, oDab050, oMem050),
         if Result then
            DbCommit(oDM.AdsConnection),
         else
            SetError('Der Auftrag mit der Nummer: ' + Str(nOrderNo) + ' konnte nicht gespeichert werden.'),
         endif,
      else
         SetError('Der Auftrag mit der Nummer: ' + Str(nOrderNo) + ' konnte nicht editiert werden.'),
      endif,
   onerror
      if DbInTrans(oDM.AdsConnection) then
         DbRollBack(oDM.AdsConnection),
      endif,

      MessageDlg('Fehler beim Bearbeiten des Auftrags.' + CRLF + GetErrorText()),
   stopseq,
end,


// Hauptprogramm ###############################################################
oDM := CreateObject('TBeDbGet', 'OrderDM'),
startseq
   oDab000        := DbGetTable(oDM, waDab000),
   oDab050        := DbGetTable(oDM, waDab050),
   oMem050        := CreateObject('TMemCalcTable', 'Mem050', oDM),
   oMem050.Active := True,
   startseq
      nCustomerNo := 70000000,
      cOrderKind  := 'N',
      nOrderType  := 0,

      // Auftrag anlegen
      nOrderNo := CreateNewOrder(),
      if EditOrder() then
         MessageDlg('Der Auftrag mit der Nummer: ' + Str(nOrderNo) + ' wurde erfolgreich angelegt und editiert.'),
      endif,
   onerror
      MessageDlg('Fehler beim Bearbeiten des Auftrags.' + CRLF + GetErrorText()),
   stopseq,
always
   DestroyObject(oDM),
stopseq,

Weitere Verknüpfungen

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.