--- dao/DelphiScanner/Main.pas 2015/09/03 14:16:31 2691
+++ dao/DelphiScanner/Main.pas 2015/12/04 15:39:20 2791
@@ -1,24 +1,37 @@
unit Main;
+// ToDo: flyt PrinterNavn til hhv Configuration lg lad TLabelPrint om al håndtering heraf
+// ToDo: flyt flere parametre til TConfiguration
+
+// ToDo: FormKeyPress() trænger til en seriøs oprydning / refactoring
+// ToDo: flyt mere funktionalitet fra interface layer til application layer klasser
+// ToDo: vil det give mening at bruge State Pattern ? Så der er en class per scanningstype ?
+// ToDo: alternativt kan man bruge en Enum til de forskellige typer
+// ToDo: en enklere måde at håndtere capabilities på de forskellige scannings steder
+
+
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, Printers, IdBaseComponent, IdComponent, IdTCPConnection,
+ Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
- IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,
- Winspool, ShellApi, ClipBrd, Buttons, wininet,
+ IdExplicitTLSClientServerBase, IdFTP, IdException,
+ ShellApi, ClipBrd, Buttons, wininet,
UITypes,
PakkeshopLabels,
- StBarC,
- Math, // DegToRad() bruges i PrintPakkeshopLabel
- Utils
+ Utils,
+ ParentForm,
+ LabelPrint,
+ Configuration,
+ Vcl.Imaging.pngimage,
+ Generics.Collections
;
type
- TMainForm = class(TForm)
+ TMainForm = class(TForm, IParentForm)
StregkodeST: TStaticText;
RuteNummerST: TStaticText;
BoghandlerNavnST: TStaticText;
@@ -56,16 +69,16 @@
IdFTP1: TIdFTP;
Image1: TImage;
ListBox2: TListBox;
- OpdaterListenButton01: TButton;
- UploadButton01: TButton;
- DownloadButton03: TButton;
+ BtnOpdaterListen: TButton;
+ BtnUploadLogfil: TButton;
+ BtnDownloadRuteskiftFil: TButton;
Pakkeshoplevering1: TMenuItem;
PakkeshopText1: TStaticText;
btnNulstil: TButton;
Returpakkerfrapakkeshop1: TMenuItem;
Altidprintepakkelabel1: TMenuItem;
chkAltidPrintLabel: TCheckBox;
- EKLoverforsel: TButton;
+ BtnEKLoverforsel: TButton;
N5: TMenuItem;
Uploadlogfil1: TMenuItem;
Manual1: TMenuItem;
@@ -92,18 +105,13 @@
PanelManglendePakker5: TPanel;
PanelManglendePakker6: TPanel;
menuIndlevering: TMenuItem;
+ chkForstorTilDirekte: TCheckBox;
- function Sto_GetFmtFileVersion(const FileName: String = ''): String;
function getProddato() : TDate;
function getProddag() : String;
function retRutenummer(rutenummer : String) : String;
- function GetCurrentPrinterHandle() : THandle;
- function SavePChar(p: PChar): PChar;
-
- function FileTime2DateTime(FileTime: TFileTime): TDateTime;
- function CheckUrl(url:string):boolean;
procedure PlaySound(filename : PWideChar);
procedure StartScreen();
@@ -135,7 +143,7 @@
procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
procedure Budlevering1Click(Sender: TObject);
procedure BtnDownloadKontrolfilClick(Sender: TObject);
- procedure OpdaterListenButton01Click(Sender: TObject);
+ procedure BtnOpdaterListenClick(Sender: TObject);
procedure DownloadBladhusRuteskiftfil();
procedure DownloadBladhusKontrolfil();
procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
@@ -143,8 +151,8 @@
procedure UploadInifilTilDAO();
procedure SletStregkodelinieFraListboks2(StregKode : String);
procedure FormDestroy(Sender: TObject);
- procedure UploadButton01Click(Sender: TObject);
- procedure DownloadButton03Click(Sender: TObject);
+ procedure BtnUploadLogfilClick(Sender: TObject);
+ procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
procedure Pakkeshoplevering1Click(Sender: TObject);
procedure btnNulstilClick(Sender: TObject);
procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
@@ -158,7 +166,7 @@
procedure Altidprintepakkelabel1Click(Sender: TObject);
procedure chkAltidPrintLabelClick(Sender: TObject);
- procedure EKLoverforselClick(Sender: TObject);
+ procedure BtnEKLoverforselClick(Sender: TObject);
procedure Uploadlogfil1Click(Sender: TObject);
procedure Manual1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
@@ -180,11 +188,17 @@
procedure SletLogfiler(Path: string; FileList: TStrings);
procedure Manualgenerel1Click(Sender: TObject);
procedure TjekkerUrls();
+ procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
procedure menuIndleveringClick(Sender: TObject);
- procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
- procedure CheckPrintQue(tjektype : string);
+
+
+
+ //Nedarvet fra IParentForm
+ procedure LogMessage( msg : string);
+ procedure SetPrinterstatusText( txt: string; alert: boolean);
+ function GetFormObject() : TForm;
private
@@ -194,16 +208,16 @@
Sted : String;
StedNavn : String;
Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;
-// 29150330: start
+
UrlEKLoverforselPakkeshop : String;
-// 20150330: slut
+
UrlFindPakketype, UrlSendPrograminfo: String;
Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
ScanTjekkode : String;
ScanTjekkodeAutomatik : string;
Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;
Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;
- LabelType : integer;
+
AlarmLyd : String;
ScannetOkLyd : String;
ScannetOkStorLyd : String;
@@ -212,29 +226,7 @@
PrinterNavn : String;
TjekPrinter : String;
- XPosRute : integer;
- YPosRute : integer;
- FontSizeRute : integer;
- FontSizeRuteLille : integer;
- XPosKommentar : integer;
- YPosKommentar : integer;
- FontSizeKommentar : integer;
- XPosBoghandler : integer;
- YPosBoghandler : integer;
- FontSizeBoghandler : integer;
- XPosKoreliste : integer;
- YPosKoreliste : integer;
- FontSizeKoreliste : integer;
- FontSizeKorelisteLille : integer;
- XPosSorteringsfelt1 : integer;
- YPosSorteringsfelt1 : integer;
- FontSizeSorteringsfelt1 : integer;
- XPosSorteringsfelt2 : integer;
- YPosSorteringsfelt2 : integer;
- FontSizeSorteringsfelt2 : integer;
- XPosSmskode : integer;
- YPosSmskode : integer;
- FontSizeSmskode : integer;
+
Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
BladhusSted : Integer;
BladhusStedKode : Array of string;
@@ -247,12 +239,13 @@
PakkeshopStregkode, PakkeshopTjekkode : String;
BoghandlerStregkode, BoghandlerTjekkode : String;
TjekUrls : String;
+ Config : TConfiguration;
- Barcode : TStBarcode;
+ LabelPrint: TLabelPrint;
procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
- procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
+
procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');
procedure CheckCode();
procedure IndlesManglendeScanninger();
@@ -267,8 +260,6 @@
{ Public declarations }
end;
- function GetPixelsPerInchX(): Integer;
- function GetPixelsPerInchY(): Integer;
var
MainForm: TMainForm;
@@ -284,14 +275,13 @@
{$R *.dfm}
+//FormCreate kaldes før InitForm
+
procedure TMainForm.InitForm(Farve,Titel,Url : String);
begin
-// 20150309: startr
StaticTextManglendePakker.Caption := '';
-// 20150309: slut
- Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
PanelValg1.Color := clBtnFace;
if PanelValg1.Enabled = true then
@@ -335,7 +325,7 @@
PanelValg7.Font.Color := clWindowText;
end;
- OpdaterListenButton01.Enabled := false;
+ BtnOpdaterListen.Enabled := false;
if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
begin
@@ -460,6 +450,7 @@
end;
end;
+
end;
procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
@@ -505,14 +496,17 @@
PanelValgA.Font.Color := clWhite;
end;
+
+//InitForm kaldes før FormCreate
procedure TMainForm.FormCreate(Sender: TObject);
const
crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
var
- printerInd : integer;
gemScanningtype : String;
begin
+
+
// Initierer nogle variabler
BladhusSted := 00;
Application.ShowHint := True;
@@ -540,9 +534,15 @@
MainForm.ClientWidth := 1000;
MainForm.ClientHeight := 750;
+ Config := TConfiguration.Create();
+ Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) ); //ToDo: clean up duplicate ini ref
+ Config.Sted := Sted;
+
// Læser parametre fra ini filen
with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
try
+
+
SkrivLog := ReadString('Settings','SkrivLog','0');
Sted := ReadString('Settings','Sted','');
StedNavn := ReadString('Settings','Stednavn','');
@@ -568,7 +568,6 @@
- LabelType := ReadInteger('Settings','LabelType',1);
FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');
@@ -605,11 +604,11 @@
if (SkrivLog = '1') then
begin
- logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
+ logTekst := 'Program start (Version: ' + TUtils.Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
try
SkrivScanningLogFil(logTekst);
Uploadlogfil1.Enabled := true;
- UploadButton01.Enabled := true;
+ BtnUploadLogfil.Enabled := true;
logTekst := 'Programmet er installeret som: '+ParamStr(0);
SkrivScanningLogFil(logTekst);
// Oprydning i gamle logfiler
@@ -627,75 +626,7 @@
PanelValgA.Font.Color := clWhite;
end;
- if LabelType = 0 then
- begin
- XPosRute := ReadInteger('RuteBred','XPos',1);
- YPosRute := ReadInteger('RuteBred','YPos',1);
- FontSizeRute := ReadInteger('RuteBred','FontSize',72);
- FontSizeRuteLille := ReadInteger('RuteBred','FontSizeLille',20);
- XPosKommentar := ReadInteger('KommentarBred','XPos',1);
- YPosKommentar := ReadInteger('KommentarBred','YPos',250);
- FontSizeKommentar := ReadInteger('KommentarBred','FontSize',16);
- XPosBoghandler := ReadInteger('BoghandlerBred','XPos',1);
- YPosBoghandler := ReadInteger('BoghandlerBred','YPos',400);
- FontSizeBoghandler := ReadInteger('BoghandlerBred','FontSize',16);
- XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);
- YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);
- FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);
- FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);
- XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);
- YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);
- FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);
- XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);
- YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);
- FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);
- XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);
- YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);
- FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);
- end
- else
- begin
- XPosRute := ReadInteger('RuteSmal','XPos',1);
- YPosRute := ReadInteger('RuteSmal','YPos',1);
- FontSizeRute := ReadInteger('RuteSmal','FontSize',72);
- FontSizeRuteLille := ReadInteger('RuteSmal','FontSizeLille',20);
- XPosKommentar := ReadInteger('KommentarSmal','XPos',1);
- YPosKommentar := ReadInteger('KommentarSmal','YPos',250);
- FontSizeKommentar := ReadInteger('KommentarSmal','FontSize',16);
- XPosBoghandler := ReadInteger('BoghandlerSmal','XPos',1);
- YPosBoghandler := ReadInteger('BoghandlerSmal','YPos',400);
- FontSizeBoghandler := ReadInteger('BoghandlerSmal','FontSize',16);
- XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);
- YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);
- FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);
- FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);
- XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);
- YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);
- FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);
- XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);
- YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);
- FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);
- XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);
- YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);
- FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);
- if LabelType = 2 then // test på alm. printer kræver at XY-positionerne ganges med 3
- begin
- XPosRute := XPosRute * 3;
- YPosRute := YPosRute * 3;
- XPosKommentar := XPosKommentar * 3;
- YPosKommentar := YPosKommentar * 3;
- XPosBoghandler := XPosBoghandler * 3;
- YPosBoghandler := YPosBoghandler * 3;
- XPosKoreliste := XPosKoreliste * 3;
- YPosKoreliste := YPosKoreliste * 3;
- XPosSorteringsfelt1 := XPosSorteringsfelt1 * 3;
- YPosSorteringsfelt1 := YPosSorteringsfelt1 * 3;
- XPosSorteringsfelt2 := XPosSorteringsfelt2 * 3;
- YPosSorteringsfelt2 := YPosSorteringsfelt2 * 3;
- XPosSmskode := XPosSmskode * 3;
- YPosSmskode := YPosSmskode * 3;
- end;
- end;
+
if SporgEfterBoghandler = '1' then
begin
@@ -797,12 +728,15 @@
PanelValg2.Font.Color := clInactiveCaption;
PanelValg3.Enabled := false;
PanelValg3.Font.Color := clInactiveCaption;
- PanelValg6.Enabled := false;
- PanelValg6.Font.Color := clInactiveCaption;
+ //PanelValg6.Enabled := false;
+ //PanelValg6.Font.Color := clInactiveCaption;
+
// her skal vi også disable de menupunkter BK ikke kan bruge
ReturpakkerfraDAO1.Enabled := false;
Returpakkerfraboghandler1.Enabled := false;
- Returpakkerfrapakkeshop1.Enabled := false;
+
+ //Returpakkerfrapakkeshop1.Enabled := false;
+
if SpecialVersionScanningtype = 'A' then
begin
Scanningtype := '1';
@@ -1057,14 +991,10 @@
end;
- if (PrinterNavn <> '') then
- begin
- printerInd := Printer.Printers.IndexOf(printerNavn);
- if printerInd >= 0 then
- Printer.PrinterIndex := printerInd;
- end;
- CheckPrintQue('Opstart');
+
+ LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
+ LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
finally
Free;
@@ -1131,7 +1061,7 @@
Scanningtype := gemScanningtype;
SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
- SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion(''));
+ SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
end;
@@ -1449,19 +1379,19 @@
Pakkescanningtype := Scanningtype;
end;
- if ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)
- or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)
- or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)
- or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)
- or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)
- or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) then
+ if ( ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
+ or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
+ or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
+ or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
+ or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
+ or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
begin // Her skal komme en alarm og rød skærm
VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
exit;
end;
- if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then
+ if (Automatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
begin
GemStregkode := Stregkode;
if Pakketype = 'NatXpress' then
@@ -1495,7 +1425,8 @@
else
begin
// Her skal komme en alarm og rød skærm
- VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
+ //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
+ VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
exit;
end;
@@ -1606,6 +1537,7 @@
if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then
begin
+
if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
StregKode := PakkeshopStregkode;
if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
@@ -1680,6 +1612,7 @@
begin
VisAlarmSkaerm('');
end;
+
if not btnNulstil.Visible then
begin
@@ -1772,7 +1705,7 @@
begin
- if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then
+ if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked or menuIndlevering.Checked then
begin
for i := ListBox2.items.count-1 downto 0 do
if pos(StregKode,ListBox2.items[i]) <> 0 then
@@ -1891,7 +1824,7 @@
PanelManglendePakker6.Visible := false;
end;
end;
-// 20150310: slut
+
ListBox2.items.delete(i);
end;
end;
@@ -1927,47 +1860,7 @@
Sprgefterboghandlernummer1.Enabled := false;
ListBox1.Visible := true;
// TestFunktionen := '1';
-// 20150317: start
-(*
- if TestFunktionen = '1' then
- begin
- Testforbindelsen1.Visible := true;
- Testprinter1.Visible := true;
- Testlyd1.Visible := true;
- Testlyd2.Visible := true;
- end
- else if TestFunktionen = '2' then
- begin
- Testforbindelsen1.Enabled := false;
- Testprinter1.Enabled := false;
- Testlyd1.Enabled := false;
- Testlyd2.Enabled := false;
- end
- else
- begin
- Testforbindelsen1.Visible := false;
- Testprinter1.Visible := false;
- Testlyd1.Visible := false;
- Testlyd2.Visible := false;
- end;
- Testprinter1.Visible := false;
- AlarmLyd := 'Sounds\Alarm.wav';
- if not FileExists(AlarmLyd) then
- begin
- AlarmLyd := '';
- end;
- ScannetOkLyd := 'Sounds\Ok.wav';
- if not FileExists(ScannetOkLyd) then
- begin
- ScannetOkLyd := '';
- end;
- ScannetOkStorLyd := 'Sounds\Ok_stor.wav';
- if not FileExists(ScannetOkStorLyd) then
- begin
- ScannetOkStorLyd := '';
- end;
-*)
-// 20150317: slut
+
if Budlevering1.Checked then
begin
IndlesScanningLogFil();
@@ -1981,7 +1874,7 @@
begin; // NS
Testprinter1.Visible := true;
BtnDownloadKontrolfil.Enabled := true;
- OpdaterListenButton01.Enabled := true;
+ BtnOpdaterListen.Enabled := true;
IdFTP1.Passive := true;
IdFTP1.PassiveUseControlHost := true;
BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
@@ -1997,7 +1890,7 @@
radioStorPakke.Enabled := true;
radioLillePakke.Enabled := true;
BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her
- OpdaterListenButton01.Enabled := true;
+ BtnOpdaterListen.Enabled := true;
IdFTP1.Passive := true;
IdFTP1.PassiveUseControlHost := true;
IndlesManglendeScanninger();
@@ -2007,14 +1900,14 @@
Testprinter1.Visible := true;
if (getProddag() = 'lørdag') then
begin
- DownloadButton03.Visible := false;
+ BtnDownloadRuteskiftFil.Visible := false;
end
else
begin
- DownloadButton03.Visible := false;
+ BtnDownloadRuteskiftFil.Visible := false;
end;
BtnDownloadKontrolfil.Enabled := true;
- OpdaterListenButton01.Enabled := true;
+ BtnOpdaterListen.Enabled := true;
IdFTP1.Passive := true;
IdFTP1.PassiveUseControlHost := true;
BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
@@ -2035,7 +1928,7 @@
radioStorPakke.Enabled := true;
radioLillePakke.Enabled := true;
BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her
- OpdaterListenButton01.Enabled := true;
+ BtnOpdaterListen.Enabled := true;
IdFTP1.Passive := true;
IdFTP1.PassiveUseControlHost := true;
end;
@@ -2155,9 +2048,10 @@
begin
PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
- RuteNummer := PakkeshopLabel.Koreliste;
+ RuteNummer := PakkeshopLabel.Koreliste + ' -> ' + PakkeshopLabel.PakkeshopTurid;
+ Stregkode := PakkeshopLabel.Stregkode;
- PrintPakkeshopLabel( PakkeshopLabel );
+ LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
end;
@@ -2289,12 +2183,18 @@
List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
end;
end;
+ if menuIndlevering.Checked then
+ begin
+ List1Msg := Stregkode;
+ end;
+
+
ListBox1.Items.Insert(0,List1Msg);
logTekst := RightStr(List1Msg, Length(List1Msg)-10);
SkrivScanningLogFil(logTekst);
end;
-procedure TMainForm.UploadButton01Click(Sender: TObject);
+procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
begin
UploadLogfilTilDAO();
UploadInifilTilDAO();
@@ -2429,7 +2329,7 @@
if PrintNyLabel or (RuteNummer = 'Rutenr') then
// 20150304: slut
begin
- SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
+ LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
end;
end;
01 : begin;
@@ -2437,13 +2337,13 @@
// Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
// Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
begin
- SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
+ LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
end;
end;
02 : begin;
if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
begin
- SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
+ LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
end;
end;
03 : begin;
@@ -2451,13 +2351,13 @@
// Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
// Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
begin
- SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
+ LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
end;
end;
04 : begin;
if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
begin
- SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
+ LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
end;
end;
else
@@ -2493,74 +2393,14 @@
end;
logTekst := logTekst + ' for '+BoghandlerNavn;
SkrivScanningLogFil(logTekst);
- with Printer do
- begin
- BeginDoc;
- Canvas.Font.Size := FontSizeRute;
- if (Length(RuteNummer) > 7) then
- begin
- Canvas.Font.Size := FontSizeRuteLille;
- end;
- Canvas.TextOut(XPosRute,YPosRute, RuteNummer);
- Canvas.Font.Size := FontSizeKommentar;
- Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
- if (Kommentar = 'Ok') or (Kommentar = 'ALLEREDE SCANNET') then
- begin
- Kommentar := '';
- end;
- if (BoghandlerNavn = 'PAKKE ER SCANNET') then
- begin
- BoghandlerNavn := '';
- end;
- Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar); // Kan ikke lave linieskift (se tidligere kommentar om samme)
- Canvas.Font.Size := FontSizeBoghandler;
- Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);
- EndDoc;
- end;
+
+ LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
+
end;
end;
end;
-procedure TMainForm.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
-begin
- with Printer do
- begin
- BeginDoc;
- Canvas.Font.Size := FontSizeRuteLille;
- if (kontrolKoreliste <> '') then
- begin
- Canvas.TextOut(XPosRute,YPosRute, kontrolKoreliste);
- end
- else
- begin
- Canvas.TextOut(XPosRute,YPosRute, RuteNummer);
- end;
- Canvas.Font.Size := FontSizeKorelisteLille;
- Canvas.TextOut(XPosKoreliste,YPosKoreliste, Koreliste);
- if (Sted = 'DBK') or (Sted = '04') then
- begin
- Canvas.Font.Size := FontSizeSorteringsfelt1;
- Canvas.TextOut(XPosSorteringsfelt1,YPosSorteringsfelt1, DBKbane); // sorteringsoplysning 1
- Canvas.Font.Size := FontSizeSorteringsfelt1;
- Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted); // sorteringsoplysning 2
- end;
- Canvas.Font.Size := FontSizeKommentar;
-
- Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
- Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);
-
- Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar); // Kan ikke lave linieskift (se tidligere kommentar om samme)
- if SmsKode <> '' then
- begin
- Canvas.Font.Size := FontSizeSmskode;
- Canvas.TextOut(XPosKommentar,YPosSmskode, concat('CODE: ', SmsKode));
- end;
- Canvas.Font.Size := FontSizeBoghandler;
- Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);
- EndDoc;
- end;
-end;
procedure TMainForm.radioStorPakkeClick(Sender: TObject);
@@ -2650,448 +2490,144 @@
//UpdateScreen('', '', 'Tjekker forbindelsen...', '', ''); // virker ikke
ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
- // Tjekker urls
- logTekst := 'Tjekker urls.';
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- SkrivScanningLogFil(logTekst);
+ try
+ // Tjekker urls
+ logTekst := 'Tjekker urls.';
+ ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
+ SkrivScanningLogFil(logTekst);
- // Tjekker UrlNormal
- if PanelValg1.Enabled = true then
- begin
- if CheckUrl(UrlNormal) then
- begin
- logTekst := 'UrlNormal accepteret: ' + UrlNormal;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlNormal svarer ikke: ' + UrlNormal;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- TjekUrls := '-'; // markerer at der var fejl
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
- // Tjekker UrlReturDAO
- if PanelValg2.Enabled = true then
- begin
- if CheckUrl(UrlReturDAO) then
- begin
- logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
- // Tjekker UrlReturBoghandler
- if PanelValg3.Enabled = true then
- begin
- if CheckUrl(UrlReturBoghandler) then
- begin
- logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlNormal
+ if PanelValg1.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
+ end;
- // Tjekker UrlBudlevering
- if PanelValg4.Enabled = true then
- begin
- if CheckUrl(UrlBudlevering) then
- begin
- logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlBudlevering svarer ikke: ' + UrlBudlevering;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlReturDAO
+ if PanelValg2.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
+ end;
- // Tjekker UrlPakkeshoplevering
- if PanelValg5.Enabled = true then
- begin
- if CheckUrl(UrlPakkeshoplevering) then
- begin
- logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlPakkeshoplevering svarer ikke: ' + UrlPakkeshoplevering;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlReturBoghandler
+ if PanelValg3.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
+ end;
- // Tjekker UrlReturPakkeshop
- if PanelValg6.Enabled = true then
- begin
- if CheckUrl(UrlReturPakkeshop) then
- begin
- logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlReturPakkeshop svarer ikke: ' + UrlReturPakkeshop;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlBudlevering
+ if PanelValg4.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
+ end;
- // Tjekker UrlManglendeScanninger
- if (PanelValg1.Enabled = true)
- or (PanelValg4.Enabled = true) then
- begin
- if CheckUrl(UrlManglendeScanninger) then
- begin
- logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlManglendeScanninger svarer ikke: ' + UrlManglendeScanninger;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlPakkeshoplevering
+ if PanelValg5.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
+ end;
- // Tjekker UrlPakkeshopManglendeScanninger
- if PanelValg5.Enabled = true then
- begin
- if CheckUrl(UrlPakkeshopManglendeScanninger) then
- begin
- logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlPakkeshopManglendeScanninger svarer ikke: ' + UrlPakkeshopManglendeScanninger;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlReturPakkeshop
+ if PanelValg6.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
+ end;
- // Tjekker UrlPakkeshopManglendeReturScanninger
- if PanelValg6.Enabled = true then
- begin
- if CheckUrl(UrlPakkeshopManglendeReturScanninger) then
- begin
- logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlPakkeshopManglendeReturScanninger svarer ikke: ' + UrlPakkeshopManglendeReturScanninger;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlManglendeScanninger
+ if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
+ begin
+ TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
+ end;
- // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
- if PanelValg7.Enabled = true then
- begin
- if CheckUrl(UrlIndleveringsPakke) then
- begin
- logTekst := 'UrlIndleveringsPakke accepteret: ' + UrlIndleveringsPakke;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlIndleveringsPakke svarer ikke: ' + UrlIndleveringsPakke;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
+ // Tjekker UrlPakkeshopManglendeScanninger
+ if PanelValg5.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
+ end;
- if CheckUrl(UrlIndleveringsPakkeManglendeScanninger) then
- begin
- logTekst := 'UrlIndleveringsPakkeManglendeScanninger accepteret: ' + UrlIndleveringsPakkeManglendeScanninger;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlIndleveringsPakkeManglendeScanninger svarer ikke: ' + UrlIndleveringsPakkeManglendeScanninger;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlPakkeshopManglendeReturScanninger
+ if PanelValg6.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
+ end;
- // Tjekker UrlEKLoverforsel
- if PanelValg1.Enabled = true then
- begin
- if CheckUrl(UrlEKLoverforsel) then
- begin
- logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlEKLoverforsel svarer ikke: ' + UrlEKLoverforsel;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
+ if PanelValg7.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
+ TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
+ end;
+ // Tjekker UrlEKLoverforsel
+ if PanelValg1.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
+ end;
- // Tjekker UrlEKLoverforselPakkeshop
- if PanelValg5.Enabled = true then
- begin
- if CheckUrl(UrlEKLoverforselPakkeshop) then
- begin
- logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlEKLoverforselPakkeshop svarer ikke: ' + UrlEKLoverforselPakkeshop;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- end;
+ // Tjekker UrlEKLoverforselPakkeshop
+ if PanelValg5.Enabled = true then
+ begin
+ TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
+ end;
- // Tjekker UrlFindPakketype
- if CheckUrl(UrlFindPakketype) then
- begin
- logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlFindPakketype svarer ikke: ' + UrlFindPakketype;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
- // Tjekker UrlSendPrograminfo
- if CheckUrl(UrlSendPrograminfo) then
- begin
- logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;
- SkrivScanningLogFil(logTekst);
- end
- else
- begin
- inc(urlFejl); // Optæller antal fejl
- logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- if TjekUrls = '1' then
- begin
- logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
- end;
- SkrivScanningLogFil(logTekst);
- if TjekUrls = '1' then
- begin
- ShowMessage(logTekst);
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
- exit;
- end;
- end;
+ // Tjekker UrlFindPakketype
+ TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
+
+ // Tjekker UrlSendPrograminfo
+ TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
- if urlFejl > 0 then
- begin
- TjekUrls := '-'; // markerer at der var fejl
- end
- else
- begin
- logTekst := 'urls er ok';
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
- SkrivScanningLogFil(logTekst);
- end;
+
+ logTekst := 'urls er ok';
+ ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
+ SkrivScanningLogFil(logTekst);
+
+ Except
+ TjekUrls := '-'; // markerer at der var fejl
+
+ end;
end;
-function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;
-var
- LocalFileTime: TFileTime;
- SystemTime: TSystemTime;
+procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
+const
+ crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
begin
- FileTimeToLocalFileTime(FileTime, LocalFileTime) ;
- FileTimeToSystemTime(LocalFileTime, SystemTime) ;
- Result := SystemTimeToDateTime(SystemTime) ;
+ if TUtils.CheckUrl(Url) then
+
+ begin
+ logTekst := UrlNavn + ' accepteret: ' + Url;
+ SkrivScanningLogFil(logTekst);
+ end
+ else
+ begin
+ inc(urlFejl); // Optæller antal fejl
+ logTekst := UrlNavn + ' svarer ikke: ' + Url;
+ ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
+ if TjekUrls = '1' then
+ begin
+ logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
+ end;
+
+ SkrivScanningLogFil(logTekst);
+
+ if TjekUrls = '1' then
+ begin
+ ShowMessage(logTekst);
+ UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
+ Application.Terminate;
+
+ raise Exception.Create('UrlFejl');
+
+ end;
+ end;
+
end;
+
+
procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
var
SR: TSearchRec;
@@ -3111,7 +2647,7 @@
dt := fileDateToDateTime(SR.Time); // finder filens timestamp for seneste ændring
CreationTime := SR.FindData.ftCreationTime; // finder filens timestamp for oprettelse
- dtCreation := FileTime2DateTime(CreationTime); // finder filens timestamp for oprettelse
+ dtCreation := TUtils.FileTime2DateTime(CreationTime); // finder filens timestamp for oprettelse
// Selvom creation date godt kan være forskellig fra modified date,
// skal vi alligevel altid tjekke filens alder ud fra modified date
// (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
@@ -3171,16 +2707,6 @@
if Farve <> '' then
begin
MainForm.Color := TUtils.HexToTColor(Farve);
-// 20150312: start
-(*
- end
- else
- begin
- ShowMessage('Programmet afbrydes...');
- UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
- Application.Terminate;
-*)
-// 20150312: slut
end;
if (Budlevering1.Checked) then
begin
@@ -3244,27 +2770,14 @@
procedure TMainForm.PanelValgAClick(Sender: TObject);
begin
-// 20150311: start
-(*
- if PanelValgA.Color = clBtnFace then
- begin
- AutomatiskValg1.Checked := true;
- PanelValgA.Color := clGreen;
- PanelValgA.Font.Color := clWhite;
- end
- else
- begin
- AutomatiskValg1.Checked := false;
- PanelValgA.Color := clBtnFace;
- PanelValgA.Font.Color := clWindowText;
- end;
-*)
// Skal ikke toggle men bare sætte funktionen on
// Fravælges ved at vælge en scanningstype
- AutomatiskValg1.Checked := true;
- PanelValgA.Color := clGreen;
- PanelValgA.Font.Color := clWhite;
-// 20150311: slut
+ AutomatiskValg1.Checked := true;
+ PanelValgA.Color := clGreen;
+ PanelValgA.Font.Color := clWhite;
+
+
+
end;
procedure TMainForm.Pakkernormal1Click(Sender: TObject);
@@ -3337,7 +2850,7 @@
Falsk := False;
- if (Printer.Printers.Count = 0) then
+ if (LabelPrint.GetPrinterCount() = 0) then
begin
ShowMessage('Der er ikke installeret en printer på denne PC.');
end
@@ -3352,7 +2865,7 @@
DBKbane := '999';
Leveringssted := 'XXX';
PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
- CheckPrintQue('Test');
+ LabelPrint.CheckPrintQue('Test', PrinterNavn);
end;
FocusControl(StregkodeST);
end;
@@ -3361,7 +2874,7 @@
begin
if (TjekPrinter = '1') then
begin
- CheckPrintQue('Timer');
+ LabelPrint.CheckPrintQue('Timer', PrinterNavn);
end
else
begin
@@ -3379,7 +2892,7 @@
tekst, filversion : String;
begin
- filversion := Sto_GetFmtFileVersion('');
+ filversion := TUtils.Sto_GetFmtFileVersion('');
tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';
tekst := tekst+crlf+crlf;
@@ -3505,7 +3018,7 @@
end
else
begin
- ShowMessage('Acrobat Reader er ikke installeret!');
+ ShowMessage('Adobe Reader er ikke installeret!');
end;
end
else
@@ -3571,10 +3084,14 @@
radioStorPakke.Enabled := false;
radioLillePakke.Enabled := false;
ListBox1.Visible := true;
- OpdaterListenButton01.Enabled := true;
- EKLoverforsel.Enabled := true;
+ BtnOpdaterListen.Enabled := true;
+ BtnEKLoverforsel.Enabled := true;
InitLillePakke();
ListBox1.Items.Clear;
+
+ chkForstorTilDirekte.Checked := false;
+ chkForstorTilDirekte.Enabled := false;
+
if BladhusSted = 0 then
begin
IndlesScanningLogFil();
@@ -3605,7 +3122,11 @@
ListBox1.Visible := true;
ListBox1.Items.Clear;
ListBox2.Items.Clear;
- EKLoverforsel.Enabled := false;
+ BtnEKLoverforsel.Enabled := false;
+
+ chkForstorTilDirekte.Checked := false;
+ chkForstorTilDirekte.Enabled := false;
+
InitLillePakke();
end;
@@ -3631,7 +3152,11 @@
ListBox1.Visible := true;
ListBox1.Items.Clear;
ListBox2.Items.Clear;
- EKLoverforsel.Enabled := false;
+ BtnEKLoverforsel.Enabled := false;
+
+ chkForstorTilDirekte.Checked := false;
+ chkForstorTilDirekte.Enabled := false;
+
InitLillePakke();
end;
@@ -3658,11 +3183,15 @@
ListBox1.Visible := true;
ListBox1.Items.Clear;
BtnDownloadKontrolfil.Enabled := false;
- OpdaterListenButton01.Enabled := true;
- DownloadButton03.Visible := false;
- EKLoverforsel.Enabled := false;
+ BtnOpdaterListen.Enabled := true;
+ BtnDownloadRuteskiftFil.Visible := false;
+ BtnEKLoverforsel.Enabled := false;
IdFTP1.Passive := true;
IdFTP1.PassiveUseControlHost := true;
+
+ chkForstorTilDirekte.Checked := false;
+ chkForstorTilDirekte.Enabled := true;
+
if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
begin
IndlesScanningLogFil();
@@ -3694,9 +3223,12 @@
ListBox1.Visible := true;
ListBox1.Items.Clear;
BtnDownloadKontrolfil.Enabled := false;
- OpdaterListenButton01.Enabled := true;
+ BtnOpdaterListen.Enabled := true;
- EKLoverforsel.Enabled := true;
+ BtnEKLoverforsel.Enabled := true;
+
+ chkForstorTilDirekte.Checked := false;
+ chkForstorTilDirekte.Enabled := true;
InitLillePakke();
IndlesScanningLogFil();
@@ -3731,8 +3263,13 @@
ListBox1.Visible := true;
ListBox1.Items.Clear;
BtnDownloadKontrolfil.Enabled := false;
- OpdaterListenButton01.Enabled := true;
- EKLoverforsel.Enabled := false;
+ BtnOpdaterListen.Enabled := true;
+ BtnEKLoverforsel.Enabled := false;
+
+ chkForstorTilDirekte.Checked := false;
+ chkForstorTilDirekte.Enabled := false;
+
+
InitLillePakke();
IndlesScanningLogFil();
if BladhusSted = 0 then
@@ -3778,8 +3315,13 @@
ListBox1.Items.Clear();
BtnDownloadKontrolfil.Enabled := false;
- OpdaterListenButton01.Enabled := true;
- EKLoverforsel.Enabled := false;
+ BtnOpdaterListen.Enabled := true;
+ BtnEKLoverforsel.Enabled := false;
+
+ chkForstorTilDirekte.Checked := false;
+ chkForstorTilDirekte.Enabled := false;
+
+
InitLillePakke();
IndlesScanningLogFil();
if BladhusSted = 0 then
@@ -3817,60 +3359,7 @@
// 20150310: slut
end;
-///
-/// This function reads the file resource of "FileName" and returns
-/// the version number as formatted text.
-///
-/// Sto_GetFmtFileVersion() = '4.13.128.0'
-/// Sto_GetFmtFileVersion('', '%.2d-%.2d-%.2d') = '04-13-128'
-///
-/// If "Fmt" is invalid, the function may raise an
-/// EConvertError exception.
-/// Full path to exe or dll. If an empty
-/// string is passed, the function uses the filename of the
-/// running exe or dll.
-/// Format string, you can use at most four integer
-/// values.
-/// Formatted version number of file, '' if no version
-/// resource found.
-function TMainForm.Sto_GetFmtFileVersion(const FileName: String = ''): String;
-var
- sFileName: String;
- iBufferSize: DWORD;
- iDummy: DWORD;
- pBuffer: Pointer;
- pFileInfo: Pointer;
- iVer: array[1..4] of Integer;
-begin
- // set default value
- Result := '';
- // get filename of exe/dll if no filename is specified
- sFileName := Trim(FileName);
- if (sFileName = '') then
- sFileName := GetModuleName(HInstance);
- // get size of version info (0 if no version info exists)
- iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy);
- if (iBufferSize > 0) then
- begin
- GetMem(pBuffer, iBufferSize);
- try
- // get fixed file info (language independent)
- GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer);
- VerQueryValue(pBuffer, '\', pFileInfo, iDummy);
- // read version blocks
- iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);
- iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);
- iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);
- iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);
- finally
- FreeMem(pBuffer);
- end;
-
- // format result string
- Result := Format('%d.%d.%d.%d', [iVer[1], iVer[2], iVer[3], iVer[4]]);
- end;
-end;
procedure TMainForm.PlaySound(filename : PWideChar);
begin
@@ -3941,7 +3430,7 @@
CheckCode();
end;
-procedure TMainForm.EKLoverforselClick(Sender: TObject);
+procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
var
WebSvar : String;
URLStr : String;
@@ -3951,19 +3440,19 @@
status, kommentar : String;
begin
- EKLoverforsel.Enabled := false;
+ BtnEKLoverforsel.Enabled := false;
ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');
logTekst := 'Overfører de scannede pakker til EKL';
SkrivScanningLogFil(logTekst);
StedKode := Sted;
URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
-// 20150330: start
+
if PanelValg5.Color = clGreen then
begin
URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
end;
-// 20150330: slut
+
try
//raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
@@ -4014,7 +3503,7 @@
end;
end;
- EKLoverforsel.Enabled := true;
+ BtnEKLoverforsel.Enabled := true;
ListBox1.SetFocus; // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
@@ -4546,7 +4035,7 @@
ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
end;
-procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);
+procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
const
crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
@@ -4555,7 +4044,7 @@
ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
end;
-procedure TMainForm.DownloadButton03Click(Sender: TObject);
+procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
begin
if (getProddag() = 'lørdag') then
begin
@@ -4565,128 +4054,6 @@
end;
-// ToDo: PrintPakkeshopLabel()
-procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
-var
- XForm, XFormOld: TXForm; //Bruges til rotate X-formation
- Angle: integer;
- gMode: integer;
- Dirigering: string;
-
-begin
- with Printer do
- begin
- BeginDoc();
-
-
- Canvas.Font.Size := 16;
- Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + ' ' + PakkeshopLabel.Overskrift);
-
-
-
- Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
- Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
- Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
-
-
- Canvas.Font.Size := 9;
- Canvas.TextOut(110, 240, 'Pakkeshop:');
- Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
- Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
- Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
-
- Canvas.TextOut(350, 240, 'Afsender:');
- Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
- Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
- Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
-
- Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
- if ( PakkeshopLabel.Koreliste <> '') then
- begin
- Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
- end;
-
-
- Canvas.Font.Size := 12;
- Canvas.TextOut(15, 370, Dirigering);
-
-
-
-
-
- //Tegn adskillelses linier
- Canvas.Pen.Width := 2;
- //Øverste linie
- Canvas.MoveTo(20,80);
- Canvas.LineTo(600,80);
-
- // Midterste linie
- Canvas.MoveTo( 20, 240);
- Canvas.LineTo(600, 240);
-
- //Nederste linie
- Canvas.MoveTo( 20, 370);
- Canvas.LineTo(600, 370);
-
-
- //Tegn skrå streger over afsender
- Canvas.Pen.Width := 1;
- Canvas.MoveTo(600, 250);
- Canvas.LineTo(350, 360);
- Canvas.MoveTo(600, 360);
- Canvas.LineTo(350, 250);
-
-
-
-
- // Resten af rutinen vedr genering og placering af Barcode
-
- BarCode.BarCodeType := bcCode128;
- BarCode.Code128Subset := csCodeC;
- BarCode.Code := PakkeshopLabel.Stregkode;
- BarCode.Validate(True);
-
- //Start X-formation
- //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
- GetWorldTransform(Canvas.Handle, XFormOld);
-
- Angle := 270;
- XForm.eM11 := Cos(DegToRad(Angle));
- XForm.eM12 := Sin(DegToRad(Angle));
- XForm.eM21 := -Sin(DegToRad(Angle));
- XForm.eM22 := Cos(DegToRad(Angle));
- XForm.eDx := 0;
- XForm.eDy := 0;
-
- gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
- SetWorldTransform(Canvas.Handle, XForm);
-
- // PaintToCanvasSize arbejder i Inches
- // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
- //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
-
- BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
-
-
- SetWorldTransform(Canvas.Handle, XFormOld);
- SetGraphicsMode(Canvas.Handle, gMode);
-
- EndDoc();
- end;
-
-
-end;
-
-function GetPixelsPerInchX(): Integer;
-begin
- Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
-end;
-
-function GetPixelsPerInchY(): Integer;
-begin
- Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
-end;
-
procedure TMainForm.IndlesManglendeScanninger();
var
@@ -4698,7 +4065,12 @@
stregkode, modtagernavn, modtageradresse, kommentar : string;
pakketype, tjekkodestatus : String;
pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
- pakketyper : TStrings;
+ //pakketyper : TStrings;
+ pakketyper : TDictionary;
+ tmpAntal : Integer;
+
+
+
antlin : Integer;
antlinIdag, antlinSenere : Integer;
@@ -4706,8 +4078,10 @@
XmlFelter : TStrings;
begin
+
+
XmlFelter := TStringList.Create;
- pakketyper := TStringList.Create;
+ pakketyper := TDictionary.Create;
linienr := 0;
ListBox2.Clear;
ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
@@ -4722,6 +4096,8 @@
StedKode := Sted;
end;
+ Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
+
if (Scanningtype = '7') then
@@ -4808,6 +4184,9 @@
SetLength(stregkoderMedTjekkodeArray, 0); // reset fra tidligere brug
SetLength(stregkoderMedTjekkodeArray, antlin); // sæt antal elementer i array
+
+ Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
+
logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
if (antlinSenere > 0) then
begin
@@ -4843,10 +4222,13 @@
if not VarIsNull(Node.NodeValue) then
pakketype := Node.NodeValue;
antalFelterFundet := antalFelterFundet + 1;
- if (pakketyper.values[pakketype] <> '') then
- pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)
+ if ( pakketyper.ContainsKey(pakketype) ) then
+ begin
+ pakketyper.TryGetValue(pakketype, tmpAntal);
+ pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
+ end
else
- pakketyper.values[pakketype] := '1';
+ pakketyper.Add(pakketype, 1);
end;
if Node.NodeName = 'TjekkodeStatus' then begin
if not VarIsNull(Node.NodeValue) then
@@ -4854,8 +4236,7 @@
antalFelterFundet := antalFelterFundet + 1;
if (tjekkodestatus = '-1') then
begin
-// 20150306: start
-// stregkoderMedTjekkodeArray[linienr] := stregkode;
+
if (pos(' ', stregkode) > 0) then
begin
stregkoderMedTjekkodeArray[linienr] := TUtils.split(stregkode, ' ', 2); // Fjerner lige en evt. fremtidig dato fra feltet
@@ -4882,13 +4263,19 @@
end;
end;
end;
- for pakketypeix := 0 to pakketyper.Count-1 do
- begin
- ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');
- end;
- // Free up the list object
+
+ for pakketype in pakketyper.Keys do
+ begin
+ pakketyper.TryGetValue(pakketype, tmpAntal);
+ ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
+ end;
+
+ // Free up the dictionary object
pakketyper.Free;
+
+
+
// ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');
logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
if (antlinSenere > 0) then
@@ -5389,25 +4776,6 @@
result := svar;
end;
-function TMainForm.GetCurrentPrinterHandle: THandle;
-var
- Device, Driver, Port: array[0..255] of Char;
- hDeviceMode: THandle;
-begin
- Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
- if not OpenPrinter(@Device, Result, nil) then
- RaiseLastWin32Error;
-end;
-
-function TMainForm.SavePChar(p: PChar): PChar;
-const
- error: PChar = 'Nil';
-begin
- if not Assigned(p) then
- Result := error
- else
- Result := p;
-end;
procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
begin
@@ -5423,150 +4791,38 @@
-
-function TMainForm.CheckUrl(url:string):boolean;
-var
- hSession, hfile: hInternet;
- dwindex,dwcodelen :dword;
- dwcode:array[1..20] of char;
- res : pchar;
-begin
- if pos('http://',lowercase(url))=0 then
- url := 'http://'+url;
- Result := false;
- hSession := InternetOpen('InetURL:/1.0',
- INTERNET_OPEN_TYPE_PRECONFIG,
- nil,
- nil,
- 0);
- if assigned(hsession) then
- begin
- hfile := InternetOpenUrl(hsession,
- pchar(url),
- nil,
- 0,
- INTERNET_FLAG_RELOAD,
- 0);
- dwIndex := 0;
- dwCodeLen := 10;
- HttpQueryInfo(hfile,
- HTTP_QUERY_STATUS_CODE,
- @dwcode,
- dwcodeLen,
- dwIndex);
- res := pchar(@dwcode);
- result:= (res ='200') or (res ='302');
- if assigned(hfile) then
- InternetCloseHandle(hfile);
- InternetCloseHandle(hsession);
- end;
-
+//Nedarvet fra IParentForm
+procedure TMainForm.LogMessage( msg : string);
+begin
+ ListBox1.Items.Insert(0, msg);
+ SkrivScanningLogFil(msg);
end;
-procedure TMainForm.CheckPrintQue(tjektype : string);
-type
- TJobs = array [0..1000] of JOB_INFO_1;
- PJobs = ^TJobs;
-var
- hPrinter: THandle;
- bytesNeeded, numJobs, i: Cardinal;
- pJ: PJobs;
- printerTxt, statusTxt, dokumentTxt: String;
+//Nedarvet fra IParentForm
+procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
begin
-// tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1
-// 'Test' skal vise alarmlinie, samt opdatere listbox1
-// 'Timer' skal kun vise alarmlinie
-
- if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then
+ PrinterstatusStaticText1.Caption := txt;
+ if (alert) then
begin
- printerTxt := 'Der er fravalgt printer i dette program';
- ListBox1.Items.Insert(0,printerTxt);
- SkrivScanningLogFil(printerTxt);
- end
- else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then
- begin
- printerTxt := 'Der er ikke installeret en printer på denne PC';
- ListBox1.Items.Insert(0,printerTxt);
- SkrivScanningLogFil(printerTxt);
+ PrinterstatusStaticText1.Font.Color := clBlack;
+ PrinterstatusStaticText1.Color := MainForm.Color;
+ PrinterstatusStaticText1.Transparent := True;
end
else
begin
- hPrinter := GetCurrentPrinterHandle;
- try
- EnumJobs(hPrinter, 0, 1000, 1, nil, 0, bytesNeeded, numJobs);
- pJ := AllocMem(bytesNeeded);
- if not EnumJobs(hPrinter, 0, 1000, 1, pJ, bytesNeeded, bytesNeeded, numJobs) then
- RaiseLastWin32Error;
-
- if numJobs = 0 then
- begin
- if (tjektype = 'Test') then
- begin
- logTekst := printerTxt + ': Ingen dokumenter i kø';
- ListBox1.Items.Insert(0,logTekst);
- SkrivScanningLogFil(logTekst);
- end;
- PrinterstatusStaticText1.Caption := '';
- PrinterstatusStaticText1.Color := MainForm.Color;
- end
- else // så er der kø til printeren
- begin
- printerTxt := SavePChar(pJ^[0].pPrinterName);
- if (tjektype = 'Opstart') or (tjektype = 'Test') then
- begin
- logTekst := IntToStr(numJobs) + ' dokument(er) i kø til printer: ' + printerTxt;
- ListBox1.Items.Insert(0,logTekst);
- SkrivScanningLogFil(logTekst);
- end;
- for i := 0 to Pred(numJobs) do
- begin
- printerTxt := SavePChar(pJ^[i].pPrinterName);
- statusTxt := 'Ukendt';
- if (IntToStr(pJ^[i].Status) = '0') then
- statusTxt := 'Venter...';
- if (IntToStr(pJ^[i].Status) = '4096') then
- statusTxt := 'Printer...';
- if (IntToStr(pJ^[i].Status) = '8210') then
- statusTxt := 'Printerfejl';
- if (IntToStr(pJ^[i].Status) = '8214') then
- statusTxt := 'Sletter print...';
-
- dokumentTxt := SavePChar(pJ^[i].pDocument);
- if (dokumentTxt = '') then
- dokumentTxt := 'Uden navn';
-
- if (tjektype = 'Opstart') or (tjektype = 'Test') then
- begin
- logTekst := Format('Printer %s, Dokument %d: %s, Status (%d): %s',
- [printerTxt, i+1, dokumentTxt, pJ^[i].Status, statusTxt]);
- ListBox1.Items.Insert(0,logTekst);
- SkrivScanningLogFil(logTekst);
- end;
-
- if (i = 0) then
- begin
- PrinterstatusStaticText1.Caption := printerTxt + ': ' + IntToStr(numJobs) + ' dokument(er) in kø. Dokument status: ' + statusTxt;
- PrinterstatusStaticText1.Font.Color := clBlack;
- PrinterstatusStaticText1.Color := MainForm.Color;
- PrinterstatusStaticText1.Transparent := True;
- if (numJobs > 3) then
- begin
- PrinterstatusStaticText1.Font.Color := clRed;
- PrinterstatusStaticText1.Color := clWhite;
- PrinterstatusStaticText1.Transparent := true;
- end;
- end;
-
- end;
- end
- finally
- ClosePrinter(hPrinter);
- end;
+ PrinterstatusStaticText1.Font.Color := clRed;
+ PrinterstatusStaticText1.Color := clWhite;
+ PrinterstatusStaticText1.Transparent := true;
end;
end;
+//Nedarvet fra IParentForm
+function TMainForm.GetFormObject() : TForm;
+begin
+ Result := self;
+end;
end.