Projekt

Allgemein

Profil

Barcode-Zentraldokument » Historie » Version 1

[X] Marcus F, 22.09.2016 10:39

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