Barcode-Zentraldokument » Historie » Version 9
[X] Marcus F, 21.06.2023 12:02
| 1 | 1 | [X] Marcus F | h1. Barcode-Zentraldokument |
|---|---|---|---|
| 2 | |||
| 3 | h2. Pro Kunde / Lieferant individuell Informationen in Barcodes mitgeben |
||
| 4 | |||
| 5 | 6 | [S] Philipp K | * in Adressstamm unter Reiter Kontaktpflege im Fenster Eigenschaften die entsprechenden Parameter auswählen. |
| 6 | 1 | [X] Marcus F | * verfügbar ab Version 12.06.00 |
| 7 | * Parameter adk Stand 22.09.16 |
||
| 8 | * Barcodes (Beispiel unten) werden nur gezeigt, wenn Information verfügbar (wenn es keine Bestellnr Kunde gibt, dann wird der Barcode nicht gedruckt) |
||
| 9 | <pre><code class="sql"> |
||
| 10 | 4 | [S] Philipp K | ('Barcode Artikel-Nr.', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.ArtNr', 1), |
| 11 | 1 | [X] Marcus F | ('Barcode Beleg-Nr.', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.BelegNr', 2), |
| 12 | ('Barcode Referenz Position', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.PosRef', 3), |
||
| 13 | ('Barcode Artikel-Nr. Kunde', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.ArtRef', 4), |
||
| 14 | 7 | [X] Marcus F | ('Barcode Menge Position', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.PosMenge', 5), |
| 15 | ('Barcode Beleg-Nr. Kunde', 'Zentraldokument', 'ptBOOLEAN', 'adk', 'Zentraldokument.BC.BelegKunde', 6), |
||
| 16 | ('Barcode Typ', 'Zentraldokument', 'ptENUM', 'adk', 'Zentraldokument.BC.Typ', 7); |
||
| 17 | 1 | [X] Marcus F | </code></pre> |
| 18 | |||
| 19 | 2 | [X] Marcus F | !http://redmine.prodat-sql.de/attachments/download/6217/barcodes-params.png! |
| 20 | |||
| 21 | 1 | [X] Marcus F | h2. Zuweisung der Barcodes in Init und PosTxt Scripten (beispielhaft) |
| 22 | |||
| 23 | * Im Init.Script werden die Beleg Header Barcodes gefüllt, adkdbrid wird geholt |
||
| 24 | 9 | [X] Marcus F | ** nach #19747 Juni 23 ist ein Sub-Datset für die Barcodes vorhanden, sodass das Script vereinfacht werden kann. Manuelle SQL-Aufrufe für das Holen der Parameter entfallen |
| 25 | ** {{collapse(Init vor #19747) |
||
| 26 | 1 | [X] Marcus F | <pre><code class="sql"> |
| 27 | |||
| 28 | var belegnr, belegkunde : Boolean; |
||
| 29 | |||
| 30 | begin |
||
| 31 | |||
| 32 | 3 | [X] Marcus F | //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) |
| 33 | 1 | [X] Marcus F | adkdbrid:=''; |
| 34 | SQL_PREPARE('SELECT dbrid FROM adk WHERE ad_krz=:adkrz '); |
||
| 35 | 3 | [X] Marcus F | SQL_PARA_S('adkrz',<WorkSql."dokument_adresse_ident">); |
| 36 | 1 | [X] Marcus F | SQL_OPEN; |
| 37 | adkdbrid:=SQL_GETRESULTS('dbrid'); |
||
| 38 | |||
| 39 | {BARCODE ANFANG} |
||
| 40 | If ( ((IsAfterReport=0)OR(IsAfterReport=2)) AND (<WorkSql."doktype_force">='lfs') ) then begin |
||
| 41 | // Barcode Paramter Header holen |
||
| 42 | SQL_PREPARE('SELECT TRecnoParam.GetBool(''Zentraldokument.BC.BelegNr'', :adkdbrid) AS belegnr, '+ |
||
| 43 | #13#10+'TRecnoParam.GetBool(''Zentraldokument.BC.BelegKunde'', :adkdbrid) AS belegkunde'); |
||
| 44 | SQL_PARA_S('adkdbrid',adkdbrid); |
||
| 45 | SQL_OPEN; |
||
| 46 | belegnr:=SQL_GETRESULTB('belegnr'); // vorerst nicht aktiv, da Standard aus ReportSettings überschrieben wir, DMS benötigt für automatisiertes Scannen den Dokumenttyp (LFS) |
||
| 47 | belegkunde:=SQL_GETRESULTB('belegkunde'); |
||
| 48 | |||
| 49 | // Header Barcode aktivieren |
||
| 50 | ChildBarCode.Visible:=belegnr OR belegkunde OR (GetReportSettings_S('Header.BarcodeExprLifsch', '')<>''); |
||
| 51 | If belegnr Then Begin |
||
| 52 | // wir könnten die Nummer überschreiben, dann funktionieren allerdings keine PRODAT-Automatismen zB Datum setzen |
||
| 53 | //BarCode.Expression:='<WorkSql."dokument_nummer">'; |
||
| 54 | //MemoBCText.Visible:=True; |
||
| 55 | //MemoBCText.Text:='Lfs.-Nr.'; |
||
| 56 | End |
||
| 57 | Else Begin |
||
| 58 | BarCode.Expression:=GetReportSettings_S('Header.BarcodeExprLifsch', ''); |
||
| 59 | End; |
||
| 60 | |||
| 61 | // Sekundärer Barcode Header links |
||
| 62 | If belegkunde Then Begin |
||
| 63 | BarCodeSek.Visible:=True; |
||
| 64 | BarCodeSek.Expression:='<WorkSql."dokument_nummer">'; |
||
| 65 | MemoBCTextSek.Visible:=True; |
||
| 66 | MemoBCTextSek.Text:='Lfs.-Nr.'; |
||
| 67 | End; |
||
| 68 | |||
| 69 | End; {BARCODE ENDE} |
||
| 70 | |||
| 71 | end. |
||
| 72 | |||
| 73 | </code></pre> |
||
| 74 | }} |
||
| 75 | * Im PosTxt.Script werden die Positionen-Barcodes gefüllt |
||
| 76 | 9 | [X] Marcus F | ** nach #19747 Juni 23 ist ein Sub-Datset für die Barcodes vorhanden, sodass das Script vereinfacht werden kann. Manuelle SQL-Aufrufe für das Holen der Parameter entfallen |
| 77 | ** {{collapse(PosTxt vor #19747) |
||
| 78 | 1 | [X] Marcus F | <pre><code class="sql"> |
| 79 | |||
| 80 | var posref, artref, posmenge : Boolean; |
||
| 81 | |||
| 82 | begin |
||
| 83 | |||
| 84 | //Hauptausdruck und Lieferschein |
||
| 85 | If ( ((IsAfterReport=0)OR(IsAfterReport=2)) AND (<WorkSql."doktype_force">='lfs') ) then begin |
||
| 86 | // Barcode Positionen Paramter holen |
||
| 87 | SQL_PREPARE('SELECT TRecnoParam.GetBool(''Zentraldokument.BC.PosRef'', :adkdbrid) AS posref, '+ |
||
| 88 | #13#10+'TRecnoParam.GetBool(''Zentraldokument.BC.ArtRef'', :adkdbrid) AS artref, '+ |
||
| 89 | #13#10+'TRecnoParam.GetBool(''Zentraldokument.BC.PosMenge'', :adkdbrid) AS posmenge'); |
||
| 90 | SQL_PARA_S('adkdbrid',adkdbrid); |
||
| 91 | SQL_OPEN; |
||
| 92 | posref:=SQL_GETRESULTB('posref'); |
||
| 93 | artref:=SQL_GETRESULTB('artref'); |
||
| 94 | posmenge:=SQL_GETRESULTB('posmenge'); |
||
| 95 | |||
| 96 | // Pos Barcode aktivieren |
||
| 97 | ChildPosBarcode.Visible:=posref OR artref OR posmenge OR (GetReportSettings_S('Position.'+<r_dokutype>+'.BarcodeExpr1', '')<>''); |
||
| 98 | If posref AND NOT EMPTY(<position."referenz">) Then Begin |
||
| 99 | BarCodePosition1.Expression:='<position."referenz">'; |
||
| 100 | MemoBCTextPos.Visible:=True; |
||
| 101 | MemoBCTextPos.Text:='Ihre'+<slinebreak>+'Bestell-Nr.'; |
||
| 102 | End |
||
| 103 | Else If (GetReportSettings_S('Position.'+<r_dokutype>+'.BarcodeExpr1', '')<>'') Then Begin |
||
| 104 | BarCodePosition1.Expression:=GetReportSettings_S('Position.'+<r_dokutype>+'.BarcodeExpr1', ''); |
||
| 105 | End |
||
| 106 | Else Begin |
||
| 107 | BarCodePosition1.Visible:=False; // Deaktivieren, da im Standard sichtbar |
||
| 108 | MemoBCTextPos.Visible:=False; |
||
| 109 | End; |
||
| 110 | |||
| 111 | If artref AND NOT EMPTY(<position."artikelnummer_adressant">) Then Begin |
||
| 112 | BarCodePosition2.Visible:=True; |
||
| 113 | BarCodePosition2.Expression:='<position."artikelnummer_adressant">'; |
||
| 114 | MemoBCTextPos2.Visible:=True; |
||
| 115 | MemoBCTextPos2.Text:='Ihre'+<slinebreak>+'Artikel-Nr'; |
||
| 116 | MemoBCTextAbstPos2.Visible:=True; |
||
| 117 | End; |
||
| 118 | |||
| 119 | If posmenge Then Begin |
||
| 120 | BarCodePosition3.Visible:=True; |
||
| 121 | BarCodePosition3.Expression:='<position."menge">'; |
||
| 122 | MemoBCTextPos3.Visible:=True; |
||
| 123 | MemoBCTextPos3.Text:='Menge'; |
||
| 124 | MemoBCTextAbstPos3.Visible:=True; |
||
| 125 | End; |
||
| 126 | |||
| 127 | End; |
||
| 128 | |||
| 129 | end. |
||
| 130 | |||
| 131 | </code></pre> |
||
| 132 | }} |
||
| 133 | |||
| 134 | * Label-Texte sind in diesem Beispiel noch nicht auf Trans-Variablen umgestellt ~ Auslandskunden |
||
| 135 | |||
| 136 | |||
| 137 | !http://redmine.prodat-sql.de/attachments/download/6214/barcodes-lfs.png! |