Projekt

Allgemein

Profil

200 ZDok Zentraldokument+Belege » Historie » Version 124

[X] Marcus F, 26.06.2026 09:23

1 1 [X] Daniel S
h1. Zentraldokument (ZDOK)
2
3 81 [X] Daniel S
{{toc}}
4
5 70 [X] Daniel S
h2. *FAQ* Anpassungswünsche
6 62 [X] Daniel S
7
* Warum ist die Dokumentnummer 2 mal: oben rechts im Block und als Überschrift
8
+ Weil sonst beim Abheften im Ordner und Durchblättern nicht mehr zu sehen ist, was für ein Dokument es ist.
9
* Warum ist der Rabatt nicht als Spalte
10
+ Weil er sich dynamisch ein- und ausblendet und sonst bei 0 der Kunde fragt: wieso kein Rabatt
11
* Warum kommen bei Sammelrechnungen die Lieferscheine über die Position und nicht im Kopf
12
+ Weil es mehrere geben kann. Ist das änderbar: NEIN. (nur dahingehend, das die Nummern immer über den Positionen stehen und nie im Kopf)
13 64 [X] Daniel S
* Warum steht U-Pice und T-Price und was heißt das:
14 66 [X] Daniel S
+ Genau wie im Deutschen E-Preis und G-Preis. Ist das änderbar: NEIN, man kann aber englisch lernen - dann weiß man genau wie im Deutschen auch wofür die Abkürzungen stehen. (alternativ Kundenübersetzung - entsprechender Aufwand)
15 68 [X] Daniel S
* Warum steht vor EMail nicht EMail:
16 69 [X] Daniel S
+ Weil die meistens zu lang sind, dann nicht mehr aufs papier passen und wer nicht erkennen kann - das eine EMail eine EMail ist - sollte besser einen anderen Job annehmen. Ist das änderbar: NEIN (oder gegen Aufwand eine Sonderlösung)
17 62 [X] Daniel S
18 1 [X] Daniel S
h2. Feature-Überblick, implementierte Funktionen
19
20
# Nachkommastellen vorher ermittelt
21
# *Standardtexte* für Kopf, Fuß pro Dokument über Bemerkungsverwaltung möglich; *StandardTexte für Exportkennung*
22 46 [S] Dominik G
** Auftrag : DOKVERK_TXT_KOPF_AN / DOKVERK_TXT_KOPF_AG ; DOKVERK_TXT_FUSS_AN / DOKVERK_TXT_FUSS_AG (AN=Angebot, AG=Auftrag
23
** Lieferschein : DOKLIEFSCH_TXT_KOPF; DOKLIEFSCH_TXT_FUSS
24
** Rechnung : DOKFAKT_TXT_KOPF; DOKFAKT_TXT_FUSS
25
** Anfrage (Einkauf) : DOKANFRAGE_TXT_KOPF; DOKANFRAGE_TXT_FUSS
26
** Bestellung : DOKEINK_TXT_KOPF_RBE / DOKEINK_TXT_KOPF_BE; DOKEINK_TXT_FUSS_RBE / DOKEINK_TXT_FUSS_BE
27
** ExportKennung: EXPORT-INT; EXPORT-EU, wird anhand des Status in den Debitorendaten ermittelt
28 1 [X] Daniel S
29 46 [S] Dominik G
# Momentan fixe Texte für Referenzen, müssten noch erweitert werden:
30 1 [X] Daniel S
# Ermittlung, ob mehrere Auftragsnummern im Dokument, wenn nicht, wird Auftragsnummer=Dokumentnummer, ansonsten wird Dokumentnummer als Ident verwendet
31
32
# Referenzen; Felder im View: 
33 46 [S] Dominik G
** Eigene Nummer (Auftragsnummer, Rechnungsnummer) *position_status*, *position_identnummer*, *position_identpos*
34
** Vorgegange IdentNummer *position_identnummer1*, *position_identpos1* (siehe folgende Bsp)
35 1 [X] Daniel S
36
*Grundfunktionen auf DB-Ebene*
37
* Schema "treporting"
38
* Funktion zum Dropen aller Views, um z.B. Datentypen zu ändern: treporting.DropView()
39
* Funktion zum Erstellen aller Views: treporting.RecreateViews()
40
41
*Hintergrund*
42
* Hintergrund wird per Standard aus "Prodat\System\BB-DE.emf" geladen
43
* Über das Bankkontenverzeichnis kann pro Kunde/Lieferant/Rechnung eine Bank ausgewählt werden, welche wiederrum unterschiedliche Briefbogen haben kann
44
* Im Bankkontenverzeichnis (Faktura=>Stammdaten) kann eine Bankverbindung als "Standard" hinterlegt werden, welche wiederrum auch einen abweichenden Briefbogen benennen kann.
45
* In den Spracheinstellungen (Stammdaten=>Sprachen) kann pro Sprache ein unterschiedlicher Briefbogen hinterlegt werden. Somit würde der Hintergrund in Abhängigkeit der in den Adressdaten hinterlegten Sprache umschalten.
46 51 [X] Marcus F
* Bei Neuinstallation vom Kunde Folgendes verlangen ~ INFO [[EMF]]
47 27 [X] Marcus F
** PDF oder Word des (kompletten) Briefbogens 
48 1 [X] Daniel S
** Einzelvektordateien der Logos, falls es kein PDF gibt, in das alle Vektordateien eingebettet sind, inklusive Schriften!
49
** Vektorformate sind typischerweise PDF (falls das nicht einfach nur gescannt ist), EPS, AI
50
51
52
*Sonstiges*
53
54
*Vorgaben für das DruckVorlaufFormular: http://www.prodat-sql.de/redmine/issues/4669*
55
* Ansprechpartner werden über 'Automatische Anrede' aus den Stammdaten der Adresse gezogen, dabei muss der Kurzname vorhanden sein
56
  Ist korrekt Herr und Frau in der Anrede hinterlegt, kann das Dokument 'Sehr geehrter Herr', 'Sehr geehrte Frau' drucken, ansonsten 'Damen und Herren'
57 46 [S] Dominik G
  Im Englischen gibt es Ms. als Anrede, wenn nicht klar ist ob verheiratet oder nicht (der Punkt wird eigentlich im britischen Englisch nicht gesetzt)
58 1 [X] Daniel S
59 111 [X] Marcus F
*Steuerung im Belegmodul (z.B. Verkaufdokument)*
60
* per Kontextmenü lassen sich folgende Funktionen ansteuern
61
** Seitenumbruch
62
** Zwischensumme
63
** Positionszusatztext nicht anzeigen
64
** Nur Preis der Hauptposition ausweisen (Setzen ist nur möglich, wenn Flag "Preis enthält Unterposition" gesetzt ist)
65
** Unterposition nicht ausweisen (Setzen ist nur möglich, wenn Flag "Preis enthält Unterposition" für die übergeordnete Ebene gesetzt ist)
66
* in den dyn. Einstellungen lässt sich festlegen, welche Druckeinstellungen in den Folgebeleg nicht übernommen werden soll (default werden Seitenumbruch und Zwischensumme nicht weitergegeben)
67
68 46 [S] Dominik G
*Folgedokumente*
69
* Betrifft z.B. Zeichnungen oder anderweitige Konstruktionsdokumente (aus Artikelstamm), die beim Versenden von Externdokumenten per Email angehangen werden sollen.
70
* Muss pro Kunde eingestellt werden.
71
* http://redmine.prodat-sql.de/projects/prodat-v-x/wiki/Folgedokument
72
* Spezielles SQL bzgl. Folgedokumente anhand Stücklistenauflösung siehe unten.
73 1 [X] Daniel S
74 46 [S] Dominik G
h1. Aufbau der Views
75 1 [X] Daniel S
76 46 [S] Dominik G
*An Kunde*
77
78 1 [X] Daniel S
* Auftrag:
79 46 [S] Dominik G
## *position_identnummer* = AuftragsNr (ag_nr)
80
## *position_identpos* = ag_pos
81
## *position_identnummer1* = Eigene AnfrageNr (ag_kanf_nr)
82
## *position_identpos1* = NULL
83
## *referenz* = ag_bda; *referenz_pos* = ag_bdapos; *referenz_vondatum* = ag_bdat
84 1 [X] Daniel S
85
* Lieferschein:
86 46 [S] Dominik G
## *position_identnummer* = Unser Auftrag (ag_nr)
87
## *identnummer1/pos1* = NULL  => könnte man interne AnfrageNr machen
88
## *referenz* = belp_referenz=ag_bda; *referenz_pos* = ag_bdapos
89 1 [X] Daniel S
90
* Rechnung:
91 46 [S] Dominik G
## *position_identnummer* = Lieferschein-Nr
92
## *position_identnummer1* = Auftrags-Nr (ag_nr)
93
## *referenz* = Referenz (ag_bda)
94 1 [X] Daniel S
95 46 [S] Dominik G
*An Lieferant*
96 1 [X] Daniel S
97
* Bestellung:
98 46 [S] Dominik G
## *position_identnummer* = Bestellung normal: Bestellnummer; Auswärtsbearbeitung: Fertigungsauftragsnr (nicht die ld_auftg der Bestellung, sondern der des Auslösenden Produktionsauftrags)
99
## *position_identpos* = ld_pos, wie oben Unterscheidung normale Bestellung, Externbearbeitung
100
## *position_identnummer1, pos1* = NULL
101 1 [X] Daniel S
102 46 [S] Dominik G
h2. Aufbau Views
103 1 [X] Daniel S
104
# Immer gleicher Aufbau: Kopfview, Positionenview, AbzuschlägePosition, Abzuschläge Gesamt
105
# *dokument_id*      = DokumentId, Dokumentnummer, ACHTUNG: Dokumentnummer auf Ausdruck kann abweichen, wenn die Auftragsnummer als Dokumentnummer genommen wird! (mehrere Auftragsnummern auf einem Dokument)
106
# *dokument_join_id* = Join schlüssel für Views: Dokumentnummer bei Auftg/Ldsdok, Belegnummer bei Rechnung
107 16 [X] Marcus F
* Beachte Belegviews: *beld_dokunr=dokument_id ABER beld_id=dokument_join_id*, siehe Aufbau Belegview, JoinSchlüssel=BelegId und nicht die Dokumentnummer!
108
109
# *dokument_nummer*  = Ausgewiesene Dokumentnummer auf Liste: Rechnungsnummer, bei Auftrag/Bestellung Bestellnummer, ausser es sind mehrere auf Dokument, dann Dokumentnummer
110
# *doktype_force*    = interne DokumentId für DMS, da nur ein Dokument muß anhand des Statement ermittelt werden, wie es archiviert wird!
111
112 46 [S] Dominik G
h2. Doktypes
113 16 [X] Marcus F
114
# Auftrag: auftg_dok
115
# Lieferschein: lfs
116
# Rechnung: rechnung
117 21 [S] Dominik G
# Bestellanfrage: bestanf 
118
# Bestellung: ldsdok_bestdok
119
# Auswärtsbestellung: awd
120
# Terminmahnung: ldsdok_bestdok_mahn
121
122 1 [X] Daniel S
h2. Bekannte Probleme und Besonderheiten
123
124
* Windows-Anzeigeoption zur Textgröße (Erhöhung der DPI) skalliert PDF-Export.
125 55 [S] Dominik G
** Wenn Option _DPI-Skalierung im Stil von Windows XP verwenden_ wird der Report auf dem PDF zu klein dargestellt.
126
Sollte in dem Fall 100% betragen.
127 56 [X] Daniel S
+ Windows > Anzeigeeinstellungen (dort wo Auflösung)
128 1 [X] Daniel S
129 46 [S] Dominik G
h2. Konfigurierbare Einstellungen
130 1 [X] Daniel S
131
* ReportSettings.Ini steuert Randeinstellungen des Dokuments und des Hintergrund EMFs im Ordner /System
132
* Für mehrere Mandanten können mehrere ReportSettings.INI angelegt werden, indem der DatenbankName verschlüsselt wird. zB ReportSettings.CIMPCS.Ini. Beim Programmstart wird immer zuerst geprüft, ob es eine ReportSettings.DatenbankName.Ini gibt.
133 117 [X] Marcus F
* ab Mai 2026 Verlagerung der Settings in die Datenbank (vor allem erforderlich seit Verwendung der lokalen Variante)
134 115 [X] Marcus F
** ReportSettings.Ini wird mit neuer Version beim ersten Öffnen in die Datenbank als gleichnamiges Setting aufgenommen und im System-Ordner durch das Programm umbenannt zu 'old'
135
** gleiches Vorgehen für Script-Dateien wie Init und Pos
136
** das Hintergrund Briefpapier wird nun nicht mehr im System-Ordner abgelegt, sondern über die DMS Einstellungen Stempel
137
*** Es kann entweder über die Sparche oder über das Bankkonto ein Debitoren/Kreditoren abhängiges Briefpapier konfiguriert werden {{collapse(Aufklappen)
138
!dms-bb.png!
139
}}
140
141 49 [X] Marcus F
* Barcodes für jede Adresse individuell: [[Barcode-Zentraldokument]]
142 1 [X] Daniel S
143 61 [X] Marcus F
h3. Hintergrund EMF
144
145 1 [X] Daniel S
BB.LogoFileName (Default='BB-DE.emf')
146
BB.Top
147
BB.Left
148
BB.Width  //Skalierung, Original A4 ist 794 x 1123px 
149
BB.Height //Größe der EMF kann aber abweichen, dann Skalierung an EMF anpassen
150
151 61 [X] Marcus F
152
h3. Seiteneinstellung
153
154 1 [X] Daniel S
Page.TopMargin
155
Page.LeftMargin
156
Page.RightMargin
157
Page.BottomMargin
158
159 61 [X] Marcus F
h3. Kopfdaten
160
161 1 [X] Daniel S
Page.AdressLine //Eigene Anschrift über Adresse
162 107 [X] Marcus F
Page.AdressLineColor=$000000 (default blau) // Adresszeile Farbe definieren 
163 42 [X] Daniel S
Page.AdressRight //Adresse rechts (Schweiz)
164 1 [X] Daniel S
Page.AnrGruss=True (default False) // default werden für Lieferschein und Rechnung Anrede und Grußzeile nicht gedruckt (auch wenn im Formular angehakt)
165
--
166
Adress.AllPages=True (default False) // Adresse und Belegdetails auf allen Seiten
167
Adress.Blankline=True (default False) // macht eine Leerzeile vor dem Ort
168 91 [X] Marcus F
Adress.Fax (default True) // druckt Fax und Telefon des Adressaten (Hauptadresse) und Leerzeile nach Plz Ort (Bestellung) > DEFAULT true für Bestellung und Anfrage (Einkauf)
169 1 [X] Daniel S
Adress.'+<r_dokutype>+'.Fax (default False) //bei beliebigen Dokumenttyp die Faxnummer der Zieladresse ausgeben
170
KontaktKopf.Adresse.Top (default KontaktKopf.Top) // Verschiebt Kontaktdaten nach oben bzw. unten (AdressFeld)
171
KontaktKopf.Top (default 170) // Verschiebt Kontaktdaten nach oben bzw. unten (AnsprechpartnerFeld)
172
Header.ShowProv=True //Zeigt "Provisorisch" an, wenn belege nicht definitiv sind
173
Header.ShowKundAnf=False // default true, Ausblenden der Kundenanfrage-Nummer im Verkauf
174
Header.ShowKopie=True //Zeigt "Kopie" bei Kopiedruck an
175
Header.ShowDokuNr=False //Zeigt die Dokumentnummer bevorzugt an (Bestellung: normal wird die Bestellnummer angezeigt, hier kann gesagt werden, das doch die Dokumentnummer bevorzugt wird)
176
Header.ReferenzInKopf=True //Zieht die Referenzen (z. B. Bestell-Nr.) in den Kopf, wenn für alle Positionen gleich.
177 50 [X] Jens M
Header.ReferenzInKopf.awd=False //Pro Dokumenttyp einstellbar, ob HeaderImKopf (<r_dokutype>)
178 1 [X] Daniel S
179 74 [X] Daniel S
Header.BarcodeExprLifsch= //Barcode für Lieferschein anzeigen und zuweisen (Wenn Option gesetzt, dann wird Barcode angezeigt) //für Verschlüsselungsfeld auch Konkatenation möglich
180 75 [X] Daniel S
+ Header.BarcodeExprAuftg='-AUF'+<WorkSQL."dokument_status">+'DOK-'+<WorkSQL."dokument_id">
181 76 [X] Daniel S
+ Header.BarcodeExprLifsch='-LFS-'+<WorkSql."dokument_nummer">
182 75 [X] Daniel S
+ Header.BarcodeExprLdsdok='-AWD-'+<WorkSql."dokument_nummer">
183 77 [X] Daniel S
+ Header.BarcodeExprBelkopf='-RECHNUNG-'+<WorkSql."dokument_nummer">
184
> ACHTUNG: Barcode immer Großschreibung
185
+ Header.BarcodeShowText=False //Text unter dem BarCode; zum Testen, ob der richtige Wert drin steht, sinnvoll
186 75 [X] Daniel S
187 74 [X] Daniel S
188 1 [X] Daniel S
Header.BarcodeExprLifsch steuert ebenfalls Anzeige des Barcodes der Gelangensbestätigung 
189
default Header.BarcodeExprGbstg='-GBSTG-'+<WorkSql."dokument_nummer"> ist als Vorgabe bereits enthalten, kann aber überschrieben werden
190 7 [X] Daniel S
191
192 89 [X] Marcus F
Kopf.AdressatDebinr=False //Im Standard wird nur die Eigene Lieferantennummer angezeigt, wenn vorhanden, sonst Kunden-Nr. Mit true zeigt man Kunden-Nr. und Eig. Lieferantennummer
193 109 [X] Marcus F
Kopf.AdressatFax=False //Anzeige der FaxNr des internen Ansprechpartners, wenn vorhanden
194 37 [X] Marcus F
Kopf.AdressatUstID=True
195 24 [X] Marcus F
Kopf.K_UstID=False //Anzeige der eigenen UstID
196 1 [X] Daniel S
197 61 [X] Marcus F
h3. Preise
198
199 1 [X] Daniel S
auswdok_preise=True //Preise für Auswärtsbearbeitung anzeigen (ansonsten wie Lieferschein->ohne Preise); setzt man True, kann man über das Vorsatzformular die Preise ausschalten; False deaktiviert die Preise generell
200
ShowNurTotalNetto=True(default false) // Zeige für Einkaufsdokumente (auch Auswärtsbestellung) nur Total Netto Summe an (keine MwSt und Brutto)
201
ShowNurTotalNetto.<r_dokutype>=False (default true) // Zeige getrennt für Einkauf, Anfrage, Auswärts
202 43 [S] Dominik G
203 78 [X] Marcus F
Position.OptionPriceColor=$C0C0C0 //Den Preis der Optionalpositionen in einer anderen Farbe darstellen; default ist clBlack; $C0C0C0 entspricht clSilver 
204
* Farbliste: http://docwiki.embarcadero.com/RADStudio/XE8/en/Colors_in_VCL
205
* Konvertierung hex<>rgb https://www.rapidtables.com/convert/color/hex-to-rgb.html
206 79 [X] Marcus F
** diesen Wert dann folgendermaßen anpassen: zB 0E5389 (aus dem Konverter) zu $89530E
207 61 [X] Marcus F
208
h3. Position
209
210 1 [X] Daniel S
Position.ForceGroupHeaderRef=False // Zeigt für jede Position den Gruppenkopf, jedes Dokument
211 119 [X] Marcus F
Position.ReferenzUmbruch=True (default false) True, wird die Trennung der Referenzinfos nicht mehr mit '●', sondern per Zeilenumbruch ausgegeben
212 124 [X] Marcus F
Position.ME.Header=True (default false) // Weis in der Überschriftzeile der Position den Text 'ME' bzw Mengeneinheit nicht aus
213
214 1 [X] Daniel S
Position.ShowAnNr=True  //Anzeige Projektnummer
215 54 [X] Daniel S
Position.'+<r_dokutype>+'.ForceGroupHeaderRef=False // Zeigt für jede Position den Gruppenkopf, je nach doktype
216 1 [X] Daniel S
Position.UseKundLiefArtNo=True //Bevorzugt wird die Kunden/Lieferantenartikelnummer (artzuo, ld_bem) als Artikelnummer angezeigt.
217 44 [X] Marcus F
Position.'+<r_dokutype>+'.UseKundLiefArtNo=True //Einstellung von oben pro Dokument, damit anderes Verhalten von Einkauf&Verkauf möglich UseKundLiefArtNo:=GetReportSettings_B('Position.'+<r_dokutype>+'.UseKundLiefArtNo', GetReportSettings_B('Position.UseKundLiefArtNo', True));
218 22 [X] Marcus F
Position.LabelReferenzArtNo="Referenz" //Anschrift vor dem Referenzartikel
219 61 [X] Marcus F
Position.ReferenzPos=False      //default true; Zeigt beide Positionsnummern an: die eigene, fortlaufend und die Bezugsposition.
220
Position.'+<r_dokutype>+'.ReferenzPos=False //default true; Zeigt beide Positionsnummern an: die eigene, fortlaufend und die Bezugsposition. kann pro Dokumenttyp abgeschalten werden
221 25 [X] Marcus F
Position.ReferenzPosFull       //Bestellnummer Kunde + Positionsnummer Kunde in Zeile! => ACHTUNG - blendet die eigene Auftragsnummer, sowie das Bestelldatum Kunde aus!!!!
222 60 [X] Daniel S
Position.APext=True // Kurzname des externen Ansprechpartner zeigen (Referenz im Verkauf mit Ansprechpartner)
223 94 [X] Marcus F
> DS bewusst auf true gesetzt. in reportsettings deaktivieren, wenn nicht gewünscht. 2017-11-07; schaltet ebenso den Titel mit ' * Beleg * / Frau Disponent Kunde'
224 80 [S] Philipp K
225 101 [X] Marcus F
*Rahmen* // letzte Komplettüberabeitung Ende Januar 2024
226 1 [X] Daniel S
Eigenes Reportdataset, das die Rahmen für Aufträge, Lieferscheinen und Bestellungen holt. 
227 100 [X] Marcus F
Wenn Checkbox 'Überblick Rahmen' werden die letzten 5 Rahmenabrufe mit dem neuesten zuerst angezeigt.
228 1 [X] Daniel S
229 100 [X] Marcus F
Position.AnzAngezRahmAbrufe = 5 // Anzahl der angezeigten Rahmenabrufe, default ist 5.
230 1 [X] Daniel S
231
Position.'+<r_dokutype>+'.RahmenAbrufInfo=False (default true) // auch ohne dokutype zu verwenden 
232
* Zeigt unter der Position die Information zum Rahmenabruf in Einkauf und Verkauf: 'Abruf 4 zu Rahmenbestellung AG24-00118 Pos.10'  
233 99 [X] Marcus F
* unabhängig von der checkbox 'Überblick Rahmen'
234
235 101 [X] Marcus F
Position.'+<r_dokutype>+'.Rahmengesamt=False (default true) // auch ohne dokutype zu verwenden
236
* In einer Zeile(unter RahmenAbrufInfo) wird die Gesamtmenge, Geliefert und Rest zusammengefasst
237
* unabhängig von der checkbox 'Überblick Rahmen'
238 100 [X] Marcus F
239 105 [X] Marcus F
Position.TextSplit=False (default true) // Positionstexte aufteilen; Standardmäßig werden lange Texte auf die Seiten auftgeteilt, es kann jedoch passieren dass Artikelbezeichnung und Positionstext ineinander gedruckt werden (bspw lange Artikelbezeichnung). Setzt man false wird der Positionstexte auf die nächste Seite geschoben und der Platz nicht optimiert, es findet aber keine Textüberlagerung statt
240 118 [X] Marcus F
Position.PointChar=* // ohne Angabe @◦@ ; per @empty@ kein Zeichen zuweisen
241 15 [X] Marcus F
Position.'+<r_dokutype>+'.UseZeichnungAsArtNo=False // ZeichnungsNr wird als ArtikelNr gedruckt, je nach doktype
242 19 [X] Marcus F
Position.UseZeichnungAsArtNo=False // ZeichnungsNr wird als ArtikelNr gedruckt, wenn keine KundenartikelNr vergeben ist
243 1 [X] Daniel S
Position.ShowWaehrung=True (default false) //Die Währung anzeigen erzwingen (Bestellung und Auswärtsbestellung, AN/AG, Rechnung) - Währung wird normalerweise wegen Redundanz nicht angezeigt (ausser GesamtsummeAnzeigen ist nicht aktiv im Einkauf und AN/AG)
244 30 Anonym
Position.'+<r_dokutype>+'.BarcodeExpr1 //Barcode pro Position ausgeben, zB Kundenbestellnummer als Barcode zB Lieferschein => Position.lfs.BarcodeExpr1=<position."referenz">
245
Position.AbZuNachPosZusTxt=True (default false) // Zuschläge nach dem Positionstext anzeigen, zB Loll
246
Position.StaffelVorPosZusTxt=True (default false) // Staffelpreise vor dem Positionstext anzeigen ! Überschneidung mit AbZuNachPosZusTxt; beide gleichzeitig true, ist bisher nicht beachtet !
247 106 [X] Marcus F
Position.StorniertFarbe=red (default red) // Kennzeichnung stornierter Positionen mit dieser Farbe; alle HTML Farben verwendbar auch "#000000"
248 30 Anonym
Position.LieferTerminInPos=False //Lieferdatum in den Positionstext verschieben
249
250 1 [X] Daniel S
Position.ShowZgnrTrans=True // Bezeichnung bzw. Übersetzung für Zeichnungsnummer ein-/ausblenden
251
Position.ShowZgidTrans=True // Bezeichnung bzw. Übersetzung für Zeichnungsindex ein-/ausblenden
252
Position.ShowMatTrans=True // Bezeichnung bzw. Übersetzung für Material ein-/ausblenden
253 36 [X] Marcus F
Position.ShowMatNormTrans=True // Bezeichnung bzw. Übersetzung für Materialnorm ein-/ausblenden
254 1 [X] Daniel S
Position.ShowDimTrans=True // Bezeichnung bzw. Übersetzung für Dimension ein-/ausblenden
255
256 35 [X] Marcus F
Position.ShowProjBez=True // default False Anzeige der Projektbezeichung
257 61 [X] Marcus F
258
h3. Lieferschein
259
260 1 [X] Daniel S
Position.MengeRestMenge=True   //Zeigt die Ausgangsmenge und die noch offene Menge an (zB Lieferschein - Bestellt .... Geliefert ...)
261 33 [X] Marcus F
Footer.LFS.WareErhalten=True   //Unterschrift-Feld für Ware erhalten unter Lieferschein
262 1 [X] Daniel S
Footer.LFS.ShowVerpackungsmittel=True // default true Verpackungsmittel anzeigen
263 34 [X] Marcus F
LFS.TitelLieferTerm=True // default False Zeigt im Titel von Kopie die Spanne des Auslieferungstermins, sowie in der Position den Lagerort
264 1 [X] Daniel S
Position.ChargeDrucken=True //default True Chargen zur LieferscheinPosition drucken
265 112 [X] Marcus F
Position.ChargeDrucken.rechnung=true // default false für Rechnung
266 108 [X] Marcus F
+ Eigenschaften Zentraldokument.Charge ermöglicht das An/Abschalten adressweise
267 1 [X] Daniel S
Position.SerNrDrucken=True //default True Seriennummern zur LieferscheinPosition drucken
268 112 [X] Marcus F
Position.SerNrDrucken.rechnung=true // default false für Rechnung
269
+ Eigenschaften Zentraldokument.Seriennummer ermöglicht das An/Abschalten adressweise
270 2 [X] Daniel S
271 61 [X] Marcus F
h3. Lieferkonditionen, Zahlungskonditionen, Export
272
273 1 [X] Daniel S
Footer.Lieferkond.OhneVersand=False //Keine Versandart
274 92 [X] Marcus F
Lieferkond.Lieferadresse=True // default false; ohne Anzeige der Lieferadresse, wenn Lieferadresse und Rechnungsadresse gleich; Text Liefer- und Rechnungsadresse 
275 1 [X] Daniel S
Zahlung.OhneZahlBed=False //Keine Zahlungsbedingungen
276 34 [X] Marcus F
Zahlung.OhneZahlBedIf00=False //Wenn 0/0 (Zahlung/Skonto) kommt "gem. Vereinbarung" (ausser es gibt Sonderkonditionen, diese überdecken dies dann)
277
Zahlung.OhneZahlungsZielTxt="Gemäß Vereinbarungen" //Zahlungskonditionen, wenn keine Zahlungsbedingungen
278
Zahlung.OhneZahlungsZielTxtRechnung="Gemäß Vereinbarungen" //zB Mattis: Sofort Netto;;; wenn nichts angegeben: => Zahlung.OhneZahlungsZielTxt
279 1 [X] Daniel S
280 29 [X] Marcus F
Export.doktype.Hinweise=true // default false, keine Anzeige zB Export.aufedok.Hinweise=true ... für Rechnung sind die Hinweis und Ursprung aktiv und können nicht mit dem Setting ausgeschalten werden
281 1 [X] Daniel S
Export.doktype.Ursprung=true // default false, keine Anzeige zB Export.lfs.Ursprung=true
282
283 61 [X] Marcus F
h3. Fuß
284
285 103 [X] Marcus F
Geschäftsführer können mit Vorname und Name der Hauptadresse '#' angelegt werden; gibt es mehrere GF, dann als Kontaktperson mit Sonderfunktion 'Geschäftsführung' erfassen; in der Fußzeile erfolgt eine kommaseparierte Auflistung; der Titel der Ansprechpartner wird berücksichtigt
286
287 1 [X] Daniel S
Footer.SpaceMFG //Default 0 erstellt einen Abstand zwischen 'Mit freundl Grüßen' und AP
288
Footer.Print=True //eigener Brieffuß mit Bankdaten
289 38 [S] Dominik G
Footer.Height (default 110) // Angabe in Px; höherer Wert rückt den Footer nach oben; relevant, wenn Inhalt des Footers bereits auf KundenEMF vorhanden und Footer.Print=false
290
291
Footer.Width.Anschrift (default 140)//Gruppe1 Postanschrift                          
292 1 [X] Daniel S
Footer.Width.Kontaktdaten (default 178) //Gruppe2 Kontaktdaten                            
293
Footer.Width.GF (default 174) //Gruppe4 Geschäftsführer
294
295
Footer.Firma1  //default False (Inhalt von ad_fa1)
296 88 [X] Marcus F
Footer.TitelGF //default Geschäftsführer ~ nur Standarsprache; für Übersetzungen das Setting nicht verwenden und nur in den Übersetzungsvariablen für die gewünschten Sprachen führen
297 1 [X] Daniel S
Footer.Amtsgericht  //String- Name des Amtsgerichts für Brieffuß (Ort), wenn abweichend des Ort der Firma (Felder werden in Einstellungen später nachgesetzt)
298
Footer.HRB          //String- Handelsregister (Nummer)
299 73 [X] Daniel S
Footer.LiefDatumLeistDatum = 1 [0,1,-1]
300 110 [X] Jens M
+ =1  //Text "Lieferdatum entspricht Leistungsdatum" wenn Lieferschein vorhanden, ohne Lieferschein automatisch "Rechnungsdatum ist Leistungsdatum"
301
+ =0  //immer "Rechnungsdatum ist Leistungsdatum"
302 72 [X] Daniel S
+ =-1 //Keine Angabe zu Leistungsdatum
303 1 [X] Daniel S
304 120 [X] Marcus F
h2. Email
305
306
EMail.SubjectExpr / EMail.<r_dokutype>.SubjectExpr (default ist dokument_titel + dokument_nummer + Referenz wenn nicht leer) // verfügbar ab Juni 2026
307
Beispiel: EMail.SubjectExpr=GetVar( <WorkSql."dokument_titel"> ) + ' - ' + <WorkSql."dokument_nummer"> + ' - ' + <position."artikelnummer">
308
309 122 [X] Marcus F
EMail.Text / EMail.<r_dokutype>.Text (default wird die Belegnummer an das Ende des übersetzten Textes gestellt) // verfügbar ab Juni 2026
310 121 [X] Marcus F
Beispiel: EMail.aufedok.Text=emailanrede + <sLineBreak> + <sLineBreak> + ReplaceStr(emailtxt, '$DOKUMENT_NUMMER$', <WorkSql."dokument_nummer">)+ <sLineBreak> + <sLineBreak> + <trans.greetings> + <sLineBreak> + EmailApint
311
312 123 [X] Marcus F
Sonderfunktionen der Adresse
313
* id = 2; // Rechnungsempfang
314
* id = 3; // Empfang Aufgtragsbestätigung
315
* id = 4; // Empfangsbestätigung
316
 
317
Eigene Adresse: 
318
* id = 1; // Geschäftsführung
319
* Interne Ansprechpartner: zusätzlich wird die 'Antwort an'-Adresse im Mailprogramm gesetzt // verfügbar ab Juni 2026
320
** id = 5 // Auswärtsvergaben einheitliche E-Mail Adresse
321
** id = 6 // Absender Aufgtragsbestätigung
322
** id = 7 // Absender Rechnung
323
324 120 [X] Marcus F
325
h3. Email-Standardtexte
326 102 [S] Jens A
327 113 [X] Steffen A
Email.StdBelegtext //default true #8255 Prozess\Ablauf: 
328 114 [X] Steffen A
# Bemerkungsverwaltungstext (DOKU_EMAILTXT); 
329
# Bemerkungsverwaltungstext (DOKU_EMAILTXT) ist leer, dann wird der Email Text aus den Variablen des Z-Doks generiert und beachtet auch Anprechpartner und so weiter 
330
## Texte in den Reportübersetzungen anpassen
331 113 [X] Steffen A
{{collapse(Aufklappen)
332
!clipboard-202603121055-v6gf6.png!
333 114 [X] Steffen A
}} 
334
## DOKU_EMAILTXT leeren
335 113 [X] Steffen A
{{collapse(Aufklappen)
336
!clipboard-202603121056-qftpb.png!
337
}}
338 114 [X] Steffen A
# Wenn Setting Email.StdBelegtext=false: dann wird nichts angezeigt
339 97 [X] Marcus F
komplett individuell per Script #17463
340 1 [X] Daniel S
341 61 [X] Marcus F
h2. Allgemeine Settings
342
343
* GetBoolSetting('ZDok.full.stvtrs') #7265: Bestelldokument, Option Baugruppen auflösen - Alle Ebenen
344
345
h2. Kundenscripts
346
347 87 [Y] Andreas F
https://redmine.prodat-sql.de/projects/prodat-v-x/wiki/ZDok_Kundenspezifische_Abl%C3%A4ufe
348 61 [X] Marcus F
349
# Initiales Script :  Report.Init.Script.pas // Ausführung im begin end für allgemeine Zusatzanforderungen   (Ende des begin/end Blocks)
350
# Positionszusatztext : Report.PosTxt.Script.pas => Addiert Variable "" an den Zusatztext der Position. zB EDI-IDENT-NR
351 1 [X] Daniel S
# Footer Script : Report.Footer.Script.pas => Breiteneinstellungen und Texte der einzelnen Box können überschrieben werden (CNC eigenes Footer Script als Bsp.)
352 116 [X] Marcus F
# ab Mai 2026 Verlagerung der Scripte in die Datenbank, siehe oben Konfigurierbare Einstellungen
353 61 [X] Marcus F
354 95 [X] Marcus F
h2. Eigenschaften
355
356
* Im Vorsatzformular _Eigenschaften anzeigen_ 
357
** gibt die Eigenschaften zur Auftragsposition aus
358
** kann für zusätzliche Artikelinformationen verwendet werden
359
* #14818
360
361 61 [X] Marcus F
362
h2. Gelangensbestätigung* (siehe #4512)
363
364 3 [X] Daniel S
# Stammdaten: 
365 1 [X] Daniel S
## System-Einstellung: Verkauf > Gelangensbestätigung überwachen
366
## Zentraldokument Reportsettings: 
367
### Gelangenbestg.Print=True // default false
368
### Header.BarcodeExprLifsch=<WorkSql."dokument_nummer">
369 57 [X] Marcus F
## Recnogroup-Eintrag: 'System.Gelangensbestätigung' muss vorhanden sein ~ über Erstellungsscript und DBUpdt
370
## Euexport-Haken des Debitors ist aktiv
371
# Setzen des Parameters
372
## Parameter 'System.Gelangensbestätigung' wird beim Drucken des LFS auf False gesetzt (Gelangensbestätigung: Unterschrift erhalten) über belegdokument__a_u__lfs_beld_print
373 46 [S] Dominik G
# Überwachung 
374 1 [X] Daniel S
## Liste: Lagerverwaltung > Auswertung > Statistik > Überwachung Gelangensbestätigung
375
# Zurücksetzen des Parameters
376
## Scannen Lieferschein (zurück vom Kunde) über Dokumentverwaltung (Achtung nicht über Dokumentablage)
377
## Dokument enthält Barcode picndoku__a_iud__set_recno setzt 'System.Gelangensbestätigung' auf 'Unterschrift erhalten' wahr
378
## wird nicht mehr in der Liste 'Überwachung Gelangensbestätigung' angezeigt
379
380
381
h2. HTML für Memos
382
383
@<b> - bold text
384
<i> - text in italic
385
<u> - underlined text
386
<sub> - subscript
387
<sup> - superscript
388
<font color> - font color@
389
390
Beispiele:
391
392
text <b>bold text</b> <i>text in italic</i> <b><i>bold and in italic</b></i>
393
E = mc<sup>2</sup>
394
A<sub>1</sub> = B<sup>2</sup>
395
this is a usual text, <font color=red>and this is a red one</font>
396
this is a usual text, <font color="#FF8030">and this is an orange one</font>
397
398
399
h2. Sonstiges
400
401
* Auf dem Dokument kann ein konfigurierbarer Text zur Qualitäts-Norm angedruckt werden
402
** Zugriff im Reporting-View erfolgt über ' GetStandardTxtBemerkungsV('DOKEINKAUF_QHINT ... ' 
403
** Anpassbar über Bemerkungsverwaltung, in dem Text mit dem Bezeichner 'DOKEINKAUF_QHINT-NORMBEZEICHNUNG' angegeben wird. Ist der Bezeichner nur 'DOKEINKAUF_QHINT', wird der Text bei jeder Norm ausgegeben
404 46 [S] Dominik G
405
* Folgedokumente
406
** spezielles SQL (Dokumentendruck, _Dokumenten-Such-SQL_ @report_afterdokument.rad_PDID_SQL@) zur Ermittlung der Folgedokumente anhand Stücklistenauflösung.
407 48 [S] Dominik G
** Dokumenttypen müssen gesetzt werden in _Bei Listen drucken_ @report_afterdokument.rad_r_dokutypes@
408
Derzeit implementierte Dokumenttypen: @bestanf;ldsdok_bestdok;awd@ (Anfragen, Bestellungen, AW-Bestellungen)
409 46 [S] Dominik G
** {{collapse(SQL)
410
* Subquery _dokument_positionen_ holt Artikel der Dokumentpositionen je nach Dokumenttyp (Bestellung oder Anfrage). Muss erneut auf die Views gehen, da Statement nicht auf Positionsebene ausgeführt wird, sondern einmal am Ende.
411
* Subquery _sub_ holt ggf. Stücklistenauflösung (per Option _Baugruppen auflösen_) (Performance).
412
Bereitet außerdem Sortierung (SortID) je nach Stücklistenreihenfolge vor. Diese erfolgt innerhalb jeweiliger Dokumentposition.
413
Damit kommen erst alle Anhänge der Dokumentposition 1 gemäß Stücklistenauflösung, dann Pos 2 usw..
414
* Ausgegeben werden
415
** nur Dokumente direkt im Artikelstamm (art.dbrid)
416
** alle Dokumente, die direkt (pd_parentnodeident) im Ordner _Zeichnungen_ (ID 15) sind
417
** oder definiert durch den Dokumenttyp im Ordner 15 sind
418
419
<pre><code class="sql">
420
SELECT DISTINCT pd_id, position_identpos, sortid, pd_path
421
FROM (
422
    SELECT
423
      row_number() OVER (PARTITION BY position_identpos) AS SortID, -- Sortierung der Stücklistenauflösung innerhalb der Dokumentpositionen
424
      COALESCE(stn, artikelnummer) AS stn, -- Artikel aus Stücklistenauflösung oder des Dokuments
425
      ebene,
426
      position_identpos -- Dokumentposition
427
    FROM (
428
    -- je nach Dokument die Dokumentpositionen sammeln.
429
    -- Muss erneut auf ReportingViews gehen, da Statement nicht dynamisch pro Position ausgeführt wird, sonder 1mal am Ende
430
        
431
        -- Bestellpositionen aus entspr. View
432
        SELECT
433
          position_identpos,
434
          artikelnummer,
435
          menge
436
        FROM treporting.ldsdok_beleg_positionen
437
        WHERE position_dokument_id = :ld_dokunr
438
        --
439
        
440
        UNION
441
        
442
        -- Anfragepositionen aus entspr. View
443
        SELECT
444
          position_identpos,
445
          artikelnummer,
446
          menge
447
        FROM treporting.anfrage_anfart_positionen
448
        WHERE position_dokument_id = :anf_krz
449
        --
450 47 [S] Dominik G
        
451 46 [S] Dominik G
    ) AS dokument_positionen
452
      -- Stücklistenauflösung der Artikel im Dokument, wenn Option Baugruppen auflösen aktiv (Performance)
453
      -- Ansonsten nur Artikel des Dokuments
454
      LEFT JOIN LATERAL tartikel.stueckl__do_stueckl_list(artikelnummer, artikelnummer, menge) ON :cbShowBG
455
) AS sub
456
  JOIN art ON ak_nr = stn
457
  JOIN picndoku ON pd_tablename = 'art' AND pd_dbrid = art.dbrid -- Dokumente der Artikel
458
  LEFT JOIN dokutypes ON dt_id = pd_doktype
459
WHERE COALESCE(pd_parentnodeident, dt_parentnodeid) = 15 -- direkt im Ordner Zeichnungen hinterlegt, oder Ordner per Dokumenttyp definiert
460
  -- optionale Bedingungen:
461
  -- AND pd_doktype = 'zeichnung' -- Einschränkung auf Dokumenttyp
462 52 [S] Dominik G
  -- AND COALESCE(ebene, '-1') IN ('-1', '0') -- nur Baugruppenartikel selbst und 1. Ebene
463 46 [S] Dominik G
ORDER BY position_identpos, SortID, pd_path, pd_id
464 1 [X] Daniel S
</code></pre>
465 48 [S] Dominik G
}}