--- dao/DelphiScanner/Main.pas 2015/08/26 19:52:38 2682 +++ dao/DelphiScanner/Main.pas 2016/08/22 18:27:30 3099 @@ -1,24 +1,38 @@ 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, Registry, ShellApi, ClipBrd, Buttons, wininet, + IdExplicitTLSClientServerBase, IdFTP, IdException, + ShellApi, ClipBrd, Buttons, wininet, UITypes, - PakkeshopLabels, - StBarC, - Math, // DegToRad() bruges i PrintPakkeshopLabel - Utils + LabelData, + Utils, + ParentForm, + LabelPrint, + Configuration, + Vcl.Imaging.pngimage, + Generics.Collections, + TimingHelper ; type - TMainForm = class(TForm) + TMainForm = class(TForm, IParentForm) StregkodeST: TStaticText; RuteNummerST: TStaticText; BoghandlerNavnST: TStaticText; @@ -26,12 +40,11 @@ XMLDocument1: TXMLDocument; ApplicationEvents1: TApplicationEvents; chkSporgEfterKunde: TCheckBox; - KommentarST: TStaticText; MainMenu1: TMainMenu; N1: TMenuItem; - Pakkernormal1: TMenuItem; - ReturpakkerfraDAO1: TMenuItem; - Returpakkerfraboghandler1: TMenuItem; + menuNatXpress1: TMenuItem; + menuNatxpressReturDAO1: TMenuItem; + menuNatxpressReturfraKunde1: TMenuItem; Hjlp1: TMenuItem; Om1: TMenuItem; Testforbindelsen1: TMenuItem; @@ -44,28 +57,28 @@ radioStorPakke: TRadioButton; radioLillePakke: TRadioButton; N4: TMenuItem; - Storepakker1: TMenuItem; - Smpakker1: TMenuItem; + menuStorePakker: TMenuItem; + menuSmaaPakker: TMenuItem; Panel1: TPanel; Testlyd2: TMenuItem; Button1: TButton; Testlyd1: TMenuItem; ListBox1: TListBox; - Budlevering1: TMenuItem; - DownloadButton01: TButton; + menuDaoDirekte1: TMenuItem; + BtnDownloadKontrolfil: TButton; IdFTP1: TIdFTP; Image1: TImage; ListBox2: TListBox; - OpdaterListenButton01: TButton; - UploadButton01: TButton; - DownloadButton03: TButton; - Pakkeshoplevering1: TMenuItem; + BtnOpdaterListen: TButton; + BtnUploadLogfil: TButton; + BtnDownloadRuteskiftFil: TButton; + menuPakkeshop1: TMenuItem; PakkeshopText1: TStaticText; btnNulstil: TButton; - Returpakkerfrapakkeshop1: TMenuItem; + menuPakkeshopRetur1: TMenuItem; Altidprintepakkelabel1: TMenuItem; chkAltidPrintLabel: TCheckBox; - EKLoverforsel: TButton; + BtnEKLoverforsel: TButton; N5: TMenuItem; Uploadlogfil1: TMenuItem; Manual1: TMenuItem; @@ -73,8 +86,8 @@ Timer1: TTimer; chkScanTjekkode: TCheckBox; Scanogstjekkoden1: TMenuItem; - Automatisktjekkodestyring1: TMenuItem; - Automatiskvalg1: TMenuItem; + menuAutomatiskTjekkodeStyring: TMenuItem; + menuAutomatiskvalg1: TMenuItem; PanelValgA: TPanel; PanelValg1: TPanel; PanelValg2: TPanel; @@ -92,18 +105,16 @@ PanelManglendePakker5: TPanel; PanelManglendePakker6: TPanel; menuIndlevering: TMenuItem; + chkForstorTilDirekte: TCheckBox; + chkEmballageRepareret: TCheckBox; + KommentarST: TLabel; + chkUdenforSpecifikation: 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 AdobeReaderExists(): Boolean; - function FileTime2DateTime(FileTime: TFileTime): TDateTime; - function CheckUrl(url:string):boolean; procedure PlaySound(filename : PWideChar); procedure StartScreen(); @@ -119,23 +130,23 @@ procedure radioStorPakkeClick(Sender: TObject); procedure radioLillePakkeClick(Sender: TObject); procedure chkSporgEfterKundeClick(Sender: TObject); - procedure Pakkernormal1Click(Sender: TObject); + procedure menuNatXpress1Click(Sender: TObject); procedure Testforbindelsen1Click(Sender: TObject); procedure Testprinter1Click(Sender: TObject); procedure Om1Click(Sender: TObject); procedure Lukprogrammet1Click(Sender: TObject); procedure Sprgefterboghandlernummer1Click(Sender: TObject); - procedure ReturpakkerfraDAO1Click(Sender: TObject); - procedure Returpakkerfraboghandler1Click(Sender: TObject); - procedure Storepakker1Click(Sender: TObject); - procedure Smpakker1Click(Sender: TObject); + procedure menuNatxpressReturDAO1Click(Sender: TObject); + procedure menuNatxpressReturfraKunde1Click(Sender: TObject); + procedure menuStorePakkerClick(Sender: TObject); + procedure menuSmaaPakkerClick(Sender: TObject); procedure Testlyd1Click(Sender: TObject); procedure Testlyd2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); - procedure Budlevering1Click(Sender: TObject); - procedure DownloadButton01Click(Sender: TObject); - procedure OpdaterListenButton01Click(Sender: TObject); + procedure menuDaoDirekte1Click(Sender: TObject); + procedure BtnDownloadKontrolfilClick(Sender: TObject); + procedure BtnOpdaterListenClick(Sender: TObject); procedure DownloadBladhusRuteskiftfil(); procedure DownloadBladhusKontrolfil(); procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String); @@ -143,11 +154,11 @@ procedure UploadInifilTilDAO(); procedure SletStregkodelinieFraListboks2(StregKode : String); procedure FormDestroy(Sender: TObject); - procedure UploadButton01Click(Sender: TObject); - procedure DownloadButton03Click(Sender: TObject); - procedure Pakkeshoplevering1Click(Sender: TObject); + procedure BtnUploadLogfilClick(Sender: TObject); + procedure BtnDownloadRuteskiftFilClick(Sender: TObject); + procedure menuPakkeshop1Click(Sender: TObject); procedure btnNulstilClick(Sender: TObject); - procedure Returpakkerfrapakkeshop1Click(Sender: TObject); + procedure menuPakkeshopRetur1Click(Sender: TObject); procedure InitNatxpresslevering(); procedure InitReturFraDao(); procedure InitReturFraKunde(); @@ -158,15 +169,15 @@ 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); procedure Scanogstjekkoden1Click(Sender: TObject); procedure chkScanTjekkodeClick(Sender: TObject); - procedure Automatisktjekkodestyring1Click(Sender: TObject); + procedure menuAutomatiskTjekkodeStyringClick(Sender: TObject); procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String); - procedure Automatiskvalg1Click(Sender: TObject); + procedure menuAutomatiskvalg1Click(Sender: TObject); procedure PanelValgAClick(Sender: TObject); procedure PanelValg1Click(Sender: TObject); procedure PanelValg2Click(Sender: TObject); @@ -180,11 +191,19 @@ 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 Msg( msg : string); + procedure LogMessage( msg : string); + procedure SetPrinterstatusText( txt: string; alert: boolean); + function GetFormObject() : TForm; + function GetXMLDocument() : TXMLDocument; + private @@ -193,48 +212,18 @@ SkrivLog : String; Sted : String; StedNavn : String; - Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,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; -// 20150317: start - ScannetOkTilTjekkodeLyd : String; -// 20150317: slut - 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; + + Scanningtype, Pakketype : String; + + + Url : String; + + Farve : String; + + Titel : String; + + + Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String; BladhusSted : Integer; BladhusStedKode : Array of string; @@ -246,13 +235,14 @@ logTekst : string; PakkeshopStregkode, PakkeshopTjekkode : String; BoghandlerStregkode, BoghandlerTjekkode : String; - TjekUrls : String; - Barcode : TStBarcode; + Config : TConfiguration; + + 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(); @@ -263,12 +253,11 @@ function TjekKoreliste(var RuteNummer, Koreliste : string) : string; procedure VisAlarmSkaerm(strMessage: string); + public { Public declarations } end; - function GetPixelsPerInchX(): Integer; - function GetPixelsPerInchY(): Integer; var MainForm: TMainForm; @@ -284,14 +273,19 @@ {$R *.dfm} +//FormCreate kaldes før InitForm + procedure TMainForm.InitForm(Farve,Titel,Url : String); begin -// 20150309: startr + IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect + IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read + + + + StaticTextManglendePakker.Caption := ''; -// 20150309: slut - Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component PanelValg1.Color := clBtnFace; if PanelValg1.Enabled = true then @@ -335,7 +329,7 @@ PanelValg7.Font.Color := clWindowText; end; - OpdaterListenButton01.Enabled := false; + BtnOpdaterListen.Enabled := false; if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then begin @@ -363,9 +357,11 @@ else if (Sted = 'BR') then begin StedNavn := 'Brøndby: '; end else if (Sted = 'BK') then - begin StedNavn := 'Bladkompagniet: '; end + begin StedNavn := 'Bladkompagniet/ISV: '; end + else if (Sted = 'TK') then + begin StedNavn := 'BK/Trykkompagniet: '; end else if (Sted = 'DBK') then - begin StedNavn := 'DBK Køge: '; end + begin StedNavn := 'DBK/Køge: '; end else if (Sted = '1') then begin StedNavn := 'Ålborg: '; end else if (Sted = '2') then @@ -399,7 +395,7 @@ PrinterstatusStaticText1.Color := MainForm.Color; end; - if PakkeshopLevering1.Checked or Pakkernormal1.Checked then + if menuPakkeshop1.Checked or menuNatXpress1.Checked then PakkeshopText1.Visible := true else PakkeshopText1.Visible := false; @@ -410,7 +406,7 @@ if (Scanningtype = '1') or (Scanningtype = '5') then begin - if (ScanTjekkode = '1') then + if (Config.ScanTjekkode = '1') then begin chkScanTjekkode.Checked := true; chkScanTjekkode.Enabled := true; @@ -424,7 +420,7 @@ end; end; - if Automatisktjekkodestyring1.Checked then + if menuAutomatiskTjekkodeStyring.Checked then begin chkScanTjekkode.Enabled := false; Scanogstjekkoden1.Enabled := false; @@ -460,6 +456,7 @@ end; end; + end; procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject); @@ -481,9 +478,9 @@ StregkodeST.Caption := Stregkode; end; -procedure TMainForm.Automatisktjekkodestyring1Click(Sender: TObject); +procedure TMainForm.menuAutomatiskTjekkodeStyringClick(Sender: TObject); begin - if Automatisktjekkodestyring1.Checked then + if menuAutomatiskTjekkodeStyring.Checked then begin chkScanTjekkode.Enabled := false; Scanogstjekkoden1.Enabled := false; @@ -496,39 +493,27 @@ end; -procedure TMainForm.Automatiskvalg1Click(Sender: TObject); +procedure TMainForm.menuAutomatiskvalg1Click(Sender: TObject); begin -// 20150317: start -(* - if Automatiskvalg1.Checked 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; + menuAutomatiskvalg1.Checked := true; PanelValgA.Color := clGreen; PanelValgA.Font.Color := clWhite; -// 20150317: slut 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; @@ -554,75 +539,35 @@ // Sætter lige en default panel størrelse MainForm.ClientWidth := 1000; - MainForm.ClientHeight := 750; + MainForm.ClientHeight := 920; + + 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',''); - UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s'); - UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s'); - UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s'); - UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s'); - UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s'); - UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s'); - UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s'); - UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s'); - - UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s'); - - UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s'); - UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s'); - UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s'); - UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s'); - - UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s'); - - - 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'); - TitelReturDAO := ReadString('Settings','TitelReturDAO','Returforsendelse fra DAO'); - FarveReturBoghandler := ReadString('Settings','FarveReturBoghandler','F2F5A9'); - TitelReturBoghandler := ReadString('Settings','TitelReturBoghandler','Returforsendelse fra boghandler'); - FarveBudlevering := ReadString('Settings','FarveBudlevering','2E9AFE'); - TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker'); - FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF'); - TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker'); - - FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC'); - TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop'); - - FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB'); - TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode'); - - - SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0'); - ScanTjekkode := ReadString('Settings','ScanTjekkode','0'); - ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1'); - Scanningtype := ReadString('Settings','Scanningtype','A'); - Pakketype := ReadString('Settings','Pakketype','0'); - TestFunktionen := ReadString('Settings','TestFunktion','0'); - AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav'); - ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav'); - ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav'); - - ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav'); - - PrinterNavn := ReadString('Settings','PrinterNavn',''); - TjekPrinter := ReadString('Settings','TjekPrinter','1'); - TjekUrls := ReadString('Settings','TjekUrls','2'); + + Scanningtype := 'A'; //hardcoded + Pakketype := '0'; + + + + 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 @@ -634,83 +579,15 @@ if Scanningtype = 'A' then begin - Automatiskvalg1.Checked := true; + menuAutomatiskvalg1.Checked := true; Scanningtype := '1'; PanelValgA.Color := clGreen; 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 + + if Config.SporgEfterBoghandler = '1' then begin chkSporgEfterKunde.Checked := true; Sprgefterboghandlernummer1.Checked := true; @@ -721,7 +598,7 @@ Sprgefterboghandlernummer1.Checked := false; end; - if ScanTjekkode = '1' then + if Config.ScanTjekkode = '1' then begin chkScanTjekkode.Checked := true; Scanogstjekkoden1.Checked := true; @@ -732,9 +609,9 @@ Scanogstjekkoden1.Checked := false; end; - if ScanTjekkodeAutomatik = '1' then + if Config.ScanTjekkodeAutomatik = '1' then begin - Automatisktjekkodestyring1.Checked := true; + menuAutomatiskTjekkodeStyring.Checked := true; chkScanTjekkode.Enabled := false; Scanogstjekkoden1.Enabled := false; end; @@ -764,6 +641,9 @@ {$IfDef STED_BK} SpecialVersionSted := 'BK'; {$EndIf} +{$IfDef STED_TK} + SpecialVersionSted := 'TK';// BK-Trykkompagniet +{$EndIf} {$IfDef STED_DBK} SpecialVersionSted := 'DBK'; {$EndIf} @@ -774,7 +654,6 @@ SpecialVersionSted := 'NS'; {$EndIf} - //SpecialVersionSted := '01'; // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE) //SpecialVersionSted := '02'; // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK) //SpecialVersionSted := '03'; // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE) @@ -790,21 +669,34 @@ // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor) // ændrer vi Sted og Scanningtype her: -// 20150313: start if SpecialVersionSted = 'NS' then begin - SpecialVersionSted := '01'; - SpecialVersionScanningtype := '4'; + //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg + //SpecialVersionScanningtype := '4'; + + //FarveNormal := 'A9F5A9'; // her kan vi evt. overrule ini fil + Sted := SpecialVersionSted; + // her skal vi også disable de knapper BK ikke kan bruge + PanelValg2.Enabled := false; + PanelValg2.Font.Color := clInactiveCaption; + PanelValg3.Enabled := false; + PanelValg3.Font.Color := clInactiveCaption; + //PanelValg6.Enabled := false; + //PanelValg6.Font.Color := clInactiveCaption; + + // her skal vi også disable de menupunkter FD ikke kan bruge + menuNatxpressReturDAO1.Enabled := false; + menuNatxpressReturfraKunde1.Enabled := false; + + //Returpakkerfrapakkeshop1.Enabled := false; end; + if SpecialVersionSted = 'FD' then begin - SpecialVersionSted := '03'; - SpecialVersionScanningtype := '4'; - end; -// 20150313: slut + //SpecialVersionSted := '03'; //fra før at FD overtog scanning + //SpecialVersionScanningtype := '4'; + - if SpecialVersionSted = 'BK' then - begin //FarveNormal := 'A9F5A9'; // her kan vi evt. overrule ini fil Sted := SpecialVersionSted; // her skal vi også disable de knapper BK ikke kan bruge @@ -812,44 +704,34 @@ PanelValg2.Font.Color := clInactiveCaption; PanelValg3.Enabled := false; PanelValg3.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; - if SpecialVersionScanningtype = 'A' then - begin - Scanningtype := '1'; - end - else - begin - Scanningtype := SpecialVersionScanningtype; - end; + //PanelValg6.Enabled := false; + //PanelValg6.Font.Color := clInactiveCaption; + + // her skal vi også disable de menupunkter FD ikke kan bruge + menuNatxpressReturDAO1.Enabled := false; + menuNatxpressReturfraKunde1.Enabled := false; + + //Returpakkerfrapakkeshop1.Enabled := false; + end; - if SpecialVersionSted = 'DBK' then + if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then begin //FarveNormal := 'A9F5A9'; // her kan vi evt. overrule ini fil Sted := SpecialVersionSted; - // her skal vi også disable de knapper DBK ikke kan bruge + // her skal vi også disable de knapper BK ikke kan bruge PanelValg2.Enabled := false; PanelValg2.Font.Color := clInactiveCaption; PanelValg3.Enabled := false; PanelValg3.Font.Color := clInactiveCaption; - PanelValg5.Enabled := false; - PanelValg5.Font.Color := clInactiveCaption; - PanelValg6.Enabled := false; - PanelValg6.Font.Color := clInactiveCaption; - PanelValg7.Enabled := false; - PanelValg7.Font.Color := clInactiveCaption; + //PanelValg6.Enabled := false; + //PanelValg6.Font.Color := clInactiveCaption; - // her skal vi også disable de menupunkter DBK ikke kan bruge - ReturpakkerfraDAO1.Enabled := false; - Returpakkerfraboghandler1.Enabled := false; + // her skal vi også disable de menupunkter BK ikke kan bruge + menuNatxpressReturDAO1.Enabled := false; + menuNatxpressReturfraKunde1.Enabled := false; - Pakkeshoplevering1.Enabled := false; - Returpakkerfrapakkeshop1.Enabled := false; + //Returpakkerfrapakkeshop1.Enabled := false; if SpecialVersionScanningtype = 'A' then begin @@ -861,6 +743,11 @@ end; end; + if SpecialVersionSted = 'DBK' then + begin + Sted := SpecialVersionSted; + end; + if (SpecialVersionSted = '01') or (SpecialVersionSted = '02') or (SpecialVersionSted = '03') @@ -884,18 +771,18 @@ PanelValg7.Font.Color := clInactiveCaption; // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge - Automatiskvalg1.Enabled := false; + menuAutomatiskvalg1.Enabled := false; - Pakkernormal1.Enabled := false; - ReturpakkerfraDAO1.Enabled := false; - Returpakkerfraboghandler1.Enabled := false; - Budlevering1.Enabled := false; - Pakkeshoplevering1.Enabled := false; - Returpakkerfrapakkeshop1.Enabled := false; + menuNatXpress1.Enabled := false; + menuNatxpressReturDAO1.Enabled := false; + menuNatxpressReturfraKunde1.Enabled := false; + menuDaoDirekte1.Enabled := false; + menuPakkeshop1.Enabled := false; + menuPakkeshopRetur1.Enabled := false; if SpecialVersionScanningtype = 'A' then begin Scanningtype := '4'; - Budlevering1.Enabled := true; + menuDaoDirekte1.Enabled := true; PanelValg4.Font.Color := clWindowText; PanelValg4.Enabled := true; end @@ -904,41 +791,41 @@ Scanningtype := SpecialVersionScanningtype; PanelValgA.Enabled := false; PanelValgA.Font.Color := clInactiveCaption; - AutomatiskValg1.Checked := false; + menuAutomatiskvalg1.Checked := false; PanelValgA.Color := clBtnFace; if Scanningtype = '1' then begin - Pakkernormal1.Enabled := true; + menuNatXpress1.Enabled := true; PanelValg1.Enabled := true; PanelValg1.Font.Color := clWindowText; end; if Scanningtype = '2' then begin - ReturpakkerfraDAO1.Enabled := true; + menuNatxpressReturDAO1.Enabled := true; PanelValg2.Enabled := true; PanelValg2.Font.Color := clWindowText; end; if Scanningtype = '3' then begin - Returpakkerfraboghandler1.Enabled := true; + menuNatxpressReturfraKunde1.Enabled := true; PanelValg3.Enabled := true; PanelValg3.Font.Color := clWindowText; end; if Scanningtype = '4' then begin - Budlevering1.Enabled := true; + menuDaoDirekte1.Enabled := true; PanelValg4.Enabled := true; PanelValg4.Font.Color := clWindowText; end; if Scanningtype = '5' then begin - Pakkeshoplevering1.Enabled := true; + menuPakkeshop1.Enabled := true; PanelValg5.Enabled := true; PanelValg5.Font.Color := clWindowText; end; if Scanningtype = '6' then begin - Returpakkerfrapakkeshop1.Enabled := true; + menuPakkeshopRetur1.Enabled := true; PanelValg6.Enabled := true; PanelValg6.Font.Color := clWindowText; end; @@ -967,12 +854,12 @@ Application.Terminate; end; - if TjekUrls = '1' then // Tjekker urls + if Config.TjekUrls = '1' then // Tjekker urls begin TjekkerUrls(); - if TjekUrls = '-' then // så var der fejl i url - så vi stopper her + if Config.TjekUrls = '-' then // så var der fejl i url - så vi stopper her begin - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); MainForm.Color := clRed; RutenummerST.Caption := ''; BoghandlerNavnST.Caption := 'Fejl i urls'; @@ -1019,23 +906,23 @@ if Pakketype = '1' then begin - Storepakker1.Checked := true; + menuStorePakker.Checked := true; radioStorPakke.Checked := true; end else begin - Smpakker1.Checked := true; + menuSmaaPakker.Checked := true; radioLillePakke.Checked := true; end; - if TestFunktionen = '1' then + if Config.TestFunktionen = '1' then begin Testforbindelsen1.Visible := true; Testprinter1.Visible := true; Testlyd1.Visible := true; Testlyd2.Visible := true; end - else if TestFunktionen = '2' then + else if Config.TestFunktionen = '2' then begin Testforbindelsen1.Enabled := false; Testprinter1.Enabled := false; @@ -1050,36 +937,12 @@ Testlyd2.Visible := false; end; - if not FileExists(AlarmLyd) then - begin - AlarmLyd := ''; - end; - - if not FileExists(ScannetOkLyd) then - begin - ScannetOkLyd := ''; - end; - if not FileExists(ScannetOkStorLyd) then - begin - ScannetOkStorLyd := ''; - end; - if not FileExists(ScannetOkTilTjekkodeLyd) then - begin - ScannetOkTilTjekkodeLyd := ''; - 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, Config.PrinterNavn ); + LabelPrint.CheckPrintQue('Opstart', Config.PrinterNavn); finally Free; @@ -1088,14 +951,14 @@ // UBD skal p.t. ikke have adgang til flg. funktioner if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then begin - ReturpakkerfraDAO1.Visible := false; - Returpakkerfraboghandler1.Visible := false; - Budlevering1.Visible := false; - Storepakker1.Visible := false; - Smpakker1.Visible := false; + menuNatxpressReturDAO1.Visible := false; + menuNatxpressReturfraKunde1.Visible := false; + menuDaoDirekte1.Visible := false; + menuStorePakker.Visible := false; + menuSmaaPakker.Visible := false; Testprinter1.Visible := false; - Pakkeshoplevering1.Visible := false; - Returpakkerfrapakkeshop1.Visible := false; + menuPakkeshop1.Visible := false; + menuPakkeshopRetur1.Visible := false; end; if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then @@ -1146,7 +1009,7 @@ Scanningtype := gemScanningtype; SendInfoTilServer(Sted, Scanningtype, 'Begin', ''); - SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('')); + SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion('')); end; @@ -1203,6 +1066,9 @@ or (NumberString = 'Retur fra kunde') or (NumberString = 'DAO DIREKTE') or (NumberString = 'DAO PAKKESHOP') + or (NumberString = 'DAO PAKKESHOP') + or (LowerCase(NumberString) = 'for stor hjemmelevering' ) + or (LowerCase(NumberString) = 'for stor daodirekte' ) or (NumberString = 'Retur fra pakkeshop') then begin @@ -1213,11 +1079,15 @@ begin ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift'); end; - end; + end; // Slut ctrl-v if Key = #13 then // Enter begin - if (Length(Trim(Stregkode)) = 0) then + + // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes + Stregkode := Trim(Stregkode); + + if (Length(Stregkode) = 0) then begin VisAlarmSkaerm( 'Der skal scannes en stregkode...' ); @@ -1267,6 +1137,22 @@ exit; end; + if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then + begin + if chkForstorTilDirekte.Enabled then + begin + chkForstorTilDirekte.Checked := true; + end + else + begin + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' ); + end; + Stregkode := ''; + StregkodeST.Caption := StregKode; + exit; + end; + + if StregKode = 'Indtast kundenummer' then begin if chkSporgEfterKunde.Enabled = true then @@ -1421,7 +1307,7 @@ if (Length(Stregkode) > 8) then begin // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet - URLStr := Format(UrlFindPakketype,[Stregkode]); + URLStr := Format(Config.UrlFindPakketype,[Stregkode]); try //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST WebSvar := IdHTTP1.Get(URLStr); @@ -1464,19 +1350,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 (menuAutomatiskvalg1.Checked and (Length(Stregkode) > 8) ) then begin GemStregkode := Stregkode; if Pakketype = 'NatXpress' then @@ -1505,25 +1391,35 @@ InitPakkeshoplevering(); end; end - // Retur kan ikke scannes med 'Automatisk valg' + else if Pakketype = 'PakkeshopRetur' then + begin + if Scanningtype <> '6' then + begin + VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' ); + + exit; + end; + end + 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; Stregkode := GemStregkode; end - else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then + else if menuAutomatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then begin VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' ); exit; end; - if not Automatiskvalg1.Checked then + if not menuAutomatiskvalg1.Checked then begin if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then begin @@ -1534,9 +1430,33 @@ end; end; + // EmballageRepareret skal bare sætte reklamationkoden, + // og så ellers fortsætte med scanning som normalt + if (chkEmballageRepareret.Checked = True) then + begin + URLStr := Format(Config.UrlEmballageRepareret,[Sted,Stregkode]); + WebSvar := IdHTTP1.Get(URLStr); + + chkEmballageRepareret.Checked := False; + end; + + if (chkUdenforSpecifikation.Checked = True) then + begin + URLStr := Format(Config.URLUdenforSpecifikation,[Sted,Stregkode]); + //ShowMessage( URLStr); + + WebSvar := IdHTTP1.Get(Config.URLUdenforSpecifikation); + //ShowMessage( WebSvar ); + + chkUdenforSpecifikation.Checked := False; + LabelPrint.PrintLabel(Stregkode); + exit; //leave procedure + end; + + - if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then + if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and menuAutomatiskTjekkodeStyring.Checked then begin chkScanTjekkode.Checked := false; for i := 0 to length(stregkoderMedTjekkodeArray)-1 do @@ -1549,7 +1469,7 @@ end; end; - if Pakkernormal1.Checked and not Scanogstjekkoden1.Checked then + if menuNatXpress1.Checked and not Scanogstjekkoden1.Checked then begin // Når vi ikke kræver tjekkode er alt ok her BoghandlerStregkode := Stregkode; @@ -1559,7 +1479,7 @@ Stregkode := ''; InitScreen(); end - else if (PakkeshopLevering1.Checked or Pakkernormal1.Checked) and not Scanogstjekkoden1.Checked then + else if (menuPakkeshop1.Checked or menuNatXpress1.Checked) and not Scanogstjekkoden1.Checked then begin // Når vi ikke kræver tjekkode er alt ok her PakkeshopStregkode := Stregkode; @@ -1571,7 +1491,7 @@ Stregkode := ''; InitScreen(); end - else if PakkeshopLevering1.Checked or Pakkernormal1.Checked then + else if menuPakkeshop1.Checked or menuNatXpress1.Checked then if PakkeshopText1.Caption = 'Stregkode' then begin if length(Stregkode) > 5 then @@ -1580,7 +1500,7 @@ BoghandlerStregkode := Stregkode; PakkeshopText1.Caption := 'Tjekkode'; - PlaySound(PWideChar(ScannetOkTilTjekkodeLyd)); + PlaySound(PWideChar(Config.ScannetOkTilTjekkodeLyd)); end else @@ -1597,17 +1517,17 @@ PakkeshopTjekkode := Stregkode; BoghandlerTjekkode := Stregkode; PakkeshopText1.Caption := 'Stregkode'; - if (PakkeshopLevering1.Checked) then - MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering); - if (Pakkernormal1.Checked) then - MainForm.Color := TUtils.HexToTColor(FarveNormal); + if (menuPakkeshop1.Checked) then + MainForm.Color := TUtils.HexToTColor(Config.FarvePakkeshoplevering); + if (menuNatXpress1.Checked) then + MainForm.Color := TUtils.HexToTColor(Config.FarveNormal); btnNulstil.Visible := false; end else begin - if (PakkeshopLevering1.Checked) then + if (menuPakkeshop1.Checked) then VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode); - if (Pakkernormal1.Checked) then + if (menuNatXpress1.Checked) then VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode); StregKode := ''; @@ -1619,11 +1539,12 @@ InitScreen(); end; - 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 + if not menuPakkeshop1.Checked and not menuNatXpress1.Checked or (menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (menuNatXpress1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then begin - if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then + + if menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then StregKode := PakkeshopStregkode; - if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then + if menuNatXpress1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then StregKode := BoghandlerStregkode; StregkodeST.Caption := StregKode; try @@ -1637,7 +1558,7 @@ exit; end; - if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then + if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then begin PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel); pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn); @@ -1653,34 +1574,34 @@ tjekkodemangler := pos('Tjekkode mangler', Kommentar); if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then begin - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); btnNulstil.Visible := true; MainForm.Color := clRed; end; end; - if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then + if ( menuNatXpress1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then begin MainForm.Color := TUtils.HexToTColor(Farve); - if Storepakker1.Checked then + if menuStorePakker.Checked then begin - PlaySound(PWideChar(ScannetOkStorLyd)); + PlaySound(PWideChar(Config.ScannetOkStorLyd)); end else begin - PlaySound(PWideChar(ScannetOkLyd)); + PlaySound(PWideChar(Config.ScannetOkLyd)); end; btnNulstil.Visible := false; end - else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then + else if (menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked) then begin MainForm.Color := TUtils.HexToTColor(Farve); - if Storepakker1.Checked then + if menuStorePakker.Checked then begin - PlaySound(PWideChar(ScannetOkStorLyd)); + PlaySound(PWideChar(Config.ScannetOkStorLyd)); end else begin - PlaySound(PWideChar(ScannetOkLyd)); + PlaySound(PWideChar(Config.ScannetOkLyd)); end; btnNulstil.Visible := false; end @@ -1695,18 +1616,19 @@ begin VisAlarmSkaerm(''); end; + if not btnNulstil.Visible then begin - If (Budlevering1.Checked) then + If (menuDaoDirekte1.Checked) then begin - if Storepakker1.Checked then + if menuStorePakker.Checked then begin - PlaySound(PWideChar(ScannetOkStorLyd)); + PlaySound(PWideChar(Config.ScannetOkStorLyd)); end else begin - PlaySound(PWideChar(ScannetOkLyd)); + PlaySound(PWideChar(Config.ScannetOkLyd)); end; InitLillePakke(); end; @@ -1744,8 +1666,15 @@ Key := #0; + + + + + end; //End of OnKeyPress + + procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String); const crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed @@ -1753,9 +1682,9 @@ WebSvar : String; URLStr : String; begin - if UrlSendPrograminfo <> '' then + if Config.UrlSendPrograminfo <> '' then begin - URLStr := Format(UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]); + URLStr := Format(Config.UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]); try //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST WebSvar := IdHTTP1.Get(URLStr); @@ -1768,7 +1697,7 @@ ShowMessage(logTekst); SkrivScanningLogFil(logTekst); // Vi nulstiller lige url feltet så rutinen ikke kaldes igen i forbindelse med lukning af programmet - UrlSendPrograminfo := ''; + Config.UrlSendPrograminfo := ''; Application.Terminate; end; end; @@ -1787,11 +1716,12 @@ begin - if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then + if menuDaoDirekte1.Checked or menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked or menuNatXpress1.Checked or menuIndlevering.Checked then begin for i := ListBox2.items.count-1 downto 0 do if pos(StregKode,ListBox2.items[i]) <> 0 then begin + wrkAntalSenere := 0;//initial Value // Ajourføring af tæller for manglende pakker (scanninger) wrkAntal := StaticTextManglendePakker.Caption; @@ -1906,7 +1836,7 @@ PanelManglendePakker6.Visible := false; end; end; -// 20150310: slut + ListBox2.items.delete(i); end; end; @@ -1936,54 +1866,14 @@ begin Altidprintepakkelabel1.Enabled := false; - Pakkernormal1.Visible := false; - ReturpakkerfraDAO1.Visible := false; - Returpakkerfraboghandler1.Visible := false; + menuNatXpress1.Visible := false; + menuNatxpressReturDAO1.Visible := false; + menuNatxpressReturfraKunde1.Visible := false; 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 + + if menuDaoDirekte1.Checked then begin IndlesScanningLogFil(); end; @@ -1995,8 +1885,8 @@ 01 : begin; // NS Testprinter1.Visible := true; - DownloadButton01.Enabled := true; - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := true; + BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt'; @@ -2007,12 +1897,12 @@ 02 : begin; // BK Testprinter1.Visible := true; - Smpakker1.Enabled := true; - Storepakker1.Enabled := true; + menuSmaaPakker.Enabled := true; + menuStorePakker.Enabled := true; radioStorPakke.Enabled := true; radioLillePakke.Enabled := true; - DownloadButton01.Enabled := false; // kontrolfil bruges ikke her - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her + BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; IndlesManglendeScanninger(); @@ -2022,14 +1912,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; - DownloadButton01.Enabled := true; - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := true; + BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt'; @@ -2045,12 +1935,12 @@ end; 04 : begin; // DBK Testprinter1.Visible := true; - Smpakker1.Enabled := true; - Storepakker1.Enabled := true; + menuSmaaPakker.Enabled := true; + menuStorePakker.Enabled := true; radioStorPakke.Enabled := true; radioLillePakke.Enabled := true; - DownloadButton01.Enabled := false; // kontrolfil bruges ikke her - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her + BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; end; @@ -2067,7 +1957,7 @@ pakkestorrelse : String; PrintNyLabelInteger : Integer; - PakkeshopLabel: TPakkeshopLabel; + PakkeshopLabel: TLabelData; begin if radioStorPakke.Checked then begin @@ -2079,42 +1969,48 @@ end; - if Pakkernormal1.Checked then + if menuNatXpress1.Checked then begin if (BoghandlerTjekkode = '') then begin BoghandlerTjekkode := '-1'; end; - URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]); + URLStr := Format(Config.UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]); end - else if ReturpakkerfraDAO1.Checked then + else if menuNatxpressReturDAO1.Checked then begin - URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]); + URLStr := Format(Config.UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]); end - else if Returpakkerfraboghandler1.Checked then + else if menuNatxpressReturfraKunde1.Checked then begin - URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]); + URLStr := Format(Config.UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]); end - else if Budlevering1.Checked then + else if menuDaoDirekte1.Checked then begin - URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]); + URLStr := Format(Config.UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]); end - else if Pakkeshoplevering1.Checked then + else if menuPakkeshop1.Checked then begin - URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]); + URLStr := Format(Config.UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]); end - else if Returpakkerfrapakkeshop1.Checked then + else if menuPakkeshopRetur1.Checked then begin - URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]); + URLStr := Format(Config.UrlReturPakkeshop,[Sted, PakkeNr]); end else if menuIndlevering.Checked then begin - URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]); + URLStr := Format(Config.UrlIndleveringsPakke,[Sted, PakkeNr]); end else begin exit; end; + + if chkForstorTilDirekte.Checked then // Denne skal være efter if/else kæden da den overrider de øvrige URL'er + begin + URLStr := Format(Config.URLOmdirigerTilPakkeshop,[Sted, PakkeNr]); + end; + try //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST WebSvar := IdHTTP1.Get(URLStr); @@ -2136,9 +2032,10 @@ end; end; end; + XMLDocument1.LoadFromXML(WebSvar); try - if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then + if menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked then begin RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text; Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text; @@ -2146,7 +2043,7 @@ BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text; PrintNyLabel := False; - if Pakkeshoplevering1.Checked then + if menuPakkeshop1.Checked then begin try PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text); @@ -2159,7 +2056,7 @@ end; end; end - else if menuIndlevering.Checked then + else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then begin @@ -2169,10 +2066,12 @@ if (Kommentar = 'Ok') then begin PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label - PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc - RuteNummer := PakkeshopLabel.Koreliste; + PakkeshopLabel := TLabelData.Create( XMLDocument1 ); //Opret struct og parse xml doc + RuteNummer := PakkeshopLabel.Koreliste + ' -> ' + PakkeshopLabel.PakkeshopTurid; + Stregkode := PakkeshopLabel.Stregkode; - PrintPakkeshopLabel( PakkeshopLabel ); + LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel ); + chkForstorTilDirekte.Checked := false; end; @@ -2185,7 +2084,7 @@ Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text; BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text; Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text; - if Budlevering1.Checked then + if menuDaoDirekte1.Checked then begin try SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text; @@ -2216,21 +2115,14 @@ begin if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then begin - Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution'; - PrintNyLabel := False; + Kommentar := Kommentar + ' Pakke burde være hos ' + Leveringssted; + //PrintNyLabel := False; //ved fuld-daekning / X-ruter skal vi altid skrive label alligevel end; end - else if (Budlevering1.Checked) and (Leveringssted <> Sted) then + else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) And (Leveringssted <> '') then begin - if (Leveringssted = 'E') and (Sted = 'DBK') then - begin - // Det er ok at DBK scanner pakker til E (Schenker) - end - else - begin - Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution'; - PrintNyLabel := False; - end; + Kommentar := Kommentar + ' Pakke burde være hos ' + Leveringssted; + //PrintNyLabel := False; //ved fuld-daekning / X-ruter skal vi altid skrive label alligevel end; except on e:exception do raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]); @@ -2249,7 +2141,7 @@ //Label1.Caption := Kommentar; // bruges hvis der skal vises linieskift - det kan man ikke i en staticText BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]); List1msg := TimeToStr(now) + '; '; - if Pakkeshoplevering1.Checked then + if menuPakkeshop1.Checked then List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; '; List1Pakkestorrelse := ''; if radioStorPakke.Checked then @@ -2261,21 +2153,21 @@ List1Pakkestorrelse := 'Lille pakke'; end; List1msg := List1msg + BoghandlerNavn + '; '; - if ReturpakkerfraDAO1.Checked then + if menuNatxpressReturDAO1.Checked then begin List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8); end; - if Returpakkerfraboghandler1.Checked then + if menuNatxpressReturfraKunde1.Checked then begin List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16); end; - if ReturpakkerfraDAO1.Checked or Returpakkerfraboghandler1.Checked then + if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then List1msg := List1msg + '; ' + List1Pakkestorrelse; if length(BoghNr) > 0 then begin List1Msg := List1Msg + '; Indtastet ' + BoghNr; end; - if Budlevering1.Checked then + if menuDaoDirekte1.Checked then begin List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn; if (radioStorPakke.Checked) then @@ -2287,11 +2179,11 @@ List1msg := List1msg + '; Lille pakke'; end; end; - if Returpakkerfrapakkeshop1.Checked then + if menuPakkeshopRetur1.Checked then begin List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6); end; - if Pakkernormal1.Checked then + if menuNatXpress1.Checked then begin if (Kommentar = '***** Kommentar *****') // fra test printer funktionen or (BoghandlerNavn = 'Forbindelse ok') // fra test forbindelse funktionen @@ -2304,12 +2196,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(); @@ -2325,7 +2223,7 @@ kontrolKoreliste : string; nytRuteNummer, nyFarve : String; begin - if Budlevering1.Checked then + if menuDaoDirekte1.Checked then RuteNummerST.Color := TUtils.HexToTColor(Farve); pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn); @@ -2363,13 +2261,13 @@ end; end else - if Budlevering1.Checked then + if menuDaoDirekte1.Checked then begin if (BoghandlerNavn = 'Ukendt pakke') then begin PrintNyLabel := false; - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); MainForm.Color := clRed; btnNulstil.Visible := true; @@ -2389,14 +2287,14 @@ logTekst := RightStr(List1Msg, Length(List1Msg)-10); SkrivScanningLogFil(logTekst); - if (PrinterNavn = 'Ingen') then - begin - PrintNyLabel := false; - end; +// if (Config.PrinterNavn = 'Ingen') then +// begin +// PrintNyLabel := false; +// end; if (PrintNyLabel = false) then // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm begin - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); MainForm.Color := clRed; btnNulstil.Visible := true; end; @@ -2422,7 +2320,7 @@ if (PrintNyLabel = false) then // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm begin - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); MainForm.Color := clRed; btnNulstil.Visible := true; end; @@ -2432,7 +2330,7 @@ end; - if Budlevering1.Checked then + if menuDaoDirekte1.Checked then begin case BladhusSted of 00 : begin; @@ -2444,7 +2342,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; @@ -2452,13 +2350,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; @@ -2466,13 +2364,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 @@ -2481,17 +2379,17 @@ end; // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her - if Pakkernormal1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then + if menuNatXpress1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then begin exit; end; - if Budlevering1.Checked or ( Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then + if menuDaoDirekte1.Checked or ( Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then begin end else begin - if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then + if ( (Config.PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then begin logTekst := 'Printer label type '; if (chkAltidPrintLabel.Checked) then @@ -2508,85 +2406,25 @@ 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); begin - Storepakker1.Checked := true; + menuStorePakker.Checked := true; radioStorPakke.Checked := true; end; procedure TMainForm.radioLillePakkeClick(Sender: TObject); begin - Smpakker1.Checked := true; + menuSmaaPakker.Checked := true; radioLillePakke.Checked := true; end; @@ -2629,7 +2467,7 @@ end; end; -procedure TMainForm.Pakkeshoplevering1Click(Sender: TObject); +procedure TMainForm.menuPakkeshop1Click(Sender: TObject); begin Scanningtype := '5'; InitPakkeshoplevering(); @@ -2638,7 +2476,7 @@ procedure TMainForm.NulstilAutomatiskValg(); begin - Automatiskvalg1.Checked := false; + menuAutomatiskvalg1.Checked := false; PanelValgA.Color := clBtnFace; PanelValgA.Font.Color := clWindowText; @@ -2650,7 +2488,7 @@ // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK) PanelValgA.Enabled := false; PanelValgA.Font.Color := clInactiveCaption; - Automatiskvalg1.Enabled := false; + menuAutomatiskvalg1.Enabled := false; end; // 20150317: slut end; @@ -2665,396 +2503,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', Config.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', Config.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', Config.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', Config.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', Config.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', Config.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', Config.UrlManglendeScanninger, 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 UrlPakkeshopManglendeScanninger + if PanelValg5.Enabled = true then + begin + TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', Config.UrlPakkeshopManglendeScanninger, urlFejl); + end; + // Tjekker UrlPakkeshopManglendeReturScanninger + if PanelValg6.Enabled = true then + begin + TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', Config.UrlPakkeshopManglendeReturScanninger, 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 UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger + if PanelValg7.Enabled = true then + begin + TjekkerEnkeltUrl('UrlIndleveringsPakke', Config.UrlIndleveringsPakke, urlFejl); + TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', Config.UrlIndleveringsPakkeManglendeScanninger, urlFejl); + end; + // Tjekker UrlEKLoverforsel + if PanelValg1.Enabled = true then + begin + TjekkerEnkeltUrl('UrlEKLoverforsel', Config.UrlEKLoverforsel, 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 UrlEKLoverforselPakkeshop + if PanelValg5.Enabled = true then + begin + TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', Config.UrlEKLoverforselPakkeshop, urlFejl); + end; - 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; + // Tjekker UrlFindPakketype + TjekkerEnkeltUrl('UrlFindPakketype', Config.UrlFindPakketype, urlFejl); + + // Tjekker UrlSendPrograminfo + TjekkerEnkeltUrl('UrlSendPrograminfo', Config.UrlSendPrograminfo, urlFejl); + + + + logTekst := 'urls er ok'; + ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst); + SkrivScanningLogFil(logTekst); + + Except + Config.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 Config.TjekUrls = '1' then + begin + logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... '; + end; + + SkrivScanningLogFil(logTekst); + + if Config.TjekUrls = '1' then + begin + ShowMessage(logTekst); + Config.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; @@ -3074,7 +2660,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) @@ -3124,7 +2710,7 @@ if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then begin ShowMessage('Programmet afbrydes...'); - UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut + Config.UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut Application.Terminate; exit; end; @@ -3134,18 +2720,8 @@ 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 + if (menuDaoDirekte1.Checked) then begin InitLillePakke(); end; @@ -3207,30 +2783,17 @@ 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 + menuAutomatiskvalg1.Checked := true; + PanelValgA.Color := clGreen; + PanelValgA.Font.Color := clWhite; + + + end; -procedure TMainForm.Pakkernormal1Click(Sender: TObject); +procedure TMainForm.menuNatXpress1Click(Sender: TObject); begin Scanningtype := '1'; NulstilAutomatiskValg(); @@ -3249,12 +2812,12 @@ Leveringssted : String; orgTjekUrls : String; begin - orgTjekUrls := TjekUrls; - if (TjekUrls = '1') or (TjekUrls = '2') then + orgTjekUrls := Config.TjekUrls; + if (Config.TjekUrls = '1') or (Config.TjekUrls = '2') then begin TjekkerUrls(); end; - if TjekUrls = '-' then + if Config.TjekUrls = '-' then begin //ShowMessage('Der var fejl i een eller flere urls - se logvinduet'); RuteNummer := ''; @@ -3263,7 +2826,7 @@ Koreliste := ''; UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, ''); // Her kommer en alarm og rød skærm - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); MainForm.Color := clRed; btnNulstil.Visible := true; end @@ -3279,7 +2842,7 @@ PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk); FocusControl(StregkodeST); end; - TjekUrls := orgTjekUrls; + Config.TjekUrls := orgTjekUrls; end; @@ -3300,14 +2863,14 @@ 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 - else if PrinterNavn = 'Ingen' then - begin - ShowMessage('Der er fravalgt printer i dette program.'); - end +// else if Config.PrinterNavn = 'Ingen' then //Det giver ikke længere mening at kunne fravælge printer +// begin +// ShowMessage('Der er fravalgt printer i dette program.'); +// end else begin UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, ''); @@ -3315,16 +2878,16 @@ DBKbane := '999'; Leveringssted := 'XXX'; PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk); - CheckPrintQue('Test'); + LabelPrint.CheckPrintQue('Test', Config.PrinterNavn); end; FocusControl(StregkodeST); end; procedure TMainForm.Timer1Timer(Sender: TObject); begin - if (TjekPrinter = '1') then + if (Config.TjekPrinter = '1') then begin - CheckPrintQue('Timer'); + LabelPrint.CheckPrintQue('Timer', Config.PrinterNavn); end else begin @@ -3342,7 +2905,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; @@ -3378,13 +2941,14 @@ tekst := tekst+crlf+crlf; tekst := tekst+crlf+crlf+' ********** DETTE ER KUN EN TEST VERSION **********'; tekst := tekst+crlf+crlf; - tekst := tekst+crlf+crlf+'Url: '+url; + tekst := tekst+crlf+crlf+'Url: ' + Url; end; MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK); end; + procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var @@ -3437,7 +3001,7 @@ if FileExists(fileName) then begin - if AdobeReaderExists then + if TUtils.AdobeReaderExists then begin //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL); ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL); @@ -3461,14 +3025,14 @@ if FileExists(fileName) then begin - if AdobeReaderExists then + if TUtils.AdobeReaderExists then begin //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL); ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL); end else begin - ShowMessage('Acrobat Reader er ikke installeret!'); + ShowMessage('Adobe Reader er ikke installeret!'); end; end else @@ -3499,14 +3063,14 @@ end; -procedure TMainForm.ReturpakkerfraDAO1Click(Sender: TObject); +procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject); begin Scanningtype := '2'; NulstilAutomatiskValg(); InitReturFraDao(); end; -procedure TMainForm.Returpakkerfrapakkeshop1Click(Sender: TObject); +procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject); begin Scanningtype := '6'; InitReturFraPakkeshop(); @@ -3515,10 +3079,10 @@ procedure TMainForm.InitNatxpresslevering(); begin - AutomatiskTjekkodeStyring1.Enabled := true; + menuAutomatiskTjekkodeStyring.Enabled := true; btnNulstil.Visible := false; - Pakkernormal1.Checked := true; - InitForm(FarveNormal,TitelNormal,UrlNormal); + menuNatXpress1.Checked := true; + InitForm(Config.FarveNormal,Config.TitelNormal,Config.UrlNormal); PanelValg1.Color := clGreen; PanelValg1.Font.Color := clWhite; @@ -3529,15 +3093,19 @@ Sprgefterboghandlernummer1.Checked := false; chkSporgEfterKunde.Checked := false; Sprgefterboghandlernummer1.Enabled := true; - Smpakker1.Enabled := false; - Storepakker1.Enabled := false; + menuSmaaPakker.Enabled := false; + menuStorePakker.Enabled := false; 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(); @@ -3547,10 +3115,10 @@ procedure TMainForm.InitReturFraDao(); begin - AutomatiskTjekkodeStyring1.Enabled := false; - ReturpakkerfraDAO1.Checked := true; + menuAutomatiskTjekkodeStyring.Enabled := false; + menuNatxpressReturDAO1.Checked := true; btnNulstil.Visible := false; - InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO); + InitForm(Config.FarveReturDAO, Config.TitelReturDAO, Config.UrlReturDAO); PanelValg2.Color := clGreen; PanelValg2.Font.Color := clWhite; @@ -3561,23 +3129,27 @@ Sprgefterboghandlernummer1.Checked := false; chkSporgEfterKunde.Checked := false; Sprgefterboghandlernummer1.Enabled := false; - Smpakker1.Enabled := true; - Storepakker1.Enabled := true; + menuSmaaPakker.Enabled := true; + menuStorePakker.Enabled := true; radioStorPakke.Enabled := true; radioLillePakke.Enabled := true; ListBox1.Visible := true; ListBox1.Items.Clear; ListBox2.Items.Clear; - EKLoverforsel.Enabled := false; + BtnEKLoverforsel.Enabled := false; + + chkForstorTilDirekte.Checked := false; + chkForstorTilDirekte.Enabled := false; + InitLillePakke(); end; procedure TMainForm.InitReturFraKunde(); begin - AutomatiskTjekkodeStyring1.Enabled := false; - Returpakkerfraboghandler1.Checked := true; + menuAutomatiskTjekkodeStyring.Enabled := false; + menuNatxpressReturfraKunde1.Checked := true; btnNulstil.Visible := false; - InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler); + InitForm(Config.FarveReturBoghandler, Config.TitelReturBoghandler, Config.UrlReturBoghandler); PanelValg3.Color := clGreen; PanelValg3.Font.Color := clWhite; @@ -3587,23 +3159,27 @@ Sprgefterboghandlernummer1.Checked := false; chkSporgEfterKunde.Checked := false; Sprgefterboghandlernummer1.Enabled := false; - Smpakker1.Enabled := true; - Storepakker1.Enabled := true; + menuSmaaPakker.Enabled := true; + menuStorePakker.Enabled := true; radioStorPakke.Enabled := true; radioLillePakke.Enabled := true; ListBox1.Visible := true; ListBox1.Items.Clear; ListBox2.Items.Clear; - EKLoverforsel.Enabled := false; + BtnEKLoverforsel.Enabled := false; + + chkForstorTilDirekte.Checked := false; + chkForstorTilDirekte.Enabled := false; + InitLillePakke(); end; procedure TMainForm.InitDirektelevering(); begin - AutomatiskTjekkodeStyring1.Enabled := false; - Budlevering1.Checked := true; + menuAutomatiskTjekkodeStyring.Enabled := false; + menuDaoDirekte1.Checked := true; btnNulstil.Visible := false; - InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering); + InitForm(Config.FarveBudlevering, Config.TitelBudlevering, Config.UrlBudlevering); PanelValg4.Color := clGreen; PanelValg4.Font.Color := clWhite; @@ -3614,18 +3190,22 @@ Sprgefterboghandlernummer1.Checked := false; chkSporgEfterKunde.Checked := false; Sprgefterboghandlernummer1.Enabled := false; - Smpakker1.Enabled := true; - Storepakker1.Enabled := true; + menuSmaaPakker.Enabled := true; + menuStorePakker.Enabled := true; radioStorPakke.Enabled := true; radioLillePakke.Enabled := true; ListBox1.Visible := true; ListBox1.Items.Clear; - DownloadButton01.Enabled := false; - OpdaterListenButton01.Enabled := true; - DownloadButton03.Visible := false; - EKLoverforsel.Enabled := false; + BtnDownloadKontrolfil.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(); @@ -3636,10 +3216,10 @@ procedure TMainForm.InitPakkeshoplevering(); begin - AutomatiskTjekkodeStyring1.Enabled := true; - Pakkeshoplevering1.Checked := true; + menuAutomatiskTjekkodeStyring.Enabled := true; + menuPakkeshop1.Checked := true; btnNulstil.Visible := false; - InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering); + InitForm(Config.FarvePakkeshoplevering, Config.TitelPakkeshoplevering, Config.UrlPakkeshoplevering); PanelValg5.Color := clGreen; PanelValg5.Font.Color := clWhite; @@ -3650,16 +3230,19 @@ Sprgefterboghandlernummer1.Checked := false; chkSporgEfterKunde.Checked := false; Sprgefterboghandlernummer1.Enabled := false; - Smpakker1.Enabled := false; - Storepakker1.Enabled := false; + menuSmaaPakker.Enabled := false; + menuStorePakker.Enabled := false; radioStorPakke.Enabled := false; radioLillePakke.Enabled := false; ListBox1.Visible := true; ListBox1.Items.Clear; - DownloadButton01.Enabled := false; - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := false; + BtnOpdaterListen.Enabled := true; - EKLoverforsel.Enabled := true; + BtnEKLoverforsel.Enabled := true; + + chkForstorTilDirekte.Checked := false; + chkForstorTilDirekte.Enabled := true; InitLillePakke(); IndlesScanningLogFil(); @@ -3673,10 +3256,10 @@ procedure TMainForm.InitReturFraPakkeshop(); begin - AutomatiskTjekkodeStyring1.Enabled := false; - Returpakkerfrapakkeshop1.Checked := true; + menuAutomatiskTjekkodeStyring.Enabled := false; + menuPakkeshopRetur1.Checked := true; btnNulstil.Visible := false; - InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop); + InitForm(Config.FarveReturPakkeshop, Config.TitelReturPakkeshop, Config.UrlReturPakkeshop); PanelValg6.Color := clGreen; PanelValg6.Font.Color := clWhite; @@ -3687,15 +3270,20 @@ Sprgefterboghandlernummer1.Checked := false; chkSporgEfterKunde.Checked := false; Sprgefterboghandlernummer1.Enabled := false; - Smpakker1.Enabled := false; - Storepakker1.Enabled := false; + menuSmaaPakker.Enabled := false; + menuStorePakker.Enabled := false; radioStorPakke.Enabled := false; radioLillePakke.Enabled := false; ListBox1.Visible := true; ListBox1.Items.Clear; - DownloadButton01.Enabled := false; - OpdaterListenButton01.Enabled := true; - EKLoverforsel.Enabled := false; + BtnDownloadKontrolfil.Enabled := false; + BtnOpdaterListen.Enabled := true; + BtnEKLoverforsel.Enabled := false; + + chkForstorTilDirekte.Checked := false; + chkForstorTilDirekte.Enabled := false; + + InitLillePakke(); IndlesScanningLogFil(); if BladhusSted = 0 then @@ -3706,7 +3294,7 @@ IdFTP1.PassiveUseControlHost := true; end; -procedure TMainForm.Returpakkerfraboghandler1Click(Sender: TObject); +procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject); begin Scanningtype := '3'; NulstilAutomatiskValg(); @@ -3716,10 +3304,10 @@ procedure TMainForm.InitIndleveringskode(); begin menuIndlevering.Checked := true; - AutomatiskTjekkodeStyring1.Enabled := false; + menuAutomatiskTjekkodeStyring.Enabled := false; btnNulstil.Visible := false; - InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop); + InitForm(Config.FarveIndlevering, Config.TitelIndlevering, Config.UrlReturPakkeshop); PanelValg7.Color := clGreen; PanelValg7.Font.Color := clWhite; @@ -3733,16 +3321,21 @@ - Smpakker1.Enabled := false; - Storepakker1.Enabled := false; + menuSmaaPakker.Enabled := false; + menuStorePakker.Enabled := false; radioStorPakke.Enabled := false; radioLillePakke.Enabled := false; ListBox1.Visible := true; ListBox1.Items.Clear(); - DownloadButton01.Enabled := false; - OpdaterListenButton01.Enabled := true; - EKLoverforsel.Enabled := false; + BtnDownloadKontrolfil.Enabled := false; + BtnOpdaterListen.Enabled := true; + BtnEKLoverforsel.Enabled := false; + + chkForstorTilDirekte.Checked := false; + chkForstorTilDirekte.Enabled := false; + + InitLillePakke(); IndlesScanningLogFil(); if BladhusSted = 0 then @@ -3754,12 +3347,12 @@ end; -procedure TMainForm.Storepakker1Click(Sender: TObject); +procedure TMainForm.menuStorePakkerClick(Sender: TObject); begin InitStorPakke(); end; -procedure TMainForm.Smpakker1Click(Sender: TObject); +procedure TMainForm.menuSmaaPakkerClick(Sender: TObject); begin InitLillePakke(); end; @@ -3767,73 +3360,20 @@ procedure TMainForm.InitLillePakke(); begin radioLillePakke.Checked := true; - Smpakker1.Checked := true; + menuSmaaPakker.Checked := true; // Stregkode := ''; end; procedure TMainForm.InitStorPakke(); begin radioStorPakke.Checked := true; - Storepakker1.Checked := true; + menuStorePakker.Checked := true; // 20150310: start // Stregkode := ''; // 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 @@ -3846,9 +3386,9 @@ procedure TMainForm.Testlyd1Click(Sender: TObject); begin - if AlarmLyd <> '' then + if Config.AlarmLyd <> '' then begin - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); end else begin @@ -3860,9 +3400,9 @@ begin if (PakkeshopText1.Caption = 'Tjekkode') then begin - if ScannetOkTilTjekkodeLyd <> '' then + if Config.ScannetOkTilTjekkodeLyd <> '' then begin - PlaySound(PWideChar(ScannetOkTilTjekkodeLyd)); + PlaySound(PWideChar(Config.ScannetOkTilTjekkodeLyd)); end else begin @@ -3871,19 +3411,19 @@ exit; end; - if Smpakker1.Checked then - if ScannetOkLyd <> '' then + if menuSmaaPakker.Checked then + if Config.ScannetOkLyd <> '' then begin - PlaySound(PWideChar(ScannetOkLyd)); + PlaySound(PWideChar(Config.ScannetOkLyd)); end else begin MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK); end; - if Storepakker1.Checked then - if ScannetOkStorLyd <> '' then + if menuStorePakker.Checked then + if Config.ScannetOkStorLyd <> '' then begin - PlaySound(PWideChar(ScannetOkStorLyd)); + PlaySound(PWideChar(Config.ScannetOkStorLyd)); end else begin @@ -3892,7 +3432,7 @@ end; -procedure TMainForm.Budlevering1Click(Sender: TObject); +procedure TMainForm.menuDaoDirekte1Click(Sender: TObject); begin Scanningtype := '4'; NulstilAutomatiskValg(); @@ -3904,7 +3444,7 @@ CheckCode(); end; -procedure TMainForm.EKLoverforselClick(Sender: TObject); +procedure TMainForm.BtnEKLoverforselClick(Sender: TObject); var WebSvar : String; URLStr : String; @@ -3914,19 +3454,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 + URLStr := Format(Config.UrlEKLoverforsel,[StedKode,Sted]); + if PanelValg5.Color = clGreen then begin - URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]); + URLStr := Format(Config.UrlEKLoverforselPakkeshop,[StedKode,Sted]); end; -// 20150330: slut + try //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST @@ -3977,14 +3517,14 @@ 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 // Hvis der var fejl i overførslen skal dette fejlmeldes her if status = 'Fejl' then begin // Her skal komme en alarm og rød skærm - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); MainForm.Color := clRed; RutenummerST.Caption := 'EKL overførsel'; BoghandlerNavnST.Caption := 'Fejl:'; @@ -4503,13 +4043,13 @@ ListBox1.SetFocus; // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode end; -procedure TMainForm.DownloadButton01Click(Sender: TObject); +procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject); begin DownloadBladhusKontrolfil(); 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 @@ -4518,7 +4058,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 @@ -4528,129 +4068,6 @@ end; -// ToDo: PrintPakkeshopLabel() -procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel); -var - XForm, XFormOld: TXForm; //Bruges til rotate X-formation - Angle: integer; - gMode: integer; - BarcodeArea: TRect; - 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 @@ -4661,17 +4078,27 @@ I: Integer; stregkode, modtagernavn, modtageradresse, kommentar : string; pakketype, tjekkodestatus : String; - pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer; - pakketyper : TStrings; + antalLiniefelter, antalFelterFundet, linienr : Integer; + //pakketyper : TStrings; + pakketyper : TDictionary; + tmpAntal : Integer; + + time, timeSamlet : TTimingHelper; + + antlin : Integer; antlinIdag, antlinSenere : Integer; - XmlFelter : TStrings; + //XmlFelter : TStrings; + XmlFelter : TDictionary; begin - XmlFelter := TStringList.Create; - pakketyper := TStringList.Create; + + + XmlFelter := TDictionary.Create; + pakketyper := TDictionary.Create; + linienr := 0; ListBox2.Clear; ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget'); @@ -4686,22 +4113,29 @@ StedKode := Sted; end; + Application.Processmessages; //Ugly Hack to improve User Experience when switching modes - if (Scanningtype = '6') then + + + if (Scanningtype = '7') then begin - URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]); + URLStr := Format(Config.UrlIndleveringsPakkeManglendeScanninger, [StedKode]); + end + else if (Scanningtype = '6') then + begin + URLStr := Format(Config.UrlPakkeshopManglendeReturScanninger, [StedKode]); end else if (Scanningtype = '5') then begin - URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]); + URLStr := Format(Config.UrlPakkeshopManglendeScanninger, [StedKode]); end else if (Scanningtype = '1') then begin - URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']); + URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'B2']); end else if (Scanningtype = '4') then begin - URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']); // Budleveringer + URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'A2']); // Budleveringer end else begin @@ -4709,6 +4143,9 @@ end; // 20150310: slut + time := TTimingHelper.create(); //DEBUG + timeSamlet := TTimingHelper.create(); //DEBUG + try //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST // URLStr := string(Utf8Encode(URLStr)); @@ -4718,6 +4155,9 @@ begin // Her skal vi ikke gøre noget - men vi skal forespørge igen WebSvar := IdHTTP1.Get(URLStr); + + + end; on e:exception do begin @@ -4728,8 +4168,16 @@ end; end; try + time.stop('HTTP Load'); //DEBUG + XMLDocument1.LoadFromXML(WebSvar); + time.stop('XML Load'); //DEBUG + + + + + antlin := 0; antlinIdag := 0; @@ -4740,26 +4188,31 @@ if Node.NodeType = ntElement then begin if Node.NodeName = 'Stregkode' then begin - antlin := antlin + 1; + Inc(antlin); // 20150306: start if not VarIsNull(Node.NodeValue) then begin if (pos('(', Node.NodeValue) = 0) then begin - antlinIdag := antlinIdag + 1; + Inc(antlinIdag); end else begin - antlinSenere := antlinSenere + 1; + Inc(antlinSenere); end; end; // 20150306: slut end; end; - if (XmlFelter.values[Node.NodeName] <> '') then - XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1) + if ( XmlFelter.ContainsKey(Node.NodeName) ) then + begin + XmlFelter.TryGetValue(Node.NodeName, tmpAntal); + XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1); + end else - XmlFelter.values[Node.NodeName] := '1'; + begin + XmlFelter.Add(Node.NodeName, 1); + end; end; antalLiniefelter := XmlFelter.Count; @@ -4767,6 +4220,10 @@ SetLength(stregkoderMedTjekkodeArray, 0); // reset fra tidligere brug SetLength(stregkoderMedTjekkodeArray, antlin); // sæt antal elementer i array + time.stop('Antal Linier');//DEBUG + + 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 @@ -4775,6 +4232,8 @@ logTekst := logTekst + '.'; SkrivScanningLogFil(logTekst); + + for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin Node:= XMLDocument1.DocumentElement.ChildNodes[I]; if Node.NodeType = ntElement then begin @@ -4782,39 +4241,41 @@ if not VarIsNull(Node.NodeValue) then stregkode := Node.NodeValue; antalFelterFundet := antalFelterFundet + 1; - end; - if Node.NodeName = 'ModtagerNavn' then begin + end + else if Node.NodeName = 'ModtagerNavn' then begin if not VarIsNull(Node.NodeValue) then modtagernavn := Node.NodeValue; antalFelterFundet := antalFelterFundet + 1; - end; - if Node.NodeName = 'ModtagerAdresse' then begin + end + else if Node.NodeName = 'ModtagerAdresse' then begin if not VarIsNull(Node.NodeValue) then modtageradresse := Node.NodeValue; antalFelterFundet := antalFelterFundet + 1; - end; - if Node.NodeName = 'Kommentar' then begin + end + else if Node.NodeName = 'Kommentar' then begin if not VarIsNull(Node.NodeValue) then kommentar := Node.NodeValue; antalFelterFundet := antalFelterFundet + 1; - end; - if Node.NodeName = 'PakkeType' then begin + end + else if Node.NodeName = 'PakkeType' then begin 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'; - end; - if Node.NodeName = 'TjekkodeStatus' then begin + pakketyper.Add(pakketype, 1); + end + else if Node.NodeName = 'TjekkodeStatus' then begin if not VarIsNull(Node.NodeValue) then tjekkodestatus := Node.NodeValue; 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 @@ -4826,6 +4287,8 @@ linienr := linienr + 1; end; end; + + if antalFelterFundet = antalLiniefelter then begin if (ScanningType = '1') then @@ -4841,13 +4304,25 @@ 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 + + time.stop('Fyld Listbox2');//DEBUG + + + Application.Processmessages; //Ugly Hack to improve User Experience when switching modes + + + 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 @@ -4953,6 +4428,10 @@ end; end; + time.stop('Done');//DEBUG + timeSamlet.stop('SamletTid');//DEBUG + + end; procedure TMainForm.IndlesScanningLogFil(); @@ -5128,7 +4607,7 @@ ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.'); logTekst := 'Fandt ingen linier til '+imorgenYmd+'.'; SkrivScanningLogFil(logTekst); - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); end; end; end @@ -5137,7 +4616,7 @@ ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil '+filnavn+' findes ikke.'); logTekst := 'Ruteskift fil '+filnavn+' findes ikke.'; SkrivScanningLogFil(logTekst); - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); end; end; @@ -5208,7 +4687,7 @@ ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.'); logTekst := 'Fandt ingen linier til '+imorgenYmd+'.'; SkrivScanningLogFil(logTekst); - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); end; end; end @@ -5217,7 +4696,7 @@ ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Kontrol fil '+filnavn+' findes ikke.'); logTekst := 'Kontrol fil '+filnavn+' findes ikke.'; SkrivScanningLogFil(logTekst); - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); end; end; @@ -5275,7 +4754,7 @@ begin //ShowMessage('Ændring ikke tilladt'); // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); + PlaySound(PWideChar(Config.AlarmLyd)); MainForm.Color := clRed; @@ -5289,6 +4768,8 @@ KommentarST.Caption := strMessage; end; + Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist + end; function TMainForm.getProddato() : TDate; @@ -5348,25 +4829,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 @@ -5380,160 +4842,50 @@ end; end; -function TMainForm.AdobeReaderExists: Boolean; -var - AReg: TRegistry; + +//Nedarvet fra IParentForm +procedure TMainForm.Msg( msg : string); begin - result:= false; - AReg := TRegistry.Create; - AReg.RootKey := HKEY_LOCAL_MACHINE; - if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then - result:= True; - AReg.Free; + ShowMessage(msg); end; - -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; + PrinterstatusStaticText1.Font.Color := clRed; + PrinterstatusStaticText1.Color := clWhite; + PrinterstatusStaticText1.Transparent := true; + end; +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; +//Nedarvet fra IParentForm +function TMainForm.GetFormObject() : TForm; +begin + Result := self; +end; - end; - end - finally - ClosePrinter(hPrinter); - end; - end; +//Nedarvet fra IParentForm +function TMainForm.GetXMLDocument() : TXMLDocument; +begin + Result := XMLDocument1 end;