Skip to main content
Skip table of contents

Event "vor dem Belegdruck"

Event "vor dem Belegdruck"


Der Event wird direkt vor dem Druck eines Beleges aufgerufen. Er liegt außerhalb der Transaktion, die Haupttabelle ist noch nicht gesperrt.
Bei Rückgabe von .F. wird der jeweilige Beleg nicht gedruckt; jeder andere Wert bleibt unberücksichtigt.

Hinweis

Bei Sammelbelegen im Verkauf entspricht der Parameter nKeyNo:P4 die der Kunden-Nummer. Ansonsten entspricht dieser Parameter in Einzelbelegen im Verkauf der Auftragsnummer.

Parameter:

nDocSubType:P6
Während nDocArchType den Belegtyp bezeichnet, der im Archiv abgelegt wird, liefert
nDocSubType den Formulartyp des Belegs. nDocSubType weicht immer dann von nDocArchType
ab, wenn mehrere Belegvarianten im Archiv zusammengefasst werden.

Beispiel:

nDocArchType

nDocSubType

Rechnung:

DT_RECH

DT_RECH

Sammelrechnung:

DT_RECH

DT_SARE

oDataModule:P8
Dieses Objekt ist in TBePrintData dokumentiert.


Bitte nie mit festen Werten für Belegtypen arbeiten, sondern immer die definierten
Codeblock-Konstanten verwenden (nicht alle def. Konst. sind für das Archiv bestimmt):

Codeblock-Konstante

Belegtyp

DT_ANGE

Angebot

DT_AUFB

Auftragsbestätigung

DT_PRRE

Proforma-Rechnung

DT_KOMM

Kommissionierschein

DT_PACK

Packliste

DT_LIEF

Lieferschein

DT_VALI

Vorab-Lieferschein

DT_SALI

Sammel-Lieferschein

DT_VMLI

Vermiet-Lieferschein

DT_VMRU

Vermietungs-Rückgabeschein

DT_VSPA

Versandpapiere

DT_FRBR

Frachtbriefe

DT_PAAK

Paketaufkleber

DT_VSAZ

Versandanzeige

DT_RECH

Rechnung

DT_TLRE

Teilrechnung

DT_ABRE

Abschlags-Rechnung

DT_SARE

Sammel-Rechnung

DT_VMZW

Miet-Zwischenrechnung

DT_MAHN

Mahnung

DT_MARE

Mahnung auf Rechnungskopie

DT_PRAN

Preisanfrage

DT_BEST

Bestellung

DT_ABEI

Abruf-Einteilung

DT_BEMA

Bestell-Mahnung

DT_FEAU

Fertigungs-Auftrag

DT_SRFO

WE Formular

DT_SRET

WE Etikett

DT_QSFO

QS Formular

DT_KBET

Kommissionierbox-Etikett

DT_SRAR

Archivmuster-Etikett

DT_ARET

Artikel-Etikett

DT_PRPL

Produktions-Pickliste

DT_SHNO

Shippment Notes

DT_AEIS

Ausfuhrerklärung

DT_ISIV

Intrastat-Versendung

DT_ISIE

Intrastat-Einfuhr

DT_BVUS

Barverkauf Umsatzstatistik

DT_BVJS

Barverkauf Journal / Tages-Summen

DT_BVBD

Barverkauf Belegdruck

Beispiel

CODE
| nEvtNo:P1, nDocArchType:P2, nDocNo:P3, nKeyNo:P4, nPersNo:P5, nDocSubType:P6,
  nRealDocType:P7, oDataModule:P8 |

// Keine Transaktion aktiv
// Rückgabe .F. verhindert den Druck des Belegs

// kein Rechnunsgdruck bei EG-Kunden ohne UID-Nr.

Function Main()

   | cLandNr, cUstIdnr |
   result := true,
   if .not. StrZero(nDocSubType,3) $ "160/190" then   // Rechnung,Sammelrechnung
      exit,
   endif,

   // Rechnung
   if nDocSubType = 160 then
      cLandNr := LookUp(waDAB050, 'DAB052',<code>nPersNo,Str(nKeyNo,6)</code>,"LLANDNR"),
   endif,

   // Sammelrechnung
   if nDocSubType = 190 .or. Empty(cLandNr) then
      cLandNr := LookUp(waDAB000, 'DAB001', <code>nPersNo</code>, "LANDNR"),
   endif,

   // Land = Deutschland
   if cLandNr = "004" then
      exit,
   endif,

   // EG ??
   if LookUp(waDIA020, 'DIA021',<code>cLandnr</code>,"EG_KZ") <> "J" then
      exit,
   endif,

   // EG ??
   if .not. (Empty(Lookup(waDIA020,'DIA021',<code>cLandnr</code>,"EG_AB")) .or.
      Lookup(waDIA020, 'DIA021',<code>cLandnr</code>,"EG_AB") <= Date()) then
      exit,
   endif,

   // Ust-IdNr
   cUstIdNr := Lookup(waDAB000, '1',<code>nPersNo</code>,"UST_IDNR"),
   if "99999" $ cUstIdNr .or. "FRAGEN" $ cUstIdnr .or. Empty(cUstIdnr) .or.
      "." $ cUstIdnr .or. "?" $ cUstIdnr then
      MessageDlg("Rechnungsdruck für Kunde "+Str(nPersNo) +
                 "  nicht möglich - EG-Kunde ohne gültige Ust-IdNr: "+cUstIdnr,0,4),
      result := false,
   endif,

end,

main()


JavaScript errors detected

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

If this problem persists, please contact our support.