Barcode-Zentraldokument » Historie » Revision 4
Revision 3 ([X] Marcus F, 24.10.2016 15:06) → Revision 4/9 ([S] Philipp K, 05.10.2017 09:56)
h1. Barcode-Zentraldokument h2. Pro Kunde / Lieferant individuell Informationen in Barcodes mitgeben * verfügbar ab Version 12.06.00 * Parameter adk Stand 22.09.16 * Barcodes (Beispiel unten) werden nur gezeigt, wenn Information verfügbar (wenn es keine Bestellnr Kunde gibt, dann wird der Barcode nicht gedruckt) <pre><code class="sql"> ('Barcode Artikel-Nr.', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.ArtNr', 1), ('Barcode Beleg-Nr.', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.BelegNr', 2), ('Barcode Referenz Position', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.PosRef', 3), ('Barcode Artikel-Nr. Kunde', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.ArtRef', 4), ('Barcode Menge Position', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.PosMenge', 5) ('Barcode Beleg-Nr. Kunde', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.BelegKunde', 6); </code></pre> !http://redmine.prodat-sql.de/attachments/download/6217/barcodes-params.png! h2. Zuweisung der Barcodes in Init und PosTxt Scripten (beispielhaft) * Im Init.Script werden die Beleg Header Barcodes gefüllt, adkdbrid wird geholt {{collapse(Init) <pre><code class="sql"> var belegnr, belegkunde : Boolean; begin //dbrid der Kopfadresse für Auslesen von Eigenschaften zur Adresse (dokument_adresse_ident vefügbar ab 12.06.02 sonst muss die dbrid über ein Alternatives select geholt werden, zB über adk1 bzw adk2) adkdbrid:=''; SQL_PREPARE('SELECT dbrid FROM adk WHERE ad_krz=:adkrz '); SQL_PARA_S('adkrz',<WorkSql."dokument_adresse_ident">); SQL_OPEN; adkdbrid:=SQL_GETRESULTS('dbrid'); {BARCODE ANFANG} If ( ((IsAfterReport=0)OR(IsAfterReport=2)) AND (<WorkSql."doktype_force">='lfs') ) then begin // Barcode Paramter Header holen SQL_PREPARE('SELECT TRecnoParam.GetBool(''Zentraldokument.BC.BelegNr'', :adkdbrid) AS belegnr, '+ #13#10+'TRecnoParam.GetBool(''Zentraldokument.BC.BelegKunde'', :adkdbrid) AS belegkunde'); SQL_PARA_S('adkdbrid',adkdbrid); SQL_OPEN; belegnr:=SQL_GETRESULTB('belegnr'); // vorerst nicht aktiv, da Standard aus ReportSettings überschrieben wir, DMS benötigt für automatisiertes Scannen den Dokumenttyp (LFS) belegkunde:=SQL_GETRESULTB('belegkunde'); // Header Barcode aktivieren ChildBarCode.Visible:=belegnr OR belegkunde OR (GetReportSettings_S('Header.BarcodeExprLifsch', '')<>''); If belegnr Then Begin // wir könnten die Nummer überschreiben, dann funktionieren allerdings keine PRODAT-Automatismen zB Datum setzen //BarCode.Expression:='<WorkSql."dokument_nummer">'; //MemoBCText.Visible:=True; //MemoBCText.Text:='Lfs.-Nr.'; End Else Begin BarCode.Expression:=GetReportSettings_S('Header.BarcodeExprLifsch', ''); End; // Sekundärer Barcode Header links If belegkunde Then Begin BarCodeSek.Visible:=True; BarCodeSek.Expression:='<WorkSql."dokument_nummer">'; MemoBCTextSek.Visible:=True; MemoBCTextSek.Text:='Lfs.-Nr.'; End; End; {BARCODE ENDE} end. </code></pre> }} * Im PosTxt.Script werden die Positionen-Barcodes gefüllt {{collapse(PosTxt) <pre><code class="sql"> var posref, artref, posmenge : Boolean; begin //Hauptausdruck und Lieferschein If ( ((IsAfterReport=0)OR(IsAfterReport=2)) AND (<WorkSql."doktype_force">='lfs') ) then begin // Barcode Positionen Paramter holen SQL_PREPARE('SELECT TRecnoParam.GetBool(''Zentraldokument.BC.PosRef'', :adkdbrid) AS posref, '+ #13#10+'TRecnoParam.GetBool(''Zentraldokument.BC.ArtRef'', :adkdbrid) AS artref, '+ #13#10+'TRecnoParam.GetBool(''Zentraldokument.BC.PosMenge'', :adkdbrid) AS posmenge'); SQL_PARA_S('adkdbrid',adkdbrid); SQL_OPEN; posref:=SQL_GETRESULTB('posref'); artref:=SQL_GETRESULTB('artref'); posmenge:=SQL_GETRESULTB('posmenge'); // Pos Barcode aktivieren ChildPosBarcode.Visible:=posref OR artref OR posmenge OR (GetReportSettings_S('Position.'+<r_dokutype>+'.BarcodeExpr1', '')<>''); If posref AND NOT EMPTY(<position."referenz">) Then Begin BarCodePosition1.Expression:='<position."referenz">'; MemoBCTextPos.Visible:=True; MemoBCTextPos.Text:='Ihre'+<slinebreak>+'Bestell-Nr.'; End Else If (GetReportSettings_S('Position.'+<r_dokutype>+'.BarcodeExpr1', '')<>'') Then Begin BarCodePosition1.Expression:=GetReportSettings_S('Position.'+<r_dokutype>+'.BarcodeExpr1', ''); End Else Begin BarCodePosition1.Visible:=False; // Deaktivieren, da im Standard sichtbar MemoBCTextPos.Visible:=False; End; If artref AND NOT EMPTY(<position."artikelnummer_adressant">) Then Begin BarCodePosition2.Visible:=True; BarCodePosition2.Expression:='<position."artikelnummer_adressant">'; MemoBCTextPos2.Visible:=True; MemoBCTextPos2.Text:='Ihre'+<slinebreak>+'Artikel-Nr'; MemoBCTextAbstPos2.Visible:=True; End; If posmenge Then Begin BarCodePosition3.Visible:=True; BarCodePosition3.Expression:='<position."menge">'; MemoBCTextPos3.Visible:=True; MemoBCTextPos3.Text:='Menge'; MemoBCTextAbstPos3.Visible:=True; End; End; end. </code></pre> }} * Label-Texte sind in diesem Beispiel noch nicht auf Trans-Variablen umgestellt ~ Auslandskunden !http://redmine.prodat-sql.de/attachments/download/6214/barcodes-lfs.png!