/[projects]/dao/DelphiScanner/Main.pas
ViewVC logotype

Diff of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2700 by torben, Thu Sep 3 14:53:37 2015 UTC revision 3117 by torben, Thu Sep 22 13:12:23 2016 UTC
# Line 1  Line 1 
1  unit Main;  unit Main;
2    
3    // ToDo: flyt PrinterNavn til hhv Configuration lg lad TLabelPrint om al håndtering heraf
4    // ToDo: flyt flere parametre til TConfiguration
5    
6    // ToDo: FormKeyPress() trænger til en seriøs oprydning / refactoring
7    // ToDo: flyt mere funktionalitet fra interface layer til application layer klasser
8    // ToDo: vil det give mening at bruge State Pattern ? Så der er en class per scanningstype ?
9    // ToDo: alternativt kan man bruge en Enum til de forskellige typer
10    // ToDo: en enklere måde at håndtere capabilities på de forskellige scannings steder
11    
12    
13  interface  interface
14    
15  uses  uses
16    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
17    Dialogs, StdCtrls, Printers, IdBaseComponent, IdComponent, IdTCPConnection,    Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
18    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
19    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
20    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, IdException,
21    Winspool, ShellApi, ClipBrd, Buttons, wininet,    ShellApi, ClipBrd, Buttons, wininet,
22    UITypes,    UITypes,
23    PakkeshopLabels,    LabelData,
24    StBarC,    Utils,
25    Math, // DegToRad() bruges i PrintPakkeshopLabel    ParentForm,
26    Utils    LabelPrint,
27      Configuration,
28      Vcl.Imaging.pngimage,
29      Generics.Collections,
30      TimingHelper
31    
32    ;    ;
33    
34  type  type
35    TMainForm = class(TForm)    TMainForm = class(TForm, IParentForm)
36      StregkodeST: TStaticText;      StregkodeST: TStaticText;
37      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
38      BoghandlerNavnST: TStaticText;      BoghandlerNavnST: TStaticText;
# Line 26  type Line 40  type
40      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
41      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
42      chkSporgEfterKunde: TCheckBox;      chkSporgEfterKunde: TCheckBox;
     KommentarST: TStaticText;  
43      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
44      N1: TMenuItem;      N1: TMenuItem;
45      Pakkernormal1: TMenuItem;      menuNatXpress1: TMenuItem;
46      ReturpakkerfraDAO1: TMenuItem;      menuNatxpressReturDAO1: TMenuItem;
47      Returpakkerfraboghandler1: TMenuItem;      menuNatxpressReturfraKunde1: TMenuItem;
48      Hjlp1: TMenuItem;      Hjlp1: TMenuItem;
49      Om1: TMenuItem;      Om1: TMenuItem;
50      Testforbindelsen1: TMenuItem;      Testforbindelsen1: TMenuItem;
# Line 44  type Line 57  type
57      radioStorPakke: TRadioButton;      radioStorPakke: TRadioButton;
58      radioLillePakke: TRadioButton;      radioLillePakke: TRadioButton;
59      N4: TMenuItem;      N4: TMenuItem;
60      Storepakker1: TMenuItem;      menuStorePakker: TMenuItem;
61      Smpakker1: TMenuItem;      menuSmaaPakker: TMenuItem;
62      Panel1: TPanel;      Panel1: TPanel;
63      Testlyd2: TMenuItem;      Testlyd2: TMenuItem;
64      Button1: TButton;      Button1: TButton;
65      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
66      ListBox1: TListBox;      ListBox1: TListBox;
67      Budlevering1: TMenuItem;      menuDaoDirekte1: TMenuItem;
68      BtnDownloadKontrolfil: TButton;      BtnDownloadKontrolfil: TButton;
69      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
70      Image1: TImage;      Image1: TImage;
# Line 59  type Line 72  type
72      BtnOpdaterListen: TButton;      BtnOpdaterListen: TButton;
73      BtnUploadLogfil: TButton;      BtnUploadLogfil: TButton;
74      BtnDownloadRuteskiftFil: TButton;      BtnDownloadRuteskiftFil: TButton;
75      Pakkeshoplevering1: TMenuItem;      menuPakkeshop1: TMenuItem;
76      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
77      btnNulstil: TButton;      btnNulstil: TButton;
78      Returpakkerfrapakkeshop1: TMenuItem;      menuPakkeshopRetur1: TMenuItem;
79      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
80      chkAltidPrintLabel: TCheckBox;      chkAltidPrintLabel: TCheckBox;
81      BtnEKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
# Line 73  type Line 86  type
86      Timer1: TTimer;      Timer1: TTimer;
87      chkScanTjekkode: TCheckBox;      chkScanTjekkode: TCheckBox;
88      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
89      Automatisktjekkodestyring1: TMenuItem;      menuAutomatiskTjekkodeStyring: TMenuItem;
90      Automatiskvalg1: TMenuItem;      menuAutomatiskvalg1: TMenuItem;
91      PanelValgA: TPanel;      PanelValgA: TPanel;
92      PanelValg1: TPanel;      PanelValg1: TPanel;
93      PanelValg2: TPanel;      PanelValg2: TPanel;
# Line 92  type Line 105  type
105      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
106      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
107      menuIndlevering: TMenuItem;      menuIndlevering: TMenuItem;
108        chkForstorTilDirekte: TCheckBox;
109        chkEmballageRepareret: TCheckBox;
110        KommentarST: TLabel;
111        chkUdenforSpecifikation: TCheckBox;
112    
113    
114    
115    function getProddato() : TDate;    function getProddato() : TDate;
116    function getProddag() : String;    function getProddag() : String;
117    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
   function GetCurrentPrinterHandle() : THandle;  
   function SavePChar(p: PChar): PChar;  
118    
119    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
120    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 130  type
130    procedure radioStorPakkeClick(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
131    procedure radioLillePakkeClick(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
132    procedure chkSporgEfterKundeClick(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
133    procedure Pakkernormal1Click(Sender: TObject);    procedure menuNatXpress1Click(Sender: TObject);
134    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
135    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
136    procedure Om1Click(Sender: TObject);    procedure Om1Click(Sender: TObject);
137    procedure Lukprogrammet1Click(Sender: TObject);    procedure Lukprogrammet1Click(Sender: TObject);
138    procedure Sprgefterboghandlernummer1Click(Sender: TObject);    procedure Sprgefterboghandlernummer1Click(Sender: TObject);
139    procedure ReturpakkerfraDAO1Click(Sender: TObject);    procedure menuNatxpressReturDAO1Click(Sender: TObject);
140    procedure Returpakkerfraboghandler1Click(Sender: TObject);    procedure menuNatxpressReturfraKunde1Click(Sender: TObject);
141    procedure Storepakker1Click(Sender: TObject);    procedure menuStorePakkerClick(Sender: TObject);
142    procedure Smpakker1Click(Sender: TObject);    procedure menuSmaaPakkerClick(Sender: TObject);
143    procedure Testlyd1Click(Sender: TObject);    procedure Testlyd1Click(Sender: TObject);
144    procedure Testlyd2Click(Sender: TObject);    procedure Testlyd2Click(Sender: TObject);
145    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
146    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
147    procedure Budlevering1Click(Sender: TObject);    procedure menuDaoDirekte1Click(Sender: TObject);
148    procedure BtnDownloadKontrolfilClick(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
149    procedure BtnOpdaterListenClick(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
150    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
# Line 139  type Line 156  type
156    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
157    procedure BtnUploadLogfilClick(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
158    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
159    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure menuPakkeshop1Click(Sender: TObject);
160    procedure btnNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
161    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure menuPakkeshopRetur1Click(Sender: TObject);
162    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
163    procedure InitReturFraDao();    procedure InitReturFraDao();
164    procedure InitReturFraKunde();    procedure InitReturFraKunde();
# Line 158  type Line 175  type
175    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
176    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
177    procedure chkScanTjekkodeClick(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
178    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure menuAutomatiskTjekkodeStyringClick(Sender: TObject);
179    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
180    procedure Automatiskvalg1Click(Sender: TObject);    procedure menuAutomatiskvalg1Click(Sender: TObject);
181    procedure PanelValgAClick(Sender: TObject);    procedure PanelValgAClick(Sender: TObject);
182    procedure PanelValg1Click(Sender: TObject);    procedure PanelValg1Click(Sender: TObject);
183    procedure PanelValg2Click(Sender: TObject);    procedure PanelValg2Click(Sender: TObject);
# Line 174  type Line 191  type
191    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
192    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
193    procedure TjekkerUrls();    procedure TjekkerUrls();
194      procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
195    
196    procedure menuIndleveringClick(Sender: TObject);    procedure menuIndleveringClick(Sender: TObject);
197    
198    procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  
199    procedure CheckPrintQue(tjektype : string);  
200      //Nedarvet fra IParentForm
201      procedure Msg( msg : string);
202      procedure LogMessage( msg : string);
203      procedure SetPrinterstatusText( txt: string; alert: boolean);
204      function GetFormObject() : TForm;
205      function GetXMLDocument() : TXMLDocument;
206        procedure chkEmballageRepareretClick(Sender: TObject);
207        procedure chkUdenforSpecifikationClick(Sender: TObject);
208    
209    
210    
211    private    private
# Line 187  type Line 214  type
214      SkrivLog : String;      SkrivLog : String;
215      Sted : String;      Sted : String;
216      StedNavn : String;      StedNavn : String;
217      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;  
218  // 29150330: start      Scanningtype,  Pakketype : String;
219      UrlEKLoverforselPakkeshop : String;  
220  // 20150330: slut  
221      UrlFindPakketype, UrlSendPrograminfo: String;      Url : String;
222      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;  
223      ScanTjekkode : String;      Farve : String;
224      ScanTjekkodeAutomatik : string;  
225      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;      Titel : String;
226      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;  
227      LabelType : integer;  
228      AlarmLyd : String;  
     ScannetOkLyd : String;  
     ScannetOkStorLyd : String;  
   
     ScannetOkTilTjekkodeLyd : String;  
   
     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;  
229      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
230      BladhusSted : Integer;      BladhusSted : Integer;
231      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 240  type Line 237  type
237      logTekst : string;      logTekst : string;
238      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
239      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
     TjekUrls : String;  
240    
241      Barcode : TStBarcode;      Config : TConfiguration;
242    
243    
244        LabelPrint: TLabelPrint;
245    
246      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
247      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
248      procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var 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 = '');
249      procedure CheckCode();      procedure CheckCode();
250      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanninger();
# Line 257  type Line 255  type
255      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
256      procedure VisAlarmSkaerm(strMessage: string);      procedure VisAlarmSkaerm(strMessage: string);
257    
258    
259    public    public
260      { Public declarations }      { Public declarations }
261    end;    end;
262    
       function GetPixelsPerInchX(): Integer;  
     function GetPixelsPerInchY(): Integer;  
263    
264  var  var
265    MainForm: TMainForm;    MainForm: TMainForm;
# Line 278  implementation Line 275  implementation
275  {$R *.dfm}  {$R *.dfm}
276    
277    
278    //FormCreate kaldes før InitForm
279    
280  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
281  begin  begin
282    
283  // 20150309: startr      IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect
284        IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read
285    
286    
287    
288    
289      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
 // 20150309: slut  
290    
     Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component  
291    
292      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
293      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 357  begin Line 359  begin
359        else if (Sted = 'BR') then        else if (Sted = 'BR') then
360          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
361        else if (Sted = 'BK') then        else if (Sted = 'BK') then
362          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
363          else if (Sted = 'TK') then
364            begin StedNavn := 'BK/Trykkompagniet: '; end
365        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
366          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
367        else if (Sted = '1') then        else if (Sted = '1') then
368          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
369        else if (Sted = '2') then        else if (Sted = '2') then
# Line 393  begin Line 397  begin
397        PrinterstatusStaticText1.Color := MainForm.Color;        PrinterstatusStaticText1.Color := MainForm.Color;
398      end;      end;
399    
400      if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      if menuPakkeshop1.Checked or menuNatXpress1.Checked then
401        PakkeshopText1.Visible := true        PakkeshopText1.Visible := true
402      else      else
403        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
# Line 404  begin Line 408  begin
408    
409      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
410      begin      begin
411        if (ScanTjekkode = '1') then        if (Config.ScanTjekkode = '1') then
412        begin        begin
413          chkScanTjekkode.Checked := true;          chkScanTjekkode.Checked := true;
414          chkScanTjekkode.Enabled := true;          chkScanTjekkode.Enabled := true;
# Line 418  begin Line 422  begin
422        end;        end;
423      end;      end;
424    
425      if Automatisktjekkodestyring1.Checked then      if menuAutomatiskTjekkodeStyring.Checked then
426      begin      begin
427        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
428        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
# Line 454  begin Line 458  begin
458        end;        end;
459      end;      end;
460    
461    
462  end;  end;
463    
464  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 475  begin Line 480  begin
480    StregkodeST.Caption := Stregkode;    StregkodeST.Caption := Stregkode;
481  end;  end;
482    
483  procedure TMainForm.Automatisktjekkodestyring1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskTjekkodeStyringClick(Sender: TObject);
484  begin  begin
485    if Automatisktjekkodestyring1.Checked then    if menuAutomatiskTjekkodeStyring.Checked then
486    begin    begin
487       chkScanTjekkode.Enabled := false;       chkScanTjekkode.Enabled := false;
488       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
# Line 490  begin Line 495  begin
495    
496  end;  end;
497    
498  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskvalg1Click(Sender: TObject);
499  begin  begin
500  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
501  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
502       AutomatiskValg1.Checked := true;       menuAutomatiskvalg1.Checked := true;
503       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
504       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
505  end;  end;
506    
507    
508    
509    //InitForm kaldes før FormCreate
510  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
511  const  const
512    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
513  var  var
   printerInd : integer;  
514    gemScanningtype : String;    gemScanningtype : String;
515    
516  begin  begin
517    
518    
519    // Initierer nogle variabler    // Initierer nogle variabler
520    BladhusSted := 00;    BladhusSted := 00;
521    Application.ShowHint := True;    Application.ShowHint := True;
# Line 532  begin Line 541  begin
541    
542  // Sætter lige en default panel størrelse  // Sætter lige en default panel størrelse
543    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
544    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 920;
545    
546      Config := TConfiguration.Create();
547      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
548      Config.Sted := Sted;
549    
550    // Læser parametre fra ini filen    // Læser parametre fra ini filen
551    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
552    try    try
553    
554    
555      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
556      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
557      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
558      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');  
559      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');      Scanningtype := 'A'; //hardcoded
560      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');      Pakketype := '0';
561      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');  
     UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');  
562    
563    
564    
     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');  
565    
566      if (SkrivLog = '1') then      if (SkrivLog = '1') then
567      begin      begin
# Line 615  begin Line 581  begin
581    
582      if Scanningtype = 'A' then      if Scanningtype = 'A' then
583      begin      begin
584        Automatiskvalg1.Checked := true;        menuAutomatiskvalg1.Checked := true;
585        Scanningtype := '1';        Scanningtype := '1';
586        PanelValgA.Color := clGreen;        PanelValgA.Color := clGreen;
587        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
588      end;      end;
589    
     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;  
590    
591      if SporgEfterBoghandler = '1' then  
592        if Config.SporgEfterBoghandler = '1' then
593      begin      begin
594        chkSporgEfterKunde.Checked := true;        chkSporgEfterKunde.Checked := true;
595        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
# Line 702  begin Line 600  begin
600        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
601      end;      end;
602    
603      if ScanTjekkode = '1' then      if Config.ScanTjekkode = '1' then
604      begin      begin
605        chkScanTjekkode.Checked := true;        chkScanTjekkode.Checked := true;
606        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
# Line 713  begin Line 611  begin
611        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
612      end;      end;
613    
614      if ScanTjekkodeAutomatik = '1' then      if Config.ScanTjekkodeAutomatik = '1' then
615      begin      begin
616        Automatisktjekkodestyring1.Checked := true;        menuAutomatiskTjekkodeStyring.Checked := true;
617        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
618        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
619      end;      end;
# Line 745  begin Line 643  begin
643  {$IfDef STED_BK}  {$IfDef STED_BK}
644      SpecialVersionSted := 'BK';      SpecialVersionSted := 'BK';
645  {$EndIf}  {$EndIf}
646    {$IfDef STED_TK}
647        SpecialVersionSted := 'TK';// BK-Trykkompagniet
648    {$EndIf}
649  {$IfDef STED_DBK}  {$IfDef STED_DBK}
650      SpecialVersionSted := 'DBK';      SpecialVersionSted := 'DBK';
651  {$EndIf}  {$EndIf}
# Line 755  begin Line 656  begin
656      SpecialVersionSted := 'NS';      SpecialVersionSted := 'NS';
657  {$EndIf}  {$EndIf}
658    
   
659      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
660      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
661      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 773  begin Line 673  begin
673    
674      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
675      begin      begin
676         SpecialVersionSted := '01';         //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg
677         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
678    
679          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
680          Sted := SpecialVersionSted;
681         // her skal vi også disable de knapper BK ikke kan bruge
682          PanelValg2.Enabled := false;
683          PanelValg2.Font.Color := clInactiveCaption;
684          PanelValg3.Enabled := false;
685          PanelValg3.Font.Color := clInactiveCaption;
686          //PanelValg6.Enabled := false;
687          //PanelValg6.Font.Color := clInactiveCaption;
688    
689         // her skal vi også disable de menupunkter FD ikke kan bruge
690          menuNatxpressReturDAO1.Enabled := false;
691          menuNatxpressReturfraKunde1.Enabled := false;
692    
693          //Returpakkerfrapakkeshop1.Enabled := false;
694      end;      end;
695    
696      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
697      begin      begin
698         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
699         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
700      end;  
701    
     if SpecialVersionSted = 'BK' then  
     begin  
702        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
703        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
704       // her skal vi også disable de knapper BK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
# Line 791  begin Line 706  begin
706        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
707        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
708        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
709        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
710        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
711       // her skal vi også disable de menupunkter BK ikke kan bruge  
712        ReturpakkerfraDAO1.Enabled := false;       // her skal vi også disable de menupunkter FD ikke kan bruge
713        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
714        Returpakkerfrapakkeshop1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
715        if SpecialVersionScanningtype = 'A' then  
716        begin        //Returpakkerfrapakkeshop1.Enabled := false;
717           Scanningtype := '1';  
       end  
       else  
       begin  
         Scanningtype := SpecialVersionScanningtype;  
       end;  
718      end;      end;
719    
720      if SpecialVersionSted = 'DBK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
721      begin      begin
722        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
723        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
724        // her skal vi også disable de knapper DBK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
725        PanelValg2.Enabled := false;        PanelValg2.Enabled := false;
726        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
727        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
728        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
729        PanelValg5.Enabled := false;        //PanelValg6.Enabled := false;
730        PanelValg5.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
       PanelValg6.Enabled := false;  
       PanelValg6.Font.Color := clInactiveCaption;  
       PanelValg7.Enabled := false;  
       PanelValg7.Font.Color := clInactiveCaption;  
731    
732       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter BK ikke kan bruge
733        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
734        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
735    
736        Pakkeshoplevering1.Enabled := false;        //Returpakkerfrapakkeshop1.Enabled := false;
       Returpakkerfrapakkeshop1.Enabled := false;  
737    
738        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
739        begin        begin
# Line 840  begin Line 745  begin
745        end;        end;
746      end;      end;
747    
748        if SpecialVersionSted = 'DBK' then
749        begin
750          Sted := SpecialVersionSted;
751        end;
752    
753      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
754      or (SpecialVersionSted = '02')      or (SpecialVersionSted = '02')
755      or (SpecialVersionSted = '03')      or (SpecialVersionSted = '03')
# Line 863  begin Line 773  begin
773        PanelValg7.Font.Color := clInactiveCaption;        PanelValg7.Font.Color := clInactiveCaption;
774       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge
775    
776        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
777    
778        Pakkernormal1.Enabled := false;        menuNatXpress1.Enabled := false;
779        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
780        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
781        Budlevering1.Enabled := false;        menuDaoDirekte1.Enabled := false;
782        Pakkeshoplevering1.Enabled := false;        menuPakkeshop1.Enabled := false;
783        Returpakkerfrapakkeshop1.Enabled := false;        menuPakkeshopRetur1.Enabled := false;
784        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
785        begin        begin
786          Scanningtype := '4';          Scanningtype := '4';
787          Budlevering1.Enabled := true;          menuDaoDirekte1.Enabled := true;
788          PanelValg4.Font.Color := clWindowText;          PanelValg4.Font.Color := clWindowText;
789          PanelValg4.Enabled := true;          PanelValg4.Enabled := true;
790        end        end
# Line 883  begin Line 793  begin
793          Scanningtype := SpecialVersionScanningtype;          Scanningtype := SpecialVersionScanningtype;
794          PanelValgA.Enabled := false;          PanelValgA.Enabled := false;
795          PanelValgA.Font.Color := clInactiveCaption;          PanelValgA.Font.Color := clInactiveCaption;
796          AutomatiskValg1.Checked := false;          menuAutomatiskvalg1.Checked := false;
797          PanelValgA.Color := clBtnFace;          PanelValgA.Color := clBtnFace;
798          if Scanningtype = '1' then          if Scanningtype = '1' then
799          begin          begin
800            Pakkernormal1.Enabled := true;            menuNatXpress1.Enabled := true;
801            PanelValg1.Enabled := true;            PanelValg1.Enabled := true;
802            PanelValg1.Font.Color := clWindowText;            PanelValg1.Font.Color := clWindowText;
803          end;          end;
804          if Scanningtype = '2' then          if Scanningtype = '2' then
805          begin          begin
806            ReturpakkerfraDAO1.Enabled := true;            menuNatxpressReturDAO1.Enabled := true;
807            PanelValg2.Enabled := true;            PanelValg2.Enabled := true;
808            PanelValg2.Font.Color := clWindowText;            PanelValg2.Font.Color := clWindowText;
809          end;          end;
810          if Scanningtype = '3' then          if Scanningtype = '3' then
811          begin          begin
812            Returpakkerfraboghandler1.Enabled := true;            menuNatxpressReturfraKunde1.Enabled := true;
813            PanelValg3.Enabled := true;            PanelValg3.Enabled := true;
814            PanelValg3.Font.Color := clWindowText;            PanelValg3.Font.Color := clWindowText;
815          end;          end;
816          if Scanningtype = '4' then          if Scanningtype = '4' then
817          begin          begin
818            Budlevering1.Enabled := true;            menuDaoDirekte1.Enabled := true;
819            PanelValg4.Enabled := true;            PanelValg4.Enabled := true;
820            PanelValg4.Font.Color := clWindowText;            PanelValg4.Font.Color := clWindowText;
821          end;          end;
822          if Scanningtype = '5' then          if Scanningtype = '5' then
823          begin          begin
824            Pakkeshoplevering1.Enabled := true;            menuPakkeshop1.Enabled := true;
825            PanelValg5.Enabled := true;            PanelValg5.Enabled := true;
826            PanelValg5.Font.Color := clWindowText;            PanelValg5.Font.Color := clWindowText;
827          end;          end;
828          if Scanningtype = '6' then          if Scanningtype = '6' then
829          begin          begin
830            Returpakkerfrapakkeshop1.Enabled := true;            menuPakkeshopRetur1.Enabled := true;
831            PanelValg6.Enabled := true;            PanelValg6.Enabled := true;
832            PanelValg6.Font.Color := clWindowText;            PanelValg6.Font.Color := clWindowText;
833          end;          end;
# Line 946  begin Line 856  begin
856          Application.Terminate;          Application.Terminate;
857      end;      end;
858    
859      if TjekUrls = '1' then    // Tjekker urls      if Config.TjekUrls = '1' then    // Tjekker urls
860      begin      begin
861          TjekkerUrls();          TjekkerUrls();
862          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
863          begin          begin
864             PlaySound(PWideChar(AlarmLyd));             PlaySound(PWideChar(Config.AlarmLyd));
865             MainForm.Color := clRed;             MainForm.Color := clRed;
866             RutenummerST.Caption := '';             RutenummerST.Caption := '';
867             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
# Line 998  begin Line 908  begin
908    
909      if Pakketype = '1' then      if Pakketype = '1' then
910      begin      begin
911        Storepakker1.Checked := true;        menuStorePakker.Checked := true;
912        radioStorPakke.Checked := true;        radioStorPakke.Checked := true;
913      end      end
914      else      else
915      begin      begin
916        Smpakker1.Checked := true;        menuSmaaPakker.Checked := true;
917        radioLillePakke.Checked := true;        radioLillePakke.Checked := true;
918      end;      end;
919    
920      if TestFunktionen = '1' then      if Config.TestFunktionen = '1' then
921      begin      begin
922        Testforbindelsen1.Visible := true;        Testforbindelsen1.Visible := true;
923        Testprinter1.Visible := true;        Testprinter1.Visible := true;
924        Testlyd1.Visible := true;        Testlyd1.Visible := true;
925        Testlyd2.Visible := true;        Testlyd2.Visible := true;
926      end      end
927      else if TestFunktionen = '2' then      else if Config.TestFunktionen = '2' then
928      begin      begin
929        Testforbindelsen1.Enabled := false;        Testforbindelsen1.Enabled := false;
930        Testprinter1.Enabled := false;        Testprinter1.Enabled := false;
# Line 1029  begin Line 939  begin
939        Testlyd2.Visible := false;        Testlyd2.Visible := false;
940      end;      end;
941    
     if not FileExists(AlarmLyd) then  
     begin  
       AlarmLyd := '';  
     end;  
942    
     if not FileExists(ScannetOkLyd) then  
     begin  
       ScannetOkLyd := '';  
     end;  
943    
     if not FileExists(ScannetOkStorLyd) then  
     begin  
       ScannetOkStorLyd := '';  
     end;  
   
   
     if not FileExists(ScannetOkTilTjekkodeLyd) then  
     begin  
       ScannetOkTilTjekkodeLyd := '';  
     end;  
944    
945    
946      if (PrinterNavn <> '') then      LabelPrint := TLabelPrint.Create( self, Config, Config.PrinterNavn );
947      begin      LabelPrint.CheckPrintQue('Opstart', Config.PrinterNavn);
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
   
     CheckPrintQue('Opstart');  
948    
949    finally    finally
950      Free;      Free;
# Line 1067  begin Line 953  begin
953      // UBD skal p.t. ikke have adgang til flg. funktioner      // UBD skal p.t. ikke have adgang til flg. funktioner
954      if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then      if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
955      begin      begin
956        ReturpakkerfraDAO1.Visible := false;        menuNatxpressReturDAO1.Visible := false;
957        Returpakkerfraboghandler1.Visible := false;        menuNatxpressReturfraKunde1.Visible := false;
958        Budlevering1.Visible := false;        menuDaoDirekte1.Visible := false;
959        Storepakker1.Visible := false;        menuStorePakker.Visible := false;
960        Smpakker1.Visible := false;        menuSmaaPakker.Visible := false;
961        Testprinter1.Visible := false;        Testprinter1.Visible := false;
962        Pakkeshoplevering1.Visible := false;        menuPakkeshop1.Visible := false;
963        Returpakkerfrapakkeshop1.Visible := false;        menuPakkeshopRetur1.Visible := false;
964      end;      end;
965    
966      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
# Line 1182  begin Line 1068  begin
1068      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1069      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1070      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1071        or (NumberString = 'DAO PAKKESHOP')
1072        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1073            or (LowerCase(NumberString) = 'for stor daodirekte' )
1074      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1075    
1076      begin      begin
# Line 1192  begin Line 1081  begin
1081      begin      begin
1082        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1083      end;      end;
1084    end;    end;  // Slut ctrl-v
1085    
1086    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1087    begin    begin
1088      if (Length(Trim(Stregkode)) = 0) then  
1089        // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1090        Stregkode := Trim(Stregkode);
1091    
1092        if (Length(Stregkode) = 0) then
1093      begin      begin
1094        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1095    
# Line 1246  begin Line 1139  begin
1139         exit;         exit;
1140      end;      end;
1141    
1142        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1143        begin
1144          if chkForstorTilDirekte.Enabled then
1145          begin
1146            chkForstorTilDirekte.Checked := true;
1147          end
1148          else
1149          begin
1150             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1151          end;
1152          Stregkode := '';
1153          StregkodeST.Caption := StregKode;
1154          exit;
1155        end;
1156    
1157    
1158      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1159      begin      begin
1160         if chkSporgEfterKunde.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
# Line 1400  begin Line 1309  begin
1309      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1310      begin      begin
1311        // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet        // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet
1312        URLStr := Format(UrlFindPakketype,[Stregkode]);        URLStr := Format(Config.UrlFindPakketype,[Stregkode]);
1313        try        try
1314          //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST          //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
1315          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
# Line 1443  begin Line 1352  begin
1352        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1353      end;      end;
1354    
1355      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1356          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1357          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1358          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1359          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1360          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1361      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1362          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1363    
1364         exit;         exit;
1365      end;      end;
1366    
1367      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (menuAutomatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1368      begin      begin
1369        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1370        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1484  begin Line 1393  begin
1393                InitPakkeshoplevering();                InitPakkeshoplevering();
1394              end;              end;
1395            end            end
1396        // Retur kan ikke scannes med 'Automatisk valg'       else if Pakketype = 'PakkeshopRetur' then
1397              begin
1398                if Scanningtype <> '6' then
1399                begin
1400                 VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' );
1401    
1402                 exit;
1403                end;
1404              end
1405    
1406    
1407        else        else
1408            begin            begin
1409            // Her skal komme en alarm og rød skærm            // Her skal komme en alarm og rød skærm
1410              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1411                 VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1412    
1413               exit;               exit;
1414            end;            end;
1415        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1416      end      end
1417      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if menuAutomatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1418      begin      begin
1419        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1420    
1421        exit;        exit;
1422      end;      end;
1423    
1424      if not Automatiskvalg1.Checked then      if not menuAutomatiskvalg1.Checked then
1425      begin      begin
1426        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1427        begin        begin
# Line 1513  begin Line 1432  begin
1432        end;        end;
1433      end;      end;
1434    
1435        // EmballageRepareret skal bare sætte reklamationkoden,
1436        // og så ellers fortsætte med scanning som normalt
1437        if (chkEmballageRepareret.Checked = True) then
1438        begin
1439          URLStr := Format(Config.UrlEmballageRepareret,[Sted,Stregkode]);
1440          WebSvar := IdHTTP1.Get(URLStr);
1441    
1442          chkEmballageRepareret.Checked := False;
1443        end;
1444    
1445      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (chkUdenforSpecifikation.Checked = True) then
1446        begin
1447          URLStr := Format(Config.URLUdenforSpecifikation,[Sted,Stregkode]);
1448          //InputBox( '1', '1', URLStr);
1449    
1450          WebSvar := IdHTTP1.Get(URLStr);
1451          //InputBox( '2', '2', WebSvar );
1452    
1453          chkUdenforSpecifikation.Checked := False;
1454          LabelPrint.PrintLabel(Stregkode);
1455    
1456          StregkodeST.Caption := '';
1457          Stregkode := '';
1458    
1459          RuteNummerST.Caption := '';
1460          BoghandlerNavnST.Caption := '';
1461          KommentarST.Caption := 'Retur til leverandør';
1462    
1463    
1464    
1465    
1466          exit;   //leave procedure
1467        end;
1468    
1469    
1470    
1471    
1472        if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and menuAutomatiskTjekkodeStyring.Checked then
1473      begin      begin
1474        chkScanTjekkode.Checked := false;        chkScanTjekkode.Checked := false;
1475        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
# Line 1528  begin Line 1482  begin
1482        end;        end;
1483      end;      end;
1484    
1485      if Pakkernormal1.Checked and not Scanogstjekkoden1.Checked then      if menuNatXpress1.Checked and not Scanogstjekkoden1.Checked then
1486        begin        begin
1487          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1488             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
# Line 1538  begin Line 1492  begin
1492             Stregkode := '';             Stregkode := '';
1493             InitScreen();             InitScreen();
1494        end        end
1495      else if (PakkeshopLevering1.Checked or Pakkernormal1.Checked) and not Scanogstjekkoden1.Checked then      else if (menuPakkeshop1.Checked or menuNatXpress1.Checked) and not Scanogstjekkoden1.Checked then
1496        begin        begin
1497          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1498             PakkeshopStregkode := Stregkode;             PakkeshopStregkode := Stregkode;
# Line 1550  begin Line 1504  begin
1504             Stregkode := '';             Stregkode := '';
1505             InitScreen();             InitScreen();
1506        end        end
1507      else if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      else if menuPakkeshop1.Checked or menuNatXpress1.Checked then
1508        if PakkeshopText1.Caption = 'Stregkode' then        if PakkeshopText1.Caption = 'Stregkode' then
1509         begin         begin
1510            if length(Stregkode) > 5 then            if length(Stregkode) > 5 then
# Line 1559  begin Line 1513  begin
1513              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1514              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1515    
1516              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(Config.ScannetOkTilTjekkodeLyd));
1517    
1518             end             end
1519            else            else
# Line 1576  begin Line 1530  begin
1530             PakkeshopTjekkode := Stregkode;             PakkeshopTjekkode := Stregkode;
1531             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1532             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1533             if (PakkeshopLevering1.Checked) then             if (menuPakkeshop1.Checked) then
1534                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(Config.FarvePakkeshoplevering);
1535             if (Pakkernormal1.Checked) then             if (menuNatXpress1.Checked) then
1536                MainForm.Color := TUtils.HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(Config.FarveNormal);
1537             btnNulstil.Visible := false;             btnNulstil.Visible := false;
1538           end           end
1539          else          else
1540           begin           begin
1541                if (PakkeshopLevering1.Checked) then                if (menuPakkeshop1.Checked) then
1542                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1543                if (Pakkernormal1.Checked) then                if (menuNatXpress1.Checked) then
1544                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1545                                    
1546                StregKode := '';                StregKode := '';
# Line 1598  begin Line 1552  begin
1552          InitScreen();          InitScreen();
1553       end;       end;
1554    
1555      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
1556      begin      begin
1557         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then  
1558           if menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1559            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1560         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if menuNatXpress1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
1561            StregKode := BoghandlerStregkode;            StregKode := BoghandlerStregkode;
1562         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1563         try         try
# Line 1616  begin Line 1571  begin
1571    
1572              exit;              exit;
1573            end;            end;
1574            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then
1575            begin            begin
1576              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);
1577              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 1632  begin Line 1587  begin
1587              tjekkodemangler := pos('Tjekkode mangler', Kommentar);              tjekkodemangler := pos('Tjekkode mangler', Kommentar);
1588              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1589              begin              begin
1590                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(Config.AlarmLyd));
1591                btnNulstil.Visible := true;                btnNulstil.Visible := true;
1592                MainForm.Color := clRed;                MainForm.Color := clRed;
1593              end;              end;
1594           end;           end;
1595            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
1596            begin            begin
1597              MainForm.Color := TUtils.HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1598              if Storepakker1.Checked then              if menuStorePakker.Checked then
1599              begin              begin
1600                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(Config.ScannetOkStorLyd));
1601              end              end
1602              else              else
1603              begin              begin
1604                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(Config.ScannetOkLyd));
1605              end;              end;
1606              btnNulstil.Visible := false;              btnNulstil.Visible := false;
1607            end            end
1608            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked) then
1609            begin            begin
1610              MainForm.Color := TUtils.HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1611              if Storepakker1.Checked then              if menuStorePakker.Checked then
1612              begin              begin
1613                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(Config.ScannetOkStorLyd));
1614              end              end
1615              else              else
1616              begin              begin
1617                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(Config.ScannetOkLyd));
1618              end;              end;
1619              btnNulstil.Visible := false;              btnNulstil.Visible := false;
1620            end            end
# Line 1674  begin Line 1629  begin
1629            begin            begin
1630              VisAlarmSkaerm('');              VisAlarmSkaerm('');
1631            end;            end;
1632    
1633           if not btnNulstil.Visible then           if not btnNulstil.Visible then
1634            begin            begin
1635    
1636              If (Budlevering1.Checked) then              If (menuDaoDirekte1.Checked) then
1637              begin              begin
1638                if Storepakker1.Checked then                if menuStorePakker.Checked then
1639                begin                begin
1640                  PlaySound(PWideChar(ScannetOkStorLyd));                  PlaySound(PWideChar(Config.ScannetOkStorLyd));
1641                end                end
1642                else                else
1643                begin                begin
1644                  PlaySound(PWideChar(ScannetOkLyd));                  PlaySound(PWideChar(Config.ScannetOkLyd));
1645                end;                end;
1646                InitLillePakke();                InitLillePakke();
1647              end;              end;
# Line 1723  begin Line 1679  begin
1679    
1680    Key := #0;    Key := #0;
1681    
1682    
1683    
1684    
1685    
1686    
1687  end; //End of OnKeyPress  end; //End of OnKeyPress
1688    
1689    
1690    
1691  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1692  const  const
1693    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
# Line 1732  var Line 1695  var
1695    WebSvar : String;    WebSvar : String;
1696    URLStr : String;    URLStr : String;
1697  begin  begin
1698    if UrlSendPrograminfo <> '' then    if Config.UrlSendPrograminfo <> '' then
1699    begin    begin
1700      URLStr := Format(UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);      URLStr := Format(Config.UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);
1701      try      try
1702        //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST        //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
1703        WebSvar := IdHTTP1.Get(URLStr);        WebSvar := IdHTTP1.Get(URLStr);
# Line 1747  begin Line 1710  begin
1710        ShowMessage(logTekst);        ShowMessage(logTekst);
1711        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
1712        // Vi nulstiller lige url feltet så rutinen ikke kaldes igen i forbindelse med lukning af programmet        // Vi nulstiller lige url feltet så rutinen ikke kaldes igen i forbindelse med lukning af programmet
1713        UrlSendPrograminfo := '';        Config.UrlSendPrograminfo := '';
1714        Application.Terminate;        Application.Terminate;
1715      end;      end;
1716      end;      end;
# Line 1766  var Line 1729  var
1729    
1730    
1731  begin  begin
1732      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
1733      begin      begin
1734        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1735          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1736          begin          begin
1737              wrkAntalSenere := 0;//initial Value
1738    
1739            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1740            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
# Line 1885  begin Line 1849  begin
1849                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1850              end;              end;
1851            end;            end;
1852  // 20150310: slut  
1853            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1854          end;          end;
1855      end;      end;
# Line 1915  procedure TMainForm.InitBladhus(); Line 1879  procedure TMainForm.InitBladhus();
1879    
1880  begin  begin
1881    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
1882    Pakkernormal1.Visible := false;    menuNatXpress1.Visible := false;
1883    ReturpakkerfraDAO1.Visible := false;    menuNatxpressReturDAO1.Visible := false;
1884    Returpakkerfraboghandler1.Visible := false;    menuNatxpressReturfraKunde1.Visible := false;
1885    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1886    ListBox1.Visible := true;    ListBox1.Visible := true;
1887  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1888  // 20150317: start  
1889  (*    if menuDaoDirekte1.Checked then
   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  
1890    begin    begin
1891      IndlesScanningLogFil();      IndlesScanningLogFil();
1892    end;    end;
# Line 1986  begin Line 1910  begin
1910      02 :      02 :
1911            begin;    // BK            begin;    // BK
1912              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1913              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1914              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1915              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
1916              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
1917              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
# Line 2024  begin Line 1948  begin
1948            end;            end;
1949      04 :  begin;           // DBK      04 :  begin;           // DBK
1950              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1951              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1952              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1953              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
1954              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
1955              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
# Line 2046  var Line 1970  var
1970    pakkestorrelse : String;    pakkestorrelse : String;
1971    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
1972    
1973    PakkeshopLabel: TPakkeshopLabel;    PakkeshopLabel: TLabelData;
1974  begin  begin
1975    if radioStorPakke.Checked then    if radioStorPakke.Checked then
1976    begin    begin
# Line 2058  begin Line 1982  begin
1982    end;    end;
1983    
1984    
1985    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
1986    begin    begin
1987       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
1988       begin       begin
1989         BoghandlerTjekkode := '-1';         BoghandlerTjekkode := '-1';
1990       end;       end;
1991       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);       URLStr := Format(Config.UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);
1992    end    end
1993    else if ReturpakkerfraDAO1.Checked then    else if menuNatxpressReturDAO1.Checked then
1994    begin    begin
1995       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);       URLStr := Format(Config.UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);
1996    end    end
1997    else if Returpakkerfraboghandler1.Checked then    else if menuNatxpressReturfraKunde1.Checked then
1998    begin    begin
1999       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);       URLStr := Format(Config.UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);
2000    end    end
2001    else if Budlevering1.Checked then    else if menuDaoDirekte1.Checked then
2002    begin    begin
2003       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);       URLStr := Format(Config.UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);
2004    end    end
2005    else if Pakkeshoplevering1.Checked then    else if menuPakkeshop1.Checked then
2006    begin    begin
2007       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);       URLStr := Format(Config.UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);
2008    end    end
2009    else if Returpakkerfrapakkeshop1.Checked then    else if menuPakkeshopRetur1.Checked then
2010    begin    begin
2011       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(Config.UrlReturPakkeshop,[Sted, PakkeNr]);
2012    end    end
2013    else if menuIndlevering.Checked then    else if menuIndlevering.Checked then
2014    begin    begin
2015      URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);      URLStr := Format(Config.UrlIndleveringsPakke,[Sted, PakkeNr]);
2016    end    end
2017    else    else
2018    begin    begin
2019      exit;      exit;
2020    end;    end;
2021    
2022      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2023      begin
2024        URLStr := Format(Config.URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2025      end;
2026    
2027    try    try
2028      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2029      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2115  begin Line 2045  begin
2045          end;          end;
2046      end;      end;
2047    end;    end;
2048    
2049    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2050    try    try
2051      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked then
2052       begin       begin
2053        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;
2054        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
# Line 2125  begin Line 2056  begin
2056        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2057        PrintNyLabel := False;        PrintNyLabel := False;
2058    
2059        if Pakkeshoplevering1.Checked then        if menuPakkeshop1.Checked then
2060        begin        begin
2061          try          try
2062            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
# Line 2138  begin Line 2069  begin
2069          end;          end;
2070        end;        end;
2071       end       end
2072      else if menuIndlevering.Checked then      else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2073      begin      begin
2074    
2075    
# Line 2148  begin Line 2079  begin
2079       if (Kommentar = 'Ok') then       if (Kommentar = 'Ok') then
2080       begin       begin
2081         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2082         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc         PakkeshopLabel := TLabelData.Create( XMLDocument1 ); //Opret struct og parse xml doc
2083         RuteNummer := PakkeshopLabel.Koreliste;         RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2084           Stregkode := PakkeshopLabel.Stregkode;
2085    
2086         PrintPakkeshopLabel( PakkeshopLabel );         LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel );
2087           chkForstorTilDirekte.Checked := false;
2088    
2089       end;       end;
2090    
# Line 2164  begin Line 2097  begin
2097        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2098        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2099        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2100        if Budlevering1.Checked then        if menuDaoDirekte1.Checked then
2101          begin          begin
2102          try          try
2103            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
# Line 2195  begin Line 2128  begin
2128      begin      begin
2129        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
2130        begin        begin
2131            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + ' Pakke burde være hos ' + Leveringssted;
2132            PrintNyLabel := False;            //PrintNyLabel := False; //ved fuld-daekning / X-ruter skal vi altid skrive label alligevel
2133        end;        end;
2134      end      end
2135      else if (Budlevering1.Checked) and (Leveringssted <> Sted) then      else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) And (Leveringssted <> '') then
2136      begin      begin
2137         if (Leveringssted = 'E') and (Sted = 'DBK') then        Kommentar := Kommentar + ' Pakke burde være hos ' + Leveringssted;
2138         begin        //PrintNyLabel := False;  //ved fuld-daekning / X-ruter skal vi altid skrive label alligevel
           // 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;  
2139      end;      end;
2140    except on e:exception do    except on e:exception do
2141      raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);      raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
# Line 2228  begin Line 2154  begin
2154    //Label1.Caption := Kommentar;   // bruges hvis der skal vises linieskift - det kan man ikke i en staticText    //Label1.Caption := Kommentar;   // bruges hvis der skal vises linieskift - det kan man ikke i en staticText
2155    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2156    List1msg := TimeToStr(now) + '; ';    List1msg := TimeToStr(now) + '; ';
2157    if Pakkeshoplevering1.Checked then    if menuPakkeshop1.Checked then
2158      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2159    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2160    if radioStorPakke.Checked then    if radioStorPakke.Checked then
# Line 2240  begin Line 2166  begin
2166      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2167    end;    end;
2168    List1msg := List1msg + BoghandlerNavn + '; ';    List1msg := List1msg + BoghandlerNavn + '; ';
2169    if ReturpakkerfraDAO1.Checked then    if menuNatxpressReturDAO1.Checked then
2170    begin    begin
2171      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2172    end;    end;
2173    if Returpakkerfraboghandler1.Checked then    if menuNatxpressReturfraKunde1.Checked then
2174    begin    begin
2175      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2176    end;    end;
2177    if ReturpakkerfraDAO1.Checked or Returpakkerfraboghandler1.Checked then    if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then
2178       List1msg := List1msg + '; ' + List1Pakkestorrelse;       List1msg := List1msg + '; ' + List1Pakkestorrelse;
2179    if length(BoghNr) > 0 then    if length(BoghNr) > 0 then
2180    begin    begin
2181      List1Msg := List1Msg + '; Indtastet ' + BoghNr;      List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2182    end;    end;
2183    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2184    begin    begin
2185       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2186        if (radioStorPakke.Checked) then        if (radioStorPakke.Checked) then
# Line 2266  begin Line 2192  begin
2192          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2193        end;        end;
2194    end;    end;
2195    if Returpakkerfrapakkeshop1.Checked then    if menuPakkeshopRetur1.Checked then
2196    begin    begin
2197      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2198    end;    end;
2199    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
2200    begin    begin
2201      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen
2202      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen
# Line 2283  begin Line 2209  begin
2209        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2210      end;      end;
2211    end;    end;
2212      if menuIndlevering.Checked then
2213      begin
2214        List1Msg := Stregkode;
2215      end;
2216    
2217    
2218    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2219    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2220    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
# Line 2304  pakkeForkertSted : Integer; Line 2236  pakkeForkertSted : Integer;
2236    kontrolKoreliste : string;    kontrolKoreliste : string;
2237    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2238  begin  begin
2239    if Budlevering1.Checked then    if (PrintNyLabel = True OR chkAltidPrintLabel.Checked = True) then
2240      begin
2241        LabelPrint.PrintLabel( Stregkode );
2242      end;
2243    
2244    
2245      exit;
2246    
2247      if menuDaoDirekte1.Checked then
2248       RuteNummerST.Color := TUtils.HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2249    
2250    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 2342  begin Line 2282  begin
2282        end;        end;
2283    end    end
2284    else    else
2285    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2286    begin    begin
2287       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2288       begin       begin
2289          PrintNyLabel := false;          PrintNyLabel := false;
2290    
2291          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(Config.AlarmLyd));
2292          MainForm.Color := clRed;          MainForm.Color := clRed;
2293          btnNulstil.Visible := true;          btnNulstil.Visible := true;
2294    
# Line 2368  begin Line 2308  begin
2308            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2309            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2310    
2311            if (PrinterNavn = 'Ingen') then  //          if (Config.PrinterNavn = 'Ingen') then
2312            begin  //          begin
2313               PrintNyLabel := false;  //             PrintNyLabel := false;
2314            end;  //          end;
2315    
2316            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2317            begin            begin
2318              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(Config.AlarmLyd));
2319              MainForm.Color := clRed;              MainForm.Color := clRed;
2320              btnNulstil.Visible := true;              btnNulstil.Visible := true;
2321            end;            end;
# Line 2401  begin Line 2341  begin
2341    
2342            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2343            begin            begin
2344              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(Config.AlarmLyd));
2345              MainForm.Color := clRed;              MainForm.Color := clRed;
2346              btnNulstil.Visible := true;              btnNulstil.Visible := true;
2347            end;            end;
# Line 2411  begin Line 2351  begin
2351    
2352    end;    end;
2353    
2354    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2355    begin    begin
2356      case BladhusSted of      case BladhusSted of
2357        00 :  begin;        00 :  begin;
# Line 2423  begin Line 2363  begin
2363               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2364  // 20150304: slut  // 20150304: slut
2365                begin                begin
2366                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2367                end;                end;
2368              end;              end;
2369        01 :  begin;        01 :  begin;
# Line 2431  begin Line 2371  begin
2371                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2372                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2373                begin                begin
2374                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2375                end;                end;
2376              end;              end;
2377        02 :  begin;        02 :  begin;
2378                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2379                begin                begin
2380                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2381                end;                end;
2382              end;              end;
2383        03 :  begin;        03 :  begin;
# Line 2445  begin Line 2385  begin
2385                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2386                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2387               begin               begin
2388                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2389               end;               end;
2390              end;              end;
2391        04 :  begin;        04 :  begin;
2392                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2393                begin                begin
2394                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2395                end;                end;
2396              end;              end;
2397        else        else
# Line 2460  begin Line 2400  begin
2400    end;    end;
2401    
2402  // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her  // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her
2403    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
2404    begin    begin
2405      exit;      exit;
2406    end;    end;
2407    
2408    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
2409    begin    begin
2410    end    end
2411    else    else
2412    begin    begin
2413      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
2414      begin      begin
2415        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2416        if (chkAltidPrintLabel.Checked) then        if (chkAltidPrintLabel.Checked) then
# Line 2487  begin Line 2427  begin
2427        end;        end;
2428        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2429        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2430        with Printer do  
2431        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2432          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;  
2433      end;      end;
2434    end;    end;
2435    
2436  end;  end;
2437    
 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;  
2438    
2439    
2440  procedure TMainForm.radioStorPakkeClick(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2441  begin  begin
2442      Storepakker1.Checked := true;      menuStorePakker.Checked := true;
2443      radioStorPakke.Checked := true;      radioStorPakke.Checked := true;
2444  end;  end;
2445    
2446  procedure TMainForm.radioLillePakkeClick(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2447  begin  begin
2448      Smpakker1.Checked := true;      menuSmaaPakker.Checked := true;
2449      radioLillePakke.Checked := true;      radioLillePakke.Checked := true;
2450  end;  end;
2451    
# Line 2583  begin Line 2463  begin
2463  end;  end;
2464    
2465    
2466    procedure TMainForm.chkUdenforSpecifikationClick(Sender: TObject);
2467    begin
2468      if (chkUdenforSpecifikation.Checked = true) then
2469      begin
2470        chkEmballageRepareret.Checked := false;
2471      end;
2472    end;
2473    
2474    procedure TMainForm.chkEmballageRepareretClick(Sender: TObject);
2475    begin
2476      if (chkEmballageRepareret.Checked = true) then
2477      begin
2478        chkUdenforSpecifikation.Checked := false;
2479      end;
2480    end;
2481    
2482  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2483  begin  begin
2484    if chkAltidPrintLabel.Checked then    if chkAltidPrintLabel.Checked then
# Line 2596  begin Line 2492  begin
2492    
2493  end;  end;
2494    
2495    
2496    
2497  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2498  begin  begin
2499    if chkScanTjekkode.Checked then    if chkScanTjekkode.Checked then
# Line 2608  begin Line 2506  begin
2506    end;    end;
2507  end;  end;
2508    
2509  procedure TMainForm.Pakkeshoplevering1Click(Sender: TObject);  procedure TMainForm.menuPakkeshop1Click(Sender: TObject);
2510  begin  begin
2511        Scanningtype := '5';        Scanningtype := '5';
2512        InitPakkeshoplevering();        InitPakkeshoplevering();
# Line 2617  end; Line 2515  end;
2515    
2516  procedure TMainForm.NulstilAutomatiskValg();  procedure TMainForm.NulstilAutomatiskValg();
2517  begin  begin
2518      Automatiskvalg1.Checked := false;      menuAutomatiskvalg1.Checked := false;
2519      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2520      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2521    
# Line 2629  begin Line 2527  begin
2527        // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)        // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)
2528        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
2529        PanelValgA.Font.Color := clInactiveCaption;        PanelValgA.Font.Color := clInactiveCaption;
2530        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
2531      end;      end;
2532  // 20150317: slut  // 20150317: slut
2533  end;  end;
# Line 2644  begin Line 2542  begin
2542    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2543    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2544    
2545          // Tjekker urls    try
2546          logTekst := 'Tjekker urls.';      // Tjekker urls
2547          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2548          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2549        SkrivScanningLogFil(logTekst);
2550    
         // Tjekker UrlNormal  
         if PanelValg1.Enabled = true then  
         begin  
           if TUtils.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;  
2551    
         // Tjekker UrlReturDAO  
         if PanelValg2.Enabled = true then  
         begin  
           if TUtils.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;  
2552    
2553          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2554          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2555          begin      begin
2556            if TUtils.CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', Config.UrlNormal, urlFejl);
2557            begin      end;
             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;  
2558    
2559          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2560          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2561          begin      begin
2562            if TUtils.CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', Config.UrlReturDAO, urlFejl);
2563            begin      end;
             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;  
2564    
2565          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2566          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2567          begin      begin
2568            if TUtils.CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', Config.UrlReturBoghandler, urlFejl);
2569            begin      end;
             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;  
2570    
2571          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2572          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2573          begin      begin
2574            if TUtils.CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', Config.UrlBudlevering, urlFejl);
2575            begin      end;
             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;  
2576    
2577          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2578          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2579          or (PanelValg4.Enabled = true) then      begin
2580          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', Config.UrlPakkeshoplevering, urlFejl);
2581            if TUtils.CheckUrl(UrlManglendeScanninger) then      end;
           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;  
2582    
2583          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2584          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2585          begin      begin
2586            if TUtils.CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', Config.UrlReturPakkeshop, urlFejl);
2587            begin      end;
             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;  
2588    
2589          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2590          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2591          begin      begin
2592            if TUtils.CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', Config.UrlManglendeScanninger, urlFejl);
2593            begin      end;
             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;  
2594    
2595         // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger      // Tjekker UrlPakkeshopManglendeScanninger
2596          if PanelValg7.Enabled = true then      if PanelValg5.Enabled = true then
2597          begin      begin
2598            if TUtils.CheckUrl(UrlIndleveringsPakke) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', Config.UrlPakkeshopManglendeScanninger, urlFejl);
2599            begin      end;
             logTekst := 'UrlIndleveringsPakke accepteret: ' + UrlIndleveringsPakke;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlIndleveringsPakke svarer ikke: ' + UrlIndleveringsPakke;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
2600    
2601            if TUtils.CheckUrl(UrlIndleveringsPakkeManglendeScanninger) then      // Tjekker UrlPakkeshopManglendeReturScanninger
2602            begin      if PanelValg6.Enabled = true then
2603              logTekst := 'UrlIndleveringsPakkeManglendeScanninger accepteret: ' + UrlIndleveringsPakkeManglendeScanninger;      begin
2604              SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', Config.UrlPakkeshopManglendeReturScanninger, urlFejl);
2605            end      end;
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlIndleveringsPakkeManglendeScanninger svarer ikke: ' + UrlIndleveringsPakkeManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2606    
2607          // Tjekker UrlEKLoverforsel     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2608          if PanelValg1.Enabled = true then      if PanelValg7.Enabled = true then
2609          begin      begin
2610            if TUtils.CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlIndleveringsPakke', Config.UrlIndleveringsPakke, urlFejl);
2611            begin        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', Config.UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2612              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;      end;
             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;  
2613    
2614        // Tjekker UrlEKLoverforsel
2615        if PanelValg1.Enabled = true then
2616        begin
2617          TjekkerEnkeltUrl('UrlEKLoverforsel', Config.UrlEKLoverforsel, urlFejl);
2618        end;
2619    
         // Tjekker UrlEKLoverforselPakkeshop  
         if PanelValg5.Enabled = true then  
         begin  
           if TUtils.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;  
2620    
2621        // Tjekker UrlEKLoverforselPakkeshop
2622        if PanelValg5.Enabled = true then
2623        begin
2624          TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', Config.UrlEKLoverforselPakkeshop, urlFejl);
2625        end;
2626    
         // Tjekker UrlFindPakketype  
         if TUtils.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;  
2627    
2628          // Tjekker UrlSendPrograminfo      // Tjekker UrlFindPakketype
2629          if TUtils.CheckUrl(UrlSendPrograminfo) then      TjekkerEnkeltUrl('UrlFindPakketype', Config.UrlFindPakketype, urlFejl);
2630          begin  
2631            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;      // Tjekker UrlSendPrograminfo
2632            SkrivScanningLogFil(logTekst);      TjekkerEnkeltUrl('UrlSendPrograminfo', Config.UrlSendPrograminfo, urlFejl);
         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;  
2633    
2634          if urlFejl > 0 then  
2635          begin  
2636            TjekUrls := '-';   // markerer at der var fejl      logTekst := 'urls er ok';
2637          end      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2638          else      SkrivScanningLogFil(logTekst);
2639          begin  
2640            logTekst := 'urls er ok';    Except
2641            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      Config.TjekUrls := '-';   // markerer at der var fejl
2642            SkrivScanningLogFil(logTekst);  
2643          end;    end;
2644    end;
2645    
2646    procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2647    const
2648      crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
2649    begin
2650      if TUtils.CheckUrl(Url) then
2651    
2652      begin
2653        logTekst := UrlNavn + ' accepteret: ' + Url;
2654        SkrivScanningLogFil(logTekst);
2655      end
2656      else
2657      begin
2658        inc(urlFejl);   // Optæller antal fejl
2659        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2660        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2661        if Config.TjekUrls = '1' then
2662        begin
2663          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2664        end;
2665    
2666        SkrivScanningLogFil(logTekst);
2667    
2668        if Config.TjekUrls = '1' then
2669        begin
2670          ShowMessage(logTekst);
2671          Config.UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2672          Application.Terminate;
2673    
2674          raise Exception.Create('UrlFejl');
2675    
2676        end;
2677      end;
2678    
2679  end;  end;
2680    
2681    
2682    
2683  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2684  var  var
2685    SR: TSearchRec;    SR: TSearchRec;
# Line 3145  begin Line 2749  begin
2749    if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then    if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then
2750    begin    begin
2751       ShowMessage('Programmet afbrydes...');       ShowMessage('Programmet afbrydes...');
2752       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
2753       Application.Terminate;       Application.Terminate;
2754       exit;       exit;
2755    end;    end;
# Line 3155  begin Line 2759  begin
2759    if Farve <> '' then    if Farve <> '' then
2760    begin    begin
2761       MainForm.Color := TUtils.HexToTColor(Farve);       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  
2762    end;    end;
2763    if (Budlevering1.Checked) then    if (menuDaoDirekte1.Checked) then
2764    begin    begin
2765       InitLillePakke();       InitLillePakke();
2766    end;    end;
# Line 3230  procedure TMainForm.PanelValgAClick(Send Line 2824  procedure TMainForm.PanelValgAClick(Send
2824  begin  begin
2825  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2826  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2827    AutomatiskValg1.Checked := true;    menuAutomatiskvalg1.Checked := true;
2828    PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2829    PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2830    
# Line 3238  begin Line 2832  begin
2832    
2833  end;  end;
2834    
2835  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.menuNatXpress1Click(Sender: TObject);
2836  begin  begin
2837        Scanningtype := '1';        Scanningtype := '1';
2838        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3257  var Line 2851  var
2851    Leveringssted : String;    Leveringssted : String;
2852    orgTjekUrls : String;    orgTjekUrls : String;
2853  begin  begin
2854    orgTjekUrls := TjekUrls;    orgTjekUrls := Config.TjekUrls;
2855    if (TjekUrls = '1') or (TjekUrls = '2') then    if (Config.TjekUrls = '1') or (Config.TjekUrls = '2') then
2856    begin    begin
2857      TjekkerUrls();      TjekkerUrls();
2858    end;    end;
2859    if TjekUrls = '-' then    if Config.TjekUrls = '-' then
2860    begin    begin
2861      //ShowMessage('Der var fejl i een eller flere urls - se logvinduet');      //ShowMessage('Der var fejl i een eller flere urls - se logvinduet');
2862      RuteNummer := '';      RuteNummer := '';
# Line 3271  begin Line 2865  begin
2865      Koreliste := '';      Koreliste := '';
2866      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2867      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2868      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(Config.AlarmLyd));
2869      MainForm.Color := clRed;      MainForm.Color := clRed;
2870      btnNulstil.Visible := true;      btnNulstil.Visible := true;
2871    end    end
# Line 3284  begin Line 2878  begin
2878      SmsKode := '999999';      SmsKode := '999999';
2879      DBKbane := '999';      DBKbane := '999';
2880      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2881    
2882    
2883      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2884      FocusControl(StregkodeST);      FocusControl(StregkodeST);
2885    end;    end;
2886    TjekUrls := orgTjekUrls;    Config.TjekUrls := orgTjekUrls;
2887    
2888  end;  end;
2889    
# Line 3301  var Line 2897  var
2897    SmsKode : String;    SmsKode : String;
2898    DBKbane : String;    DBKbane : String;
2899    Leveringssted : String;    Leveringssted : String;
2900      LabelData : TLabelData;
2901  begin  begin
2902    RuteNummer := 'Rutenr';    RuteNummer := 'Rutenr';
2903    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
# Line 3308  begin Line 2905  begin
2905    Falsk := False;    Falsk := False;
2906    
2907    
2908    if (Printer.Printers.Count = 0) then    if (LabelPrint.GetPrinterCount() = 0) then
2909    begin    begin
2910      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2911    end    end
2912    else if PrinterNavn = 'Ingen' then  //  else if Config.PrinterNavn = 'Ingen' then //Det giver ikke længere mening at kunne fravælge printer
2913    begin  //  begin
2914      ShowMessage('Der er fravalgt printer i dette program.');  //    ShowMessage('Der er fravalgt printer i dette program.');
2915    end  //  end
2916    else    else
2917    begin    begin
2918      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2919      SmsKode := '999999';  //    SmsKode := '999999';
2920      DBKbane := '999';  //    DBKbane := '999';
2921      Leveringssted := 'XXX';  //    Leveringssted := 'XXX';
2922      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);  //    PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2923      CheckPrintQue('Test');  
2924    
2925        LabelData := TLabelData.Create(nil);
2926        LabelData.LabelType := 'simpel';
2927        LabelData.SimpelLinie1 := '999999';
2928        LabelData.SimpelLinie2 := '999';
2929        LabelData.SimpelLinie3 := 'xxx';
2930        LabelPrint.PrintLabelData(Labeldata);
2931    
2932        LabelPrint.CheckPrintQue('Test', Config.PrinterNavn);
2933    
2934        LabelData.Free();
2935    
2936    end;    end;
2937    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2938  end;  end;
2939    
2940  procedure TMainForm.Timer1Timer(Sender: TObject);  procedure TMainForm.Timer1Timer(Sender: TObject);
2941  begin  begin
2942    if (TjekPrinter = '1') then    if (Config.TjekPrinter = '1') then
2943    begin    begin
2944      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', Config.PrinterNavn);
2945    end    end
2946    else    else
2947    begin    begin
# Line 3386  begin Line 2995  begin
2995      tekst := tekst+crlf+crlf;      tekst := tekst+crlf+crlf;
2996      tekst := tekst+crlf+crlf+'          **********  DETTE ER KUN EN TEST VERSION  **********';      tekst := tekst+crlf+crlf+'          **********  DETTE ER KUN EN TEST VERSION  **********';
2997      tekst := tekst+crlf+crlf;      tekst := tekst+crlf+crlf;
2998      tekst := tekst+crlf+crlf+'Url: '+url;      tekst := tekst+crlf+crlf+'Url: ' + Url;
2999    end;    end;
3000    
3001    MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);    MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);
3002    
3003  end;  end;
3004    
3005    
3006  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
3007    Rect: TRect; State: TOwnerDrawState);    Rect: TRect; State: TOwnerDrawState);
3008  var  var
# Line 3507  begin Line 3117  begin
3117    
3118  end;  end;
3119    
3120  procedure TMainForm.ReturpakkerfraDAO1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject);
3121  begin  begin
3122        Scanningtype := '2';        Scanningtype := '2';
3123        NulstilAutomatiskValg();        NulstilAutomatiskValg();
3124        InitReturFraDao();        InitReturFraDao();
3125  end;  end;
3126    
3127  procedure TMainForm.Returpakkerfrapakkeshop1Click(Sender: TObject);  procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject);
3128  begin  begin
3129        Scanningtype := '6';        Scanningtype := '6';
3130        InitReturFraPakkeshop();        InitReturFraPakkeshop();
# Line 3523  end; Line 3133  end;
3133    
3134  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3135  begin  begin
3136        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3137        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3138        Pakkernormal1.Checked := true;        menuNatXpress1.Checked := true;
3139        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(Config.FarveNormal,Config.TitelNormal,Config.UrlNormal);
3140        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3141        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3142    
# Line 3537  begin Line 3147  begin
3147        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3148        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3149        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3150        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3151        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3152        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3153        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3154        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3546  begin Line 3156  begin
3156        BtnEKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3157        InitLillePakke();        InitLillePakke();
3158        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3159    
3160          chkForstorTilDirekte.Checked := false;
3161          chkForstorTilDirekte.Enabled := false;
3162    
3163        if BladhusSted = 0 then        if BladhusSted = 0 then
3164        begin        begin
3165          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3555  end; Line 3169  end;
3169    
3170  procedure TMainForm.InitReturFraDao();  procedure TMainForm.InitReturFraDao();
3171  begin  begin
3172        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3173        ReturpakkerfraDAO1.Checked := true;        menuNatxpressReturDAO1.Checked := true;
3174        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3175        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(Config.FarveReturDAO, Config.TitelReturDAO, Config.UrlReturDAO);
3176        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3177        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3178    
# Line 3569  begin Line 3183  begin
3183        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3184        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3185        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3186        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3187        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3188        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3189        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3190        ListBox1.Visible := true;        ListBox1.Visible := true;
3191        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3192        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3193        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3194    
3195          chkForstorTilDirekte.Checked := false;
3196          chkForstorTilDirekte.Enabled := false;
3197    
3198        InitLillePakke();        InitLillePakke();
3199  end;  end;
3200    
3201  procedure TMainForm.InitReturFraKunde();  procedure TMainForm.InitReturFraKunde();
3202  begin  begin
3203        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3204        Returpakkerfraboghandler1.Checked := true;        menuNatxpressReturfraKunde1.Checked := true;
3205        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3206        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(Config.FarveReturBoghandler, Config.TitelReturBoghandler, Config.UrlReturBoghandler);
3207        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3208        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3209    
# Line 3595  begin Line 3213  begin
3213        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3214        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3215        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3216        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3217        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3218        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3219        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3220        ListBox1.Visible := true;        ListBox1.Visible := true;
3221        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3222        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3223        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3224    
3225          chkForstorTilDirekte.Checked := false;
3226          chkForstorTilDirekte.Enabled := false;
3227    
3228        InitLillePakke();        InitLillePakke();
3229  end;  end;
3230    
3231  procedure TMainForm.InitDirektelevering();  procedure TMainForm.InitDirektelevering();
3232  begin  begin
3233        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3234        Budlevering1.Checked := true;        menuDaoDirekte1.Checked := true;
3235        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3236        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(Config.FarveBudlevering, Config.TitelBudlevering, Config.UrlBudlevering);
3237        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3238        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3239    
# Line 3622  begin Line 3244  begin
3244        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3245        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3246        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3247        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3248        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3249        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3250        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3251        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3634  begin Line 3256  begin
3256        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3257        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3258        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3259    
3260          chkForstorTilDirekte.Checked := false;
3261          chkForstorTilDirekte.Enabled := true;
3262    
3263        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3264        begin        begin
3265            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3644  end; Line 3270  end;
3270    
3271  procedure TMainForm.InitPakkeshoplevering();  procedure TMainForm.InitPakkeshoplevering();
3272  begin  begin
3273        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3274        Pakkeshoplevering1.Checked := true;        menuPakkeshop1.Checked := true;
3275        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3276        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(Config.FarvePakkeshoplevering, Config.TitelPakkeshoplevering, Config.UrlPakkeshoplevering);
3277        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3278        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3279    
# Line 3658  begin Line 3284  begin
3284        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3285        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3286        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3287        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3288        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3289        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3290        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3291        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3669  begin Line 3295  begin
3295    
3296        BtnEKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3297    
3298          chkForstorTilDirekte.Checked := false;
3299          chkForstorTilDirekte.Enabled := true;
3300    
3301        InitLillePakke();        InitLillePakke();
3302        IndlesScanningLogFil();        IndlesScanningLogFil();
3303        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3681  end; Line 3310  end;
3310    
3311  procedure TMainForm.InitReturFraPakkeshop();  procedure TMainForm.InitReturFraPakkeshop();
3312  begin  begin
3313        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3314        Returpakkerfrapakkeshop1.Checked := true;        menuPakkeshopRetur1.Checked := true;
3315        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3316        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(Config.FarveReturPakkeshop, Config.TitelReturPakkeshop, Config.UrlReturPakkeshop);
3317        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3318        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3319    
# Line 3695  begin Line 3324  begin
3324        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3325        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3326        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3327        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3328        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3329        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3330        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3331        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3704  begin Line 3333  begin
3333        BtnDownloadKontrolfil.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3334        BtnOpdaterListen.Enabled := true;        BtnOpdaterListen.Enabled := true;
3335        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3336    
3337          chkForstorTilDirekte.Checked := false;
3338          chkForstorTilDirekte.Enabled := false;
3339    
3340    
3341        InitLillePakke();        InitLillePakke();
3342        IndlesScanningLogFil();        IndlesScanningLogFil();
3343        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3714  begin Line 3348  begin
3348        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3349  end;  end;
3350    
3351  procedure TMainForm.Returpakkerfraboghandler1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject);
3352  begin  begin
3353        Scanningtype := '3';        Scanningtype := '3';
3354        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3724  end; Line 3358  end;
3358  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3359  begin  begin
3360        menuIndlevering.Checked := true;        menuIndlevering.Checked := true;
3361        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3362    
3363        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3364        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);        InitForm(Config.FarveIndlevering, Config.TitelIndlevering, Config.UrlReturPakkeshop);
3365        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3366        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3367    
# Line 3741  begin Line 3375  begin
3375    
3376    
3377    
3378        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3379        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3380        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3381        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3382        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3751  begin Line 3385  begin
3385        BtnDownloadKontrolfil.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3386        BtnOpdaterListen.Enabled := true;        BtnOpdaterListen.Enabled := true;
3387        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3388    
3389          chkForstorTilDirekte.Checked := false;
3390          chkForstorTilDirekte.Enabled := false;
3391    
3392    
3393        InitLillePakke();        InitLillePakke();
3394        IndlesScanningLogFil();        IndlesScanningLogFil();
3395        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3762  begin Line 3401  begin
3401  end;  end;
3402    
3403    
3404  procedure TMainForm.Storepakker1Click(Sender: TObject);  procedure TMainForm.menuStorePakkerClick(Sender: TObject);
3405  begin  begin
3406    InitStorPakke();    InitStorPakke();
3407  end;  end;
3408    
3409  procedure TMainForm.Smpakker1Click(Sender: TObject);  procedure TMainForm.menuSmaaPakkerClick(Sender: TObject);
3410  begin  begin
3411    InitLillePakke();    InitLillePakke();
3412  end;  end;
# Line 3775  end; Line 3414  end;
3414  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3415  begin  begin
3416    radioLillePakke.Checked := true;    radioLillePakke.Checked := true;
3417    Smpakker1.Checked := true;    menuSmaaPakker.Checked := true;
3418  //  Stregkode := '';  //  Stregkode := '';
3419  end;  end;
3420    
3421  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3422  begin  begin
3423    radioStorPakke.Checked := true;    radioStorPakke.Checked := true;
3424    Storepakker1.Checked := true;    menuStorePakker.Checked := true;
3425  // 20150310: start  // 20150310: start
3426  //  Stregkode := '';  //  Stregkode := '';
3427  // 20150310: slut  // 20150310: slut
# Line 3801  end; Line 3440  end;
3440    
3441  procedure TMainForm.Testlyd1Click(Sender: TObject);  procedure TMainForm.Testlyd1Click(Sender: TObject);
3442  begin  begin
3443     if AlarmLyd  <> '' then     if Config.AlarmLyd  <> '' then
3444     begin     begin
3445       PlaySound(PWideChar(AlarmLyd));       PlaySound(PWideChar(Config.AlarmLyd));
3446     end     end
3447     else     else
3448     begin     begin
# Line 3815  procedure TMainForm.Testlyd2Click(Sender Line 3454  procedure TMainForm.Testlyd2Click(Sender
3454  begin  begin
3455    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3456    begin    begin
3457       if ScannetOkTilTjekkodeLyd  <> '' then       if Config.ScannetOkTilTjekkodeLyd  <> '' then
3458       begin       begin
3459         PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));         PlaySound(PWideChar(Config.ScannetOkTilTjekkodeLyd));
3460       end       end
3461       else       else
3462       begin       begin
# Line 3826  begin Line 3465  begin
3465       exit;       exit;
3466    end;    end;
3467    
3468    if Smpakker1.Checked then    if menuSmaaPakker.Checked then
3469       if ScannetOkLyd  <> '' then       if Config.ScannetOkLyd  <> '' then
3470       begin       begin
3471         PlaySound(PWideChar(ScannetOkLyd));         PlaySound(PWideChar(Config.ScannetOkLyd));
3472       end       end
3473       else       else
3474       begin       begin
3475         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
3476       end;       end;
3477    if Storepakker1.Checked then    if menuStorePakker.Checked then
3478       if ScannetOkStorLyd  <> '' then       if Config.ScannetOkStorLyd  <> '' then
3479       begin       begin
3480         PlaySound(PWideChar(ScannetOkStorLyd));         PlaySound(PWideChar(Config.ScannetOkStorLyd));
3481       end       end
3482       else       else
3483       begin       begin
# Line 3847  begin Line 3486  begin
3486  end;  end;
3487    
3488    
3489  procedure TMainForm.Budlevering1Click(Sender: TObject);  procedure TMainForm.menuDaoDirekte1Click(Sender: TObject);
3490  begin  begin
3491        Scanningtype := '4';        Scanningtype := '4';
3492        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3875  begin Line 3514  begin
3514      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3515      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3516      StedKode := Sted;      StedKode := Sted;
3517      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(Config.UrlEKLoverforsel,[StedKode,Sted]);
3518  // 20150330: start  
3519      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3520      begin      begin
3521        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(Config.UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3522      end;      end;
3523  // 20150330: slut  
3524    
3525      try      try
3526      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 3939  begin Line 3578  begin
3578      // Hvis der var fejl i overførslen skal dette fejlmeldes her      // Hvis der var fejl i overførslen skal dette fejlmeldes her
3579      if status = 'Fejl' then      if status = 'Fejl' then
3580      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
3581         PlaySound(PWideChar(AlarmLyd));         PlaySound(PWideChar(Config.AlarmLyd));
3582         MainForm.Color := clRed;         MainForm.Color := clRed;
3583         RutenummerST.Caption := 'EKL overførsel';         RutenummerST.Caption := 'EKL overførsel';
3584         BoghandlerNavnST.Caption := 'Fejl:';         BoghandlerNavnST.Caption := 'Fejl:';
# Line 4483  begin Line 4122  begin
4122  end;  end;
4123    
4124    
 // ToDo: PrintPakkeshopLabel()  
 procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  
 var  
   XForm, XFormOld: TXForm; //Bruges til rotate X-formation  
   Angle: integer;  
   gMode: integer;  
   Dirigering: string;  
   
 begin  
     with Printer do  
     begin  
       BeginDoc();  
   
   
       Canvas.Font.Size := 16;  
       Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);  
   
   
   
       Canvas.TextOut(25, 90, PakkeshopLabel.Navn );  
       Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );  
       Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );  
   
   
       Canvas.Font.Size := 9;  
       Canvas.TextOut(110, 240, 'Pakkeshop:');  
       Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);  
       Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);  
       Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);  
   
       Canvas.TextOut(350, 240, 'Afsender:');  
       Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);  
       Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);  
       Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);  
   
       Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;  
       if ( PakkeshopLabel.Koreliste <> '') then  
       begin  
         Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;  
       end;  
   
   
       Canvas.Font.Size := 12;  
       Canvas.TextOut(15, 370, Dirigering);  
   
   
   
   
   
       //Tegn adskillelses linier  
       Canvas.Pen.Width := 2;  
       //Øverste linie  
       Canvas.MoveTo(20,80);  
       Canvas.LineTo(600,80);  
   
       // Midterste linie  
       Canvas.MoveTo( 20, 240);  
       Canvas.LineTo(600, 240);  
   
       //Nederste linie  
       Canvas.MoveTo( 20, 370);  
       Canvas.LineTo(600, 370);  
   
   
       //Tegn skrå streger over afsender  
       Canvas.Pen.Width := 1;  
       Canvas.MoveTo(600, 250);  
       Canvas.LineTo(350, 360);  
       Canvas.MoveTo(600, 360);  
       Canvas.LineTo(350, 250);  
   
   
   
   
       // Resten af rutinen vedr genering og placering af Barcode  
   
       BarCode.BarCodeType := bcCode128;  
       BarCode.Code128Subset := csCodeC;  
       BarCode.Code := PakkeshopLabel.Stregkode;  
       BarCode.Validate(True);  
   
       //Start X-formation  
       //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );  
       GetWorldTransform(Canvas.Handle, XFormOld);  
   
       Angle := 270;  
       XForm.eM11 := Cos(DegToRad(Angle));  
       XForm.eM12 := Sin(DegToRad(Angle));  
       XForm.eM21 := -Sin(DegToRad(Angle));  
       XForm.eM22 := Cos(DegToRad(Angle));  
       XForm.eDx := 0;  
       XForm.eDy := 0;  
   
       gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);  
       SetWorldTransform(Canvas.Handle, XForm);  
   
       // PaintToCanvasSize arbejder i Inches  
       // Første pos argument bliver nu Y og skal være negativ for at rykke den ned  
       //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre  
   
       BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);  
   
   
       SetWorldTransform(Canvas.Handle, XFormOld);  
       SetGraphicsMode(Canvas.Handle, gMode);  
   
       EndDoc();  
     end;  
   
   
 end;  
   
 function GetPixelsPerInchX(): Integer;  
 begin  
   Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)  
 end;  
   
 function GetPixelsPerInchY(): Integer;  
 begin  
   Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)  
 end;  
   
4125    
4126  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4127  var  var
# Line 4615  var Line 4132  var
4132    I: Integer;    I: Integer;
4133    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4134    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4135    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    antalLiniefelter, antalFelterFundet, linienr : Integer;
4136    pakketyper : TStrings;    //pakketyper : TStrings;
4137      pakketyper : TDictionary<String, Integer>;
4138      tmpAntal : Integer;
4139    
4140     time, timeSamlet : TTimingHelper;
4141    
4142    
4143    antlin : Integer;    antlin : Integer;
4144    
4145    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4146    
4147    XmlFelter : TStrings;    //XmlFelter : TStrings;
4148      XmlFelter : TDictionary<String, Integer>;
4149    
4150   begin   begin
4151      XmlFelter := TStringList.Create;  
4152      pakketyper := TStringList.Create;  
4153        XmlFelter := TDictionary<String, Integer>.Create;
4154        pakketyper := TDictionary<String, Integer>.Create;
4155    
4156      linienr := 0;      linienr := 0;
4157      ListBox2.Clear;      ListBox2.Clear;
4158      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
# Line 4640  var Line 4167  var
4167          StedKode := Sted;          StedKode := Sted;
4168        end;        end;
4169    
4170          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4171    
4172    
4173    
4174      if (Scanningtype = '7') then      if (Scanningtype = '7') then
4175       begin       begin
4176        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);        URLStr := Format(Config.UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4177       end       end
4178      else if (Scanningtype = '6') then      else if (Scanningtype = '6') then
4179       begin       begin
4180        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);        URLStr := Format(Config.UrlPakkeshopManglendeReturScanninger, [StedKode]);
4181       end       end
4182      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4183       begin       begin
4184        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);        URLStr := Format(Config.UrlPakkeshopManglendeScanninger, [StedKode]);
4185       end       end
4186      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4187       begin       begin
4188        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'B2']);
4189       end       end
4190      else if (Scanningtype = '4') then      else if (Scanningtype = '4') then
4191       begin       begin
4192        URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer        URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer
4193       end       end
4194      else      else
4195       begin       begin
# Line 4668  var Line 4197  var
4197       end;       end;
4198  // 20150310: slut  // 20150310: slut
4199    
4200        time := TTimingHelper.create();        //DEBUG
4201        timeSamlet := TTimingHelper.create();        //DEBUG
4202    
4203      try      try
4204      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
4205  //    URLStr := string(Utf8Encode(URLStr));  //    URLStr := string(Utf8Encode(URLStr));
# Line 4677  var Line 4209  var
4209        begin        begin
4210          // Her skal vi ikke gøre noget - men vi skal forespørge igen          // Her skal vi ikke gøre noget - men vi skal forespørge igen
4211          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
4212    
4213    
4214    
4215        end;        end;
4216        on e:exception do        on e:exception do
4217        begin        begin
# Line 4687  var Line 4222  var
4222        end;        end;
4223      end;      end;
4224      try      try
4225          time.stop('HTTP Load');     //DEBUG
4226    
4227        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4228    
4229          time.stop('XML Load');     //DEBUG
4230    
4231    
4232    
4233    
4234    
4235    
4236        antlin := 0;        antlin := 0;
4237        antlinIdag := 0;        antlinIdag := 0;
# Line 4699  var Line 4242  var
4242            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4243              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4244              begin              begin
4245                 antlin := antlin + 1;                 Inc(antlin);
4246                 // 20150306: start                 // 20150306: start
4247                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4248                begin                begin
4249                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4250                   begin                   begin
4251                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4252                   end                   end
4253                   else                   else
4254                   begin                   begin
4255                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4256                   end;                   end;
4257                end;                end;
4258                 // 20150306: slut                 // 20150306: slut
4259              end;              end;
4260            end;            end;
4261            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4262                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4263                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4264                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4265                  end
4266                else                else
4267                  XmlFelter.values[Node.NodeName] := '1';                begin
4268                    XmlFelter.Add(Node.NodeName, 1);
4269                  end;
4270    
4271        end;        end;
4272        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
# Line 4726  var Line 4274  var
4274        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4275        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4276    
4277          time.stop('Antal Linier');//DEBUG
4278    
4279          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4280    
4281        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4282        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4283        begin        begin
# Line 4734  var Line 4286  var
4286        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4287    
4288        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4289    
4290    
4291        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4292            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4293            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 4741  var Line 4295  var
4295                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4296                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4297                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4298              end;              end
4299              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4300                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4301                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4302                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4303              end;              end
4304              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4305                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4306                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4307                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4308              end;              end
4309              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4310                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4311                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4312                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4313              end;              end
4314              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4315                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4316                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4317                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4318                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4319                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4320                    pakketyper.TryGetValue(pakketype, tmpAntal);
4321                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4322                  end
4323                else                else
4324                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4325              end;              end
4326              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4327                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4328                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4329                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4330                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4331                  begin                  begin
4332  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4333                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4334                    begin                    begin
4335                      stregkoderMedTjekkodeArray[linienr] := TUtils.split(stregkode, ' ', 2);  // Fjerner lige en evt. fremtidig dato fra feltet                      stregkoderMedTjekkodeArray[linienr] := TUtils.split(stregkode, ' ', 2);  // Fjerner lige en evt. fremtidig dato fra feltet
# Line 4785  var Line 4341  var
4341                    linienr := linienr + 1;                    linienr := linienr + 1;
4342                  end;                  end;
4343              end;              end;
4344    
4345    
4346              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4347              begin              begin
4348                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 4800  var Line 4358  var
4358              end;              end;
4359            end;            end;
4360        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4361    
4362          // Free up the list object  
4363          time.stop('Fyld Listbox2');//DEBUG
4364    
4365    
4366          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4367    
4368    
4369          for pakketype in pakketyper.Keys do
4370          begin
4371            pakketyper.TryGetValue(pakketype, tmpAntal);
4372            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4373          end;
4374    
4375            // Free up the dictionary object
4376        pakketyper.Free;        pakketyper.Free;
4377    
4378    
4379    
4380  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');
4381        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4382        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 4912  var Line 4482  var
4482        end;        end;
4483      end;      end;
4484    
4485        time.stop('Done');//DEBUG
4486        timeSamlet.stop('SamletTid');//DEBUG
4487    
4488    
4489  end;  end;
4490    
4491  procedure TMainForm.IndlesScanningLogFil();  procedure TMainForm.IndlesScanningLogFil();
# Line 5087  begin Line 4661  begin
4661          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4662          logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';          logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4663          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
4664          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(Config.AlarmLyd));
4665        end;        end;
4666      end;      end;
4667    end    end
# Line 5096  begin Line 4670  begin
4670        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil '+filnavn+' findes ikke.');        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil '+filnavn+' findes ikke.');
4671        logTekst := 'Ruteskift fil '+filnavn+' findes ikke.';        logTekst := 'Ruteskift fil '+filnavn+' findes ikke.';
4672        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4673        PlaySound(PWideChar(AlarmLyd));        PlaySound(PWideChar(Config.AlarmLyd));
4674    end;    end;
4675  end;  end;
4676    
# Line 5167  begin Line 4741  begin
4741          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4742          logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';          logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4743          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
4744          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(Config.AlarmLyd));
4745        end;        end;
4746      end;      end;
4747    end    end
# Line 5176  begin Line 4750  begin
4750        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Kontrol fil '+filnavn+' findes ikke.');        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Kontrol fil '+filnavn+' findes ikke.');
4751        logTekst := 'Kontrol fil '+filnavn+' findes ikke.';        logTekst := 'Kontrol fil '+filnavn+' findes ikke.';
4752        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4753        PlaySound(PWideChar(AlarmLyd));        PlaySound(PWideChar(Config.AlarmLyd));
4754    end;    end;
4755  end;  end;
4756    
# Line 5234  procedure TMainForm.VisAlarmSkaerm(strMe Line 4808  procedure TMainForm.VisAlarmSkaerm(strMe
4808  begin  begin
4809    //ShowMessage('Ændring ikke tilladt');    //ShowMessage('Ændring ikke tilladt');
4810    // Her skal komme en 'rød skærm' alarm    // Her skal komme en 'rød skærm' alarm
4811    PlaySound(PWideChar(AlarmLyd));    PlaySound(PWideChar(Config.AlarmLyd));
4812    MainForm.Color := clRed;    MainForm.Color := clRed;
4813    
4814    
# Line 5248  begin Line 4822  begin
4822      KommentarST.Caption := strMessage;      KommentarST.Caption := strMessage;
4823    end;    end;
4824    
4825      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4826    
4827  end;  end;
4828    
4829  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
# Line 5307  begin Line 4883  begin
4883    result := svar;    result := svar;
4884  end;  end;
4885    
 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;  
4886    
4887  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4888  begin  begin
# Line 5340  begin Line 4897  begin
4897  end;  end;
4898    
4899    
4900    //Nedarvet fra IParentForm
4901    procedure TMainForm.Msg( msg : string);
4902    begin
4903      ShowMessage(msg);
4904    end;
4905    
4906    //Nedarvet fra IParentForm
4907    procedure TMainForm.LogMessage( msg : string);
4908    begin
4909      ListBox1.Items.Insert(0, msg);
4910      SkrivScanningLogFil(msg);
4911    end;
4912    
4913    
4914    //Nedarvet fra IParentForm
4915    procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
 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;  
4916  begin  begin
4917    
4918  // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1    PrinterstatusStaticText1.Caption := txt;
4919  //            'Test'  skal vise alarmlinie, samt opdatere listbox1    if (alert) then
 //            'Timer' skal kun vise alarmlinie  
   
   if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) 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  
4920    begin    begin
4921      printerTxt := 'Der er ikke installeret en printer på denne PC';      PrinterstatusStaticText1.Font.Color := clBlack;
4922      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4923      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
4924    end    end
4925    else    else
4926    begin    begin
4927      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4928      try      PrinterstatusStaticText1.Color := clWhite;
4929        EnumJobs(hPrinter, 0, 1000, 1, nil, 0, bytesNeeded, numJobs);      PrinterstatusStaticText1.Transparent := true;
4930        pJ := AllocMem(bytesNeeded);    end;
4931        if not EnumJobs(hPrinter, 0, 1000, 1, pJ, bytesNeeded, bytesNeeded, numJobs) then  end;
         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;  
4932    
4933            if (i = 0) then  //Nedarvet fra IParentForm
4934            begin  function TMainForm.GetFormObject() : TForm;
4935              PrinterstatusStaticText1.Caption := printerTxt + ': ' + IntToStr(numJobs) + ' dokument(er) in kø. Dokument status: ' + statusTxt;  begin
4936              PrinterstatusStaticText1.Font.Color := clBlack;    Result := self;
4937              PrinterstatusStaticText1.Color := MainForm.Color;  end;
             PrinterstatusStaticText1.Transparent := True;  
             if (numJobs > 3) then  
             begin  
               PrinterstatusStaticText1.Font.Color := clRed;  
               PrinterstatusStaticText1.Color := clWhite;  
               PrinterstatusStaticText1.Transparent := true;  
             end;  
           end;  
4938    
4939          end;  //Nedarvet fra IParentForm
4940        end  function TMainForm.GetXMLDocument() : TXMLDocument;
4941        finally  begin
4942          ClosePrinter(hPrinter);    Result := XMLDocument1
     end;  
   end;  
4943  end;  end;
4944    
4945    

Legend:
Removed from v.2700  
changed lines
  Added in v.3117

  ViewVC Help
Powered by ViewVC 1.1.20