Clipper Druckereinstellungen
Verfasst: Mi, 26. Mai 2021 15:29
Guten Tag,
Ich habe bei uns im Labor noch einen Computer stehen, auf dem eine Software basierend auf Clipper läuft. Ein Teil des Programms ist für den Druck von Etiketten für die Laborproben zuständig. Da sich bei den Etiketten das Format ändern wird, soll ich mir die Software anschauen und die passenden Änderungen vornehmen. Ich bin selber kein Programmierer und der Erschaffer unserer Software ist auch schon lange weg. Ich habe den fraglichen Teil im Code gefunden, blicke aber nicht zu 100% durch, welche Variable für was steht und was macht etc. Vielleicht kann mir ja hier jemand weiterhelfen, das wäre wunderbar!
Aktuell werden die Etiketten in drei Spalten gedruckt, jede Nummer wird immer doppelt vergeben.
Beispiel:
ITMC ITMC ITMC
10000 10000 10001
ITMC ITMC ITMC
10001 10002 10002
etc.
Ich wüsste gerne, an welchen Stellschrauben ich drehen muss, um den Abstand und die Anzahl der Spalten zu verändern, je nach Anforderung der neuen Etiketten.
Vielen Dank schonmal!
Hier ist der Ausschnitt aus dem Code:
procedure nummernet
private fensalt,fensneu
*set intensity off
set delimiters to "[]"
set delimiters on
fensalt=wselect()
fensneu=wopen(12,20,20,60,.T.)
wbox()
@ 0,8 say "Etikettendruck:"
@ 1,0 say replicate("-",38)
@ 3,1 say "Startnummer "
@ 3,22 say "Wieviel "
@ 5,5 say "<P>robeausdruck <A>usdruck"
do while .T.
num1=0
num3=0
@ 3,13 get num1 picture("#####")
@ 3,30 get num3 picture("####")
read
if empty(num1) .or. empty(num3)
exit
endif
set color to &atr4
@ 5,6 say "P"
@ 5,22 say "A"
set console off
if .not. printeran(1,72)
exit
endif
set margin to 0
do while .T.
num2=waitkey(0,1)
do case
case num2=112
do probedr
case num2=97
ausdruck(num1,num3)
exit
case num2=27
exit
otherwise
loop
endcase
enddo
if .not. printeran(3,72)
exit
endif
set console on
set color to &atr0
@ 5,6 say "P"
@ 5,22 say "A"
enddo
wclose(fensneu)
wselect(fensalt)
do kopf
return
procedure probedr
? chr(27)+"S1"+" "+chr(27)+"T"
?
? chr(27)+"w1"+str(num1,5,0)+chr(27)+"w0"
?
return
function ausdruck
parameters vonwo,wieviel
num4=0
?? chr(27)+"M"
do while .T.
for num5=1 to 2
? chr(27)+"S1"+" ITMC ITMC ITMC"+chr(27)+"T"
? chr(27)+"G"
? chr(27)+"w1"+str(vonwo+num4,5,0)
?? " "+str(vonwo+num4+1,5,0)
?? " "+str(vonwo+num4+2,5,0)+chr(27)+"w0"
? chr(27)+"H"
next
num4=num4+3
if num4>=wieviel
exit
endif
enddo
return(0)
Ich habe bei uns im Labor noch einen Computer stehen, auf dem eine Software basierend auf Clipper läuft. Ein Teil des Programms ist für den Druck von Etiketten für die Laborproben zuständig. Da sich bei den Etiketten das Format ändern wird, soll ich mir die Software anschauen und die passenden Änderungen vornehmen. Ich bin selber kein Programmierer und der Erschaffer unserer Software ist auch schon lange weg. Ich habe den fraglichen Teil im Code gefunden, blicke aber nicht zu 100% durch, welche Variable für was steht und was macht etc. Vielleicht kann mir ja hier jemand weiterhelfen, das wäre wunderbar!
Aktuell werden die Etiketten in drei Spalten gedruckt, jede Nummer wird immer doppelt vergeben.
Beispiel:
ITMC ITMC ITMC
10000 10000 10001
ITMC ITMC ITMC
10001 10002 10002
etc.
Ich wüsste gerne, an welchen Stellschrauben ich drehen muss, um den Abstand und die Anzahl der Spalten zu verändern, je nach Anforderung der neuen Etiketten.
Vielen Dank schonmal!
Hier ist der Ausschnitt aus dem Code:
procedure nummernet
private fensalt,fensneu
*set intensity off
set delimiters to "[]"
set delimiters on
fensalt=wselect()
fensneu=wopen(12,20,20,60,.T.)
wbox()
@ 0,8 say "Etikettendruck:"
@ 1,0 say replicate("-",38)
@ 3,1 say "Startnummer "
@ 3,22 say "Wieviel "
@ 5,5 say "<P>robeausdruck <A>usdruck"
do while .T.
num1=0
num3=0
@ 3,13 get num1 picture("#####")
@ 3,30 get num3 picture("####")
read
if empty(num1) .or. empty(num3)
exit
endif
set color to &atr4
@ 5,6 say "P"
@ 5,22 say "A"
set console off
if .not. printeran(1,72)
exit
endif
set margin to 0
do while .T.
num2=waitkey(0,1)
do case
case num2=112
do probedr
case num2=97
ausdruck(num1,num3)
exit
case num2=27
exit
otherwise
loop
endcase
enddo
if .not. printeran(3,72)
exit
endif
set console on
set color to &atr0
@ 5,6 say "P"
@ 5,22 say "A"
enddo
wclose(fensneu)
wselect(fensalt)
do kopf
return
procedure probedr
? chr(27)+"S1"+" "+chr(27)+"T"
?
? chr(27)+"w1"+str(num1,5,0)+chr(27)+"w0"
?
return
function ausdruck
parameters vonwo,wieviel
num4=0
?? chr(27)+"M"
do while .T.
for num5=1 to 2
? chr(27)+"S1"+" ITMC ITMC ITMC"+chr(27)+"T"
? chr(27)+"G"
? chr(27)+"w1"+str(vonwo+num4,5,0)
?? " "+str(vonwo+num4+1,5,0)
?? " "+str(vonwo+num4+2,5,0)+chr(27)+"w0"
? chr(27)+"H"
next
num4=num4+3
if num4>=wieviel
exit
endif
enddo
return(0)