Projekt

Allgemein

Profil

200 ZDok Zentraldokument+Belege » Historie » Revision 11

Revision 10 ([X] Marcus F, 28.01.2014 12:11) → Revision 11/110 ([X] Marcus F, 05.02.2014 10:29)

h1. Zentraldokument (ZDOK) 

 h2. Feature-Überblick, implementierte Funktionen 

 # Nachkommastellen vorher ermittelt 
 # *Standardtexte* für Kopf, Fuß pro Dokument über Bemerkungsverwaltung möglich; *StandardTexte für Exportkennung* 
 * Auftrag : DOKVERK_TXT_KOPF_AN / DOKVERK_TXT_KOPF_AG ; DOKVERK_TXT_FUSS_AN / DOKVERK_TXT_FUSS_AG (AN=Angebot, AG=Auftrag 
 * Lieferschein : DOKLIEFSCH_TXT_KOPF; DOKLIEFSCH_TXT_FUSS 
 * Rechnung : DOKFAKT_TXT_KOPF; DOKFAKT_TXT_FUSS 
 * Anfrage (Einkauf) : DOKANFRAGE_TXT_KOPF; DOKANFRAGE_TXT_FUSS 
 * Bestellung : DOKEINK_TXT_KOPF_RBE / DOKEINK_TXT_KOPF_BE; DOKEINK_TXT_FUSS_RBE / DOKEINK_TXT_FUSS_BE 
 * ExportKennung: EXPORT-INT; EXPORT-EU, wird anhand des Status in den Debitorendaten ermittelt 

 # Momentan fixe Texte für Referenzen, müßten noch erweitert werden: 
 # Ermittlung, ob mehrere Auftragsnummern im Dokument, wenn nicht, wird Auftragsnummer=Dokumentnummer, ansonsten wird Dokumentnummer als Ident verwendet 

 # Referenzen; Felder im View:  
 * Eigene Nummer (Auftragsnummer, Rechnungsnummer) *position_status*, *position_identnummer*, *position_identpos* 
 * Vorgegange IdentNummer *position_identnummer1*, *position_identpos1* (siehe folgende Bsp) 

 *Grundfunktionen auf DB-Ebene* 
 * Schema "treporting" 
 * Funktion zum Dropen aller Views, um z.B. Datentypen zu ändern: treporting.DropView() 
 * Funktion zum Erstellen aller Views: treporting.RecreateViews() 

 *Hintergrund* 

 * Hintergrund wird per Standard aus "Prodat\System\BB-DE.emf" geladen 
 * Über das Bankkontenverzeichnis kann pro Kunde/Lieferant/Rechnung eine Bank ausgewählt werden, welche wiederrum unterschiedliche Briefbogen haben kann 
 * Im Bankkontenverzeichnis (Faktura=>Stammdaten) kann eine Bankverbindung als "Standard" hinterlegt werden, welche wiederrum auch einen abweichenden Briefbogen benennen kann. 
 * 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. 

 *Sonstiges* 

 *Vorgaben für das DruckVorlaufFormular: http://www.prodat-sql.de/redmine/issues/4669* 

 * Ansprechpartner werden über 'Automatische Anrede' aus den Stammdaten der Adresse gezogen, dabei muss der Kurzname vorhanden sein 
   Ist korrekt Herr und Frau in der Anrede hinterlegt, kann das Dokument 'Sehr geehrter Herr', 'Sehr geehrte Frau' drucken, ansonsten 'Damen und Herren' 
   Im Englischen gibt es Ms. als Anrede, wenn nicht klar ist ob verheiratet oder nicht (der Punkt wird eigentlich im britischen Englisch nicht gesetzt)  

 h1. Aufbau der Views: 

 h3. An Kunde: 

 * Auftrag: 
 # *position_identnummer* = AuftragsNr (ag_nr) 
 # *position_identpos* = ag_pos 
 # *position_identnummer1* = Eigene AnfrageNr (ag_kanf_nr) 
 # *position_identpos1* = NULL 
 # *referenz* = ag_bda; *referenz_pos* = ag_bdapos; *referenz_vondatum* = ag_bdat 

 * Lieferschein: 
 # *position_identnummer* = Unser Auftrag (ag_nr) 
 # *identnummer1/pos1* = NULL    => könnte man interne AnfrageNr machen 
 # *referenz* = belp_referenz=ag_bda; *referenz_pos* = ag_bdapos 

 * Rechnung: 
 # *position_identnummer* = Lieferschein-Nr 
 # *position_identnummer1* = Auftrags-Nr (ag_nr) 
 # *referenz* = Referenz (ag_bda) 

 h3. An Lieferant 

 * Bestellung: 
 # *position_identnummer* = Bestellung normal: Bestellnummer; Auswärtsbearbeitung: Fertigungsauftragsnr (nicht die ld_auftg der Bestellung, sondern der des Auslösenden Produktionsauftrags) 
 # *position_identpos* = ld_pos, wie oben Unterscheidung normale Bestellung, Externbearbeitung 
 # *position_identnummer1, pos1* = NULL 

 h2. Aufbau Views: 

 # Immer gleicher Aufbau: Kopfview, Positionenview, AbzuschlägePosition, Abzuschläge Gesamt 
 # *dokument_id*        = DokumentId, Dokumentnummer, ACHTUNG: Dokumentnummer auf Ausdruck kann abweichen, wenn die Auftragsnummer als Dokumentnummer genommen wird! (mehrere Auftragsnummern auf einem Dokument) 
 # *dokument_join_id* = Join schlüssel für Views: Dokumentnummer bei Auftg/Ldsdok, Belegnummer bei Rechnung 
 * Beachte Belegviews: *beld_dokunr=dokument_id ABER beld_id=dokument_join_id*, siehe Aufbau Belegview, JoinSchlüssel=BelegId und nicht die Dokumentnummer! 

 # *dokument_nummer*    = Ausgewiesene Dokumentnummer auf Liste: Rechnungsnummer, bei Auftrag/Bestellung Bestellnummer, ausser es sind mehrere auf Dokument, dann Dokumentnummer 
 # *doktype_force*      = interne DokumentId für DMS, da nur ein Dokument muß anhand des Statement ermittelt werden, wie es archiviert wird! 

 h2. Konfigurierbare Einstellungen: 

 * ReportSettings.Ini steuert Randeinstellungen des Dokuments und des Hintergrund EMFs im Ordner /System 
 * 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. 
 * Parameter: 

 -- *Hintergrund EMF* 
 BB.LogoFileName (Default='BB-DE.emf') 
 BB.Top 
 BB.Left 
 BB.Width    //Skalierung, Original A4 ist 794 x 1123px  
 BB.Height //Größe der EMF kann aber abweichen, dann Skalierung an EMF anpassen 

 -- *Seiteneinstellung* 
 Page.TopMargin 
 Page.LeftMargin 
 Page.RightMargin 
 Page.BottomMargin 

 -- *Kopfdaten* 
 Page.AdressLine //Eigene Anschrift über Adresse 
 Page.AdressRight //Adresse rechts (Schweiz) 
 Page.AnrGruss=True (default False) // default werden für Lieferschein und Rechnung Anrede und Grußzeile nicht gedruckt (auch wenn im Formular angehakt) 
 -- 
 Adress.AllPages=True (default False) // Adresse und Belegdetails auf allen Seiten 
 Adress.Blankline=True (default False) // macht eine Leerzeile vor dem Ort 
 Adress.Fax (default True) // druckt Fax des Adressaten und Leerzeile nach Plz Ort (Bestellung) 
 Adress.'+<r_dokutype>+'.Fax (default False) //bei beliebigen Dokumenttyp die Faxnummer der Zieladresse ausgeben 
 KontaktKopf.Adresse.Top (default KontaktKopf.Top) // Verschiebt Kontaktdaten nach oben bzw. unten (AdressFeld) 
 KontaktKopf.Top (default 170) // Verschiebt Kontaktdaten nach oben bzw. unten (AnsprechpartnerFeld) 
 Header.ShowProv=True //Zeigt "Provisorisch" an, wenn belege nicht definitiv sind 
 Header.ShowKopie=True //Zeigt "Kopie" bei Kopiedruck an 
 Header.ShowDokuNr=False //Zeigt die Dokumentnummer bevorzugt an (Bestellung: normal wird die Bestellnummer angezeigt, hier kann gesagt werden, das doch die Dokumentnummer bevorzugt wird) 
 Header.ReferenzInKopf=True //Zieht die Referenzen (z. B. Bestell-Nr.) in den Kopf, wenn für alle Positionen gleich. 

 Header.BarcodeExprLifsch=<position."artikelnummer"> //Barcode für Lieferschein anzeigen und zuweisen (Wenn Option gesetzt, dann wird Barcode angezeigt) //für Verschlüsselungsfeld auch Konkatenation möglich 
 Header.BarcodeExprLifsch steuert ebenfalls Anzeige des Barcodes der Gelangensbestätigung  
 default Header.BarcodeExprGbstg='-GBSTG-'+<WorkSql."dokument_nummer"> ist als Vorgabe bereits enthalten, kann aber überschrieben werden 

 Header.BarcodeExprAuftg=<position."artikelnummer"> //Barcode für Angebot/Auftrag anzeigen und zuweisen 
 Header.BarcodeExprLdsdok=<position."artikelnummer">    //Barcode für Bestellung/Auswärtsbearbeitung anzeigen und zuweisen 
 Header.BarcodeShowText=False //Text unter dem BarCode; zum Testen, ob der richtige Wert drin steht, sinnvoll 


 Kopf.AdressatDebinr=False //Anzeige der DebitorenNr, wenn vorhanden 
 Kopf.AdressatFax=False //Anzeige der FaxNr, wenn vorhanden 
 Kopf.AdressatUstID=True 
 Kopf.K_UstID=False //Anzeige der eigenen UstID 

 -- *Preise* 

 auswdok_preise=True //Preise für Auswärtsbearbeitung anzeigen (ansonsten wie Lieferschein->ohne Preise) 
 ShowNurTotalNetto=False (default true) // Zeige für Einkaufsdokumente (auch Auswärtsbestellung) nur Total Netto Summe an (keine MwSt und Brutto) 
 ShowNurTotalNetto.doktype=False (default true) // Zeige getrennt für Einkauf, Anfrage, Auswärts 

 -- *Position* 
 Position.ForceGroupHeaderRef=True // Zeigt für jede Position den Gruppenkopf, jedes Dokument 
 Position.'+<r_dokutype>+'.ForceGroupHeaderRef=True // Zeigt für jede Position den Gruppenkopf, je nach doktype 
 Position.UseKundLiefArtNo=True //Bevorzugt wird die Kunden/Lieferantenartikelnummer (artzuo, ld_bem) als Artikelnummer angezeigt. 
 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)); 
 Position.LabelReferenzArtNo="Referenz" //Anschrift vor dem Referenzartikel 
 Position.ReferenzPos=True        //Zeigt beide Positionsnummern an: die eigene, fortlaufend und die Bezugsposition. 
 Position.ReferenzPosFull         //Bestellnummer Kunde + Positionsnummer Kunde in Zeile! => ACHTUNG - blendet die eigene Auftragsnummer, sowie das Bestelldatum Kunde aus!!!! 
 Position.APext=True // Kurzname des externen Ansprechpartner zeigen 
 Position.Rahmenabrufe=True // Deaktivieren der Anzeige der Abrufe eines Rahmenauftrags 
 Position.UseZeichnungAsArtNo=False // ZeichnungsNr wird als ArtikelNr gedruckt, wenn keine KundenartikelNr vergeben ist 
 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) 
 Position.'+<r_dokutype>+'.BarcodeExpr1 //Barcode pro Position ausgeben, zB Kundenbestellnummer als Barcode zB Lieferschein => Position.lfs.BarcodeExpr1=<position."referenz"> 
 Position.AbZuNachPosZusTxt=True (default false) // Zuschläge nach dem Positionstext anzeigen, zB Loll 

 -- *Lieferschein* 
 Position.MengeRestMenge=True     //Zeigt die Ausgangsmenge und die noch offene Menge an (zB Lieferschein - Bestellt .... Geliefert ...) 
 Footer.LFS.WareErhalten=True     //Unterschrift-Feld für Ware erhalten unter Lieferschein 
 LFS.TitelLieferTerm=True // default False Zeigt im Titel von Kopie die Spanne des Auslieferungstermins, sowie in der Position den Lagerort 

 -- *Lieferkonditionen, Zahlungskonditionen* 
 Footer.Lieferkond.OhneVersand=False //Keine Versandart 
 Footer.ExporttxtNachZahlbed=True //default False Export und Ursprungshinweise nach Zahlungsbedingungen 
 Zahlung.OhneZahlBed=False //Keine Zahlungsbedingungen 
 Zahlung.OhneZahlBedIf00=False //Wenn 0/0 (Zahlung/Skonto) kommt "gem. Vereinbarung" (ausser es gibt Sonderkonditionen, diese überdecken dies dann) 
 Zahlung.OhneZahlungsZielTxt="Gemäß Vereinbarungen" //Zahlungskonditionen, wenn keine Zahlungsbedingungen 
 Zahlung.OhneZahlungsZielTxtRechnung="Gemäß Vereinbarungen" //zB Mattis: Sofort Netto;;; wenn nichts angegeben: => Zahlung.OhneZahlungsZielTxt 

 -- *Fuß* 
 Footer.Print=True //eigener Brieffuß mit Bankdaten 
 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 

 Footer.Width.Anschrift (default 140)//Gruppe1 Postanschrift                           
 Footer.Width.Kontaktdaten (default 178) //Gruppe2 Kontaktdaten                             
 Footer.Width.GF (default 174) //Gruppe4 Geschäftsführer 

 Footer.Firma1    //default False (Inhalt von ad_fa1) 
 Footer.TitelGF //default Geschäftsführer 
 Footer.Amtsgericht    //String- Name des Amtsgerichts für Brieffuß (Ort), wenn abweichend des Ort der Firma (Felder werden in Einstellungen später nachgesetzt) 
 Footer.HRB            //String- Handelsregister (Nummer) 
 Footer.LiefDatumLeistDatum = 1    //Text "Lieferdatum entspricht Leistungsdatum" wenn Lieferschein vorhanden, ohne Lieferschein automatisch "Rechnugnsdatum ist Leistungsdatum" 
 Footer.LiefDatumLeistDatum = 0    //immer "Rechnugnsdatum ist Leistungsdatum" 
 Footer.LiefDatumLeistDatum = -1 //Keine Angabe zu Leistungsdatum 

 -- *Gelangensbestätigung* (siehe #4512) 
 Gelangenbestg.Print=True // default false 

 h2. Kundenscripts: 

 http://www.prodat-sql.de/redmine/projects/prodat-v-x/wiki/Kundenspezifische_Abl%C3%A4ufe_auf_ZDok 

 # Initiales Script :    Report.Init.Script.pas // Ausführung im begin end für allgemeine Zusatzanforderungen   
 # Positionszusatztext : Report.PosTxt.Script.pas => Addiert Variable "" an den Zusatztext der Position. zB EDI-IDENT-NR