10 |
IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException, |
IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException, |
11 |
Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet, |
Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet, |
12 |
UITypes, |
UITypes, |
13 |
PakkeshopLabels |
PakkeshopLabels, |
14 |
|
StBarC, |
15 |
|
Math // DegToRad() bruges i PrintPakkeshopLabel |
16 |
|
|
17 |
|
|
18 |
; |
; |
19 |
|
|
97 |
|
|
98 |
function Explode(var a: TStrArray; Border, S: string): Integer; |
function Explode(var a: TStrArray; Border, S: string): Integer; |
99 |
function BarCodeValid (ACode: string): boolean; |
function BarCodeValid (ACode: string): boolean; |
100 |
function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String; |
function Sto_GetFmtFileVersion(const FileName: String = ''): String; |
101 |
function TColorToHex(Color : TColor) : string; |
function TColorToHex(Color : TColor) : string; |
102 |
function HexToTColor(sColor : string) : TColor; |
function HexToTColor(sColor : string) : TColor; |
103 |
function getProddato() : TDate; |
function getProddato() : TDate; |
254 |
BoghandlerStregkode, BoghandlerTjekkode : String; |
BoghandlerStregkode, BoghandlerTjekkode : String; |
255 |
TjekUrls : String; |
TjekUrls : String; |
256 |
|
|
257 |
PakkeshopLabel: TPakkeshopLabel; |
Barcode : TStBarcode; |
258 |
|
|
259 |
function CheckSumModulo10(const data:string):string; { used for EAN 8/13 } |
function CheckSumModulo10(const data:string):string; { used for EAN 8/13 } |
260 |
|
|
274 |
{ Public declarations } |
{ Public declarations } |
275 |
end; |
end; |
276 |
|
|
277 |
|
function GetPixelsPerInchX(): Integer; |
278 |
|
function GetPixelsPerInchY(): Integer; |
279 |
|
|
280 |
var |
var |
281 |
MainForm: TMainForm; |
MainForm: TMainForm; |
282 |
|
|
315 |
StaticTextManglendePakker.Caption := ''; |
StaticTextManglendePakker.Caption := ''; |
316 |
// 20150309: slut |
// 20150309: slut |
317 |
|
|
318 |
|
Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component |
319 |
|
|
320 |
PanelValg1.Color := clBtnFace; |
PanelValg1.Color := clBtnFace; |
321 |
if PanelValg1.Enabled = true then |
if PanelValg1.Enabled = true then |
322 |
begin |
begin |
642 |
|
|
643 |
if (SkrivLog = '1') then |
if (SkrivLog = '1') then |
644 |
begin |
begin |
645 |
logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now); |
logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now); |
646 |
try |
try |
647 |
SkrivScanningLogFil(logTekst); |
SkrivScanningLogFil(logTekst); |
648 |
Uploadlogfil1.Enabled := true; |
Uploadlogfil1.Enabled := true; |
1156 |
Scanningtype := gemScanningtype; |
Scanningtype := gemScanningtype; |
1157 |
|
|
1158 |
SendInfoTilServer(Sted, Scanningtype, 'Begin', ''); |
SendInfoTilServer(Sted, Scanningtype, 'Begin', ''); |
1159 |
SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('','')); |
SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('')); |
1160 |
|
|
1161 |
end; |
end; |
1162 |
|
|
2076 |
URLStr : String; |
URLStr : String; |
2077 |
pakkestorrelse : String; |
pakkestorrelse : String; |
2078 |
PrintNyLabelInteger : Integer; |
PrintNyLabelInteger : Integer; |
2079 |
|
|
2080 |
|
PakkeshopLabel: TPakkeshopLabel; |
2081 |
begin |
begin |
2082 |
if radioStorPakke.Checked then |
if radioStorPakke.Checked then |
2083 |
begin |
begin |
2180 |
begin |
begin |
2181 |
PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label |
PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label |
2182 |
PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc |
PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc |
2183 |
|
RuteNummer := PakkeshopLabel.Koreliste; |
2184 |
|
|
2185 |
PrintPakkeshopLabel( PakkeshopLabel ); |
PrintPakkeshopLabel( PakkeshopLabel ); |
2186 |
|
|
3081 |
repeat |
repeat |
3082 |
if (SR.Attr <> faDirectory) then |
if (SR.Attr <> faDirectory) then |
3083 |
begin |
begin |
3084 |
|
|
3085 |
dt := fileDateToDateTime(SR.Time); // finder filens timestamp for seneste ændring |
dt := fileDateToDateTime(SR.Time); // finder filens timestamp for seneste ændring |
3086 |
CreationTime := SR.FindData.ftCreationTime; // finder filens timestamp for oprettelse |
CreationTime := SR.FindData.ftCreationTime; // finder filens timestamp for oprettelse |
3087 |
dtCreation := FileTime2DateTime(CreationTime); // finder filens timestamp for oprettelse |
dtCreation := FileTime2DateTime(CreationTime); // finder filens timestamp for oprettelse |
3381 |
tekst, filversion : String; |
tekst, filversion : String; |
3382 |
begin |
begin |
3383 |
|
|
3384 |
filversion := Sto_GetFmtFileVersion('',''); |
filversion := Sto_GetFmtFileVersion(''); |
3385 |
tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO'; |
tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO'; |
3386 |
|
|
3387 |
tekst := tekst+crlf+crlf; |
tekst := tekst+crlf+crlf; |
3835 |
/// values.</param> |
/// values.</param> |
3836 |
/// <returns>Formatted version number of file, '' if no version |
/// <returns>Formatted version number of file, '' if no version |
3837 |
/// resource found.</returns> |
/// resource found.</returns> |
3838 |
function TMainForm.Sto_GetFmtFileVersion(const FileName: String = ''; |
function TMainForm.Sto_GetFmtFileVersion(const FileName: String = ''): String; |
|
const Fmt: String = '%d.%d.%d.%d'): String; |
|
3839 |
var |
var |
3840 |
sFileName: String; |
sFileName: String; |
3841 |
iBufferSize: DWORD; |
iBufferSize: DWORD; |
3842 |
iDummy: DWORD; |
iDummy: DWORD; |
3843 |
pBuffer: Pointer; |
pBuffer: Pointer; |
3844 |
pFileInfo: Pointer; |
pFileInfo: Pointer; |
3845 |
iVer: array[1..4] of Word; |
iVer: array[1..4] of Integer; |
|
S : String; |
|
3846 |
begin |
begin |
3847 |
// set default value |
// set default value |
3848 |
Result := ''; |
Result := ''; |
3867 |
finally |
finally |
3868 |
FreeMem(pBuffer); |
FreeMem(pBuffer); |
3869 |
end; |
end; |
3870 |
|
|
3871 |
// format result string |
// format result string |
3872 |
Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]); |
Result := Format('%d.%d.%d.%d', [iVer[1], iVer[2], iVer[3], iVer[4]]); |
3873 |
|
|
|
// Hvorfor virker ovenstående ikke ??? |
|
|
S := ''; |
|
|
Str(iVer[1], Result); |
|
|
S := S+Result+'.'; |
|
|
Str(iVer[2], Result); |
|
|
S := S+Result+'.'; |
|
|
Str(iVer[3], Result); |
|
|
S := S+Result+'.'; |
|
|
Str(iVer[4], Result); |
|
|
S := S+Result+''; |
|
|
Result := S; |
|
3874 |
end; |
end; |
3875 |
end; |
end; |
3876 |
|
|
4619 |
until S2 = ''; |
until S2 = ''; |
4620 |
end; |
end; |
4621 |
|
|
4622 |
// ToDo: Færdiggør implementationen |
// ToDo: PrintPakkeshopLabel() |
4623 |
procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel); |
procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel); |
4624 |
|
var |
4625 |
|
XForm, XFormOld: TXForm; //Bruges til rotate X-formation |
4626 |
|
Angle: integer; |
4627 |
|
gMode: integer; |
4628 |
|
BarcodeArea: TRect; |
4629 |
|
Dirigering: string; |
4630 |
|
|
4631 |
begin |
begin |
4632 |
with Printer do |
with Printer do |
4633 |
begin |
begin |
4634 |
BeginDoc(); |
BeginDoc(); |
|
Canvas.Font.Size := FontSizeRuteLille; |
|
4635 |
|
|
4636 |
Canvas.Font.Size := FontSizeKorelisteLille; |
|
4637 |
Canvas.TextOut(XPosKoreliste,YPosKoreliste, PakkeshopLabel.Navn); |
Canvas.Font.Size := 16; |
4638 |
|
Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + ' ' + PakkeshopLabel.Overskrift); |
4639 |
|
|
4640 |
|
|
4641 |
|
|
4642 |
|
Canvas.TextOut(25, 90, PakkeshopLabel.Navn ); |
4643 |
|
Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn ); |
4644 |
|
Canvas.TextOut(25, 180, PakkeshopLabel.Postnr ); |
4645 |
|
|
4646 |
|
|
4647 |
|
Canvas.Font.Size := 9; |
4648 |
|
Canvas.TextOut(110, 240, 'Pakkeshop:'); |
4649 |
|
Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn); |
4650 |
|
Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr); |
4651 |
|
Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr); |
4652 |
|
|
4653 |
|
Canvas.TextOut(350, 240, 'Afsender:'); |
4654 |
|
Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn); |
4655 |
|
Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse); |
4656 |
|
Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr); |
4657 |
|
|
4658 |
|
Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr; |
4659 |
|
if ( PakkeshopLabel.Koreliste <> '') then |
4660 |
|
begin |
4661 |
|
Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste; |
4662 |
|
end; |
4663 |
|
|
4664 |
|
|
4665 |
|
Canvas.Font.Size := 12; |
4666 |
|
Canvas.TextOut(15, 370, Dirigering); |
4667 |
|
|
4668 |
|
|
4669 |
|
|
4670 |
|
|
4671 |
|
|
4672 |
|
//Tegn adskillelses linier |
4673 |
|
Canvas.Pen.Width := 2; |
4674 |
|
//Øverste linie |
4675 |
|
Canvas.MoveTo(20,80); |
4676 |
|
Canvas.LineTo(600,80); |
4677 |
|
|
4678 |
|
// Midterste linie |
4679 |
|
Canvas.MoveTo( 20, 240); |
4680 |
|
Canvas.LineTo(600, 240); |
4681 |
|
|
4682 |
|
//Nederste linie |
4683 |
|
Canvas.MoveTo( 20, 370); |
4684 |
|
Canvas.LineTo(600, 370); |
4685 |
|
|
4686 |
|
|
4687 |
|
//Tegn skrå streger over afsender |
4688 |
|
Canvas.Pen.Width := 1; |
4689 |
|
Canvas.MoveTo(600, 250); |
4690 |
|
Canvas.LineTo(350, 360); |
4691 |
|
Canvas.MoveTo(600, 360); |
4692 |
|
Canvas.LineTo(350, 250); |
4693 |
|
|
4694 |
|
|
4695 |
|
|
4696 |
|
|
4697 |
|
// Resten af rutinen vedr genering og placering af Barcode |
4698 |
|
|
4699 |
|
BarCode.BarCodeType := bcCode128; |
4700 |
|
BarCode.Code128Subset := csCodeC; |
4701 |
|
BarCode.Code := PakkeshopLabel.Stregkode; |
4702 |
|
BarCode.Validate(True); |
4703 |
|
|
4704 |
|
//Start X-formation |
4705 |
|
//ShowMessage( Format('%d %d', [PageWidth, PageHeight]) ); |
4706 |
|
GetWorldTransform(Canvas.Handle, XFormOld); |
4707 |
|
|
4708 |
|
Angle := 270; |
4709 |
|
XForm.eM11 := Cos(DegToRad(Angle)); |
4710 |
|
XForm.eM12 := Sin(DegToRad(Angle)); |
4711 |
|
XForm.eM21 := -Sin(DegToRad(Angle)); |
4712 |
|
XForm.eM22 := Cos(DegToRad(Angle)); |
4713 |
|
XForm.eDx := 0; |
4714 |
|
XForm.eDy := 0; |
4715 |
|
|
4716 |
|
gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED); |
4717 |
|
SetWorldTransform(Canvas.Handle, XForm); |
4718 |
|
|
4719 |
|
// PaintToCanvasSize arbejder i Inches |
4720 |
|
// Første pos argument bliver nu Y og skal være negativ for at rykke den ned |
4721 |
|
//Anden pos er X og skal være positiv for at justere ind fra venstre mod højre |
4722 |
|
|
4723 |
|
BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4); |
4724 |
|
|
4725 |
|
|
4726 |
|
SetWorldTransform(Canvas.Handle, XFormOld); |
4727 |
|
SetGraphicsMode(Canvas.Handle, gMode); |
4728 |
|
|
4729 |
EndDoc(); |
EndDoc(); |
4730 |
end; |
end; |
4731 |
|
|
4732 |
|
|
4733 |
|
end; |
4734 |
|
|
4735 |
|
function GetPixelsPerInchX(): Integer; |
4736 |
|
begin |
4737 |
|
Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX) |
4738 |
|
end; |
4739 |
|
|
4740 |
|
function GetPixelsPerInchY(): Integer; |
4741 |
|
begin |
4742 |
|
Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY) |
4743 |
end; |
end; |
4744 |
|
|
4745 |
|
|
5098 |
idag, imorgen : TDateTime; |
idag, imorgen : TDateTime; |
5099 |
imorgenYmd : string; |
imorgenYmd : string; |
5100 |
logFilnavn : string; |
logFilnavn : string; |
5101 |
error : Integer; |
//error : Integer; |
5102 |
|
|
5103 |
begin |
begin |
5104 |
if (SkrivLog = '1') then |
if (SkrivLog = '1') then |
5486 |
|
|
5487 |
function TMainForm.CheckUrl(url:string):boolean; |
function TMainForm.CheckUrl(url:string):boolean; |
5488 |
var |
var |
5489 |
hSession, hfile, hRequest: hInternet; |
hSession, hfile: hInternet; |
5490 |
dwindex,dwcodelen :dword; |
dwindex,dwcodelen :dword; |
5491 |
dwcode:array[1..20] of char; |
dwcode:array[1..20] of char; |
5492 |
res : pchar; |
res : pchar; |