Projekt

Allgemein

Profil

Barcode-Zentraldokument » Historie » Version 4

[S] Philipp K, 05.10.2017 09:56

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