Projekt

Allgemein

Profil

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!