/[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 3073 by torben, Wed Jul 27 15:25:24 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,    PakkeshopLabels,
24    StBarC,    Utils,
25    Math, // DegToRad() bruges i PrintPakkeshopLabel    ParentForm,
26    Utils    LabelPrint,
27      Configuration,
28      Vcl.Imaging.pngimage,
29      Generics.Collections
30    
31    ;    ;
32    
33  type  type
34    TMainForm = class(TForm)    TMainForm = class(TForm, IParentForm)
35      StregkodeST: TStaticText;      StregkodeST: TStaticText;
36      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
37      BoghandlerNavnST: TStaticText;      BoghandlerNavnST: TStaticText;
# Line 26  type Line 39  type
39      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
40      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
41      chkSporgEfterKunde: TCheckBox;      chkSporgEfterKunde: TCheckBox;
     KommentarST: TStaticText;  
42      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
43      N1: TMenuItem;      N1: TMenuItem;
44      Pakkernormal1: TMenuItem;      menuNatXpress1: TMenuItem;
45      ReturpakkerfraDAO1: TMenuItem;      menuNatxpressReturDAO1: TMenuItem;
46      Returpakkerfraboghandler1: TMenuItem;      menuNatxpressReturfraKunde1: TMenuItem;
47      Hjlp1: TMenuItem;      Hjlp1: TMenuItem;
48      Om1: TMenuItem;      Om1: TMenuItem;
49      Testforbindelsen1: TMenuItem;      Testforbindelsen1: TMenuItem;
# Line 44  type Line 56  type
56      radioStorPakke: TRadioButton;      radioStorPakke: TRadioButton;
57      radioLillePakke: TRadioButton;      radioLillePakke: TRadioButton;
58      N4: TMenuItem;      N4: TMenuItem;
59      Storepakker1: TMenuItem;      menuStorePakker: TMenuItem;
60      Smpakker1: TMenuItem;      menuSmaaPakker: TMenuItem;
61      Panel1: TPanel;      Panel1: TPanel;
62      Testlyd2: TMenuItem;      Testlyd2: TMenuItem;
63      Button1: TButton;      Button1: TButton;
64      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
65      ListBox1: TListBox;      ListBox1: TListBox;
66      Budlevering1: TMenuItem;      menuDaoDirekte1: TMenuItem;
67      BtnDownloadKontrolfil: TButton;      BtnDownloadKontrolfil: TButton;
68      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
69      Image1: TImage;      Image1: TImage;
# Line 59  type Line 71  type
71      BtnOpdaterListen: TButton;      BtnOpdaterListen: TButton;
72      BtnUploadLogfil: TButton;      BtnUploadLogfil: TButton;
73      BtnDownloadRuteskiftFil: TButton;      BtnDownloadRuteskiftFil: TButton;
74      Pakkeshoplevering1: TMenuItem;      menuPakkeshop1: TMenuItem;
75      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
76      btnNulstil: TButton;      btnNulstil: TButton;
77      Returpakkerfrapakkeshop1: TMenuItem;      menuPakkeshopRetur1: TMenuItem;
78      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
79      chkAltidPrintLabel: TCheckBox;      chkAltidPrintLabel: TCheckBox;
80      BtnEKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
# Line 73  type Line 85  type
85      Timer1: TTimer;      Timer1: TTimer;
86      chkScanTjekkode: TCheckBox;      chkScanTjekkode: TCheckBox;
87      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
88      Automatisktjekkodestyring1: TMenuItem;      menuAutomatiskTjekkodeStyring: TMenuItem;
89      Automatiskvalg1: TMenuItem;      menuAutomatiskvalg1: TMenuItem;
90      PanelValgA: TPanel;      PanelValgA: TPanel;
91      PanelValg1: TPanel;      PanelValg1: TPanel;
92      PanelValg2: TPanel;      PanelValg2: TPanel;
# Line 92  type Line 104  type
104      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
105      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
106      menuIndlevering: TMenuItem;      menuIndlevering: TMenuItem;
107        chkForstorTilDirekte: TCheckBox;
108        chkEmballageRepareret: TCheckBox;
109        KommentarST: TLabel;
110        chkUdenforSpecifikation: TCheckBox;
111    
112    
113    
114    function getProddato() : TDate;    function getProddato() : TDate;
115    function getProddag() : String;    function getProddag() : String;
116    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
   function GetCurrentPrinterHandle() : THandle;  
   function SavePChar(p: PChar): PChar;  
117    
118    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
119    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 129  type
129    procedure radioStorPakkeClick(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
130    procedure radioLillePakkeClick(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
131    procedure chkSporgEfterKundeClick(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
132    procedure Pakkernormal1Click(Sender: TObject);    procedure menuNatXpress1Click(Sender: TObject);
133    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
134    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
135    procedure Om1Click(Sender: TObject);    procedure Om1Click(Sender: TObject);
136    procedure Lukprogrammet1Click(Sender: TObject);    procedure Lukprogrammet1Click(Sender: TObject);
137    procedure Sprgefterboghandlernummer1Click(Sender: TObject);    procedure Sprgefterboghandlernummer1Click(Sender: TObject);
138    procedure ReturpakkerfraDAO1Click(Sender: TObject);    procedure menuNatxpressReturDAO1Click(Sender: TObject);
139    procedure Returpakkerfraboghandler1Click(Sender: TObject);    procedure menuNatxpressReturfraKunde1Click(Sender: TObject);
140    procedure Storepakker1Click(Sender: TObject);    procedure menuStorePakkerClick(Sender: TObject);
141    procedure Smpakker1Click(Sender: TObject);    procedure menuSmaaPakkerClick(Sender: TObject);
142    procedure Testlyd1Click(Sender: TObject);    procedure Testlyd1Click(Sender: TObject);
143    procedure Testlyd2Click(Sender: TObject);    procedure Testlyd2Click(Sender: TObject);
144    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
145    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
146    procedure Budlevering1Click(Sender: TObject);    procedure menuDaoDirekte1Click(Sender: TObject);
147    procedure BtnDownloadKontrolfilClick(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
148    procedure BtnOpdaterListenClick(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
149    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
# Line 139  type Line 155  type
155    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
156    procedure BtnUploadLogfilClick(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
157    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
158    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure menuPakkeshop1Click(Sender: TObject);
159    procedure btnNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
160    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure menuPakkeshopRetur1Click(Sender: TObject);
161    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
162    procedure InitReturFraDao();    procedure InitReturFraDao();
163    procedure InitReturFraKunde();    procedure InitReturFraKunde();
# Line 158  type Line 174  type
174    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
175    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
176    procedure chkScanTjekkodeClick(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
177    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure menuAutomatiskTjekkodeStyringClick(Sender: TObject);
178    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
179    procedure Automatiskvalg1Click(Sender: TObject);    procedure menuAutomatiskvalg1Click(Sender: TObject);
180    procedure PanelValgAClick(Sender: TObject);    procedure PanelValgAClick(Sender: TObject);
181    procedure PanelValg1Click(Sender: TObject);    procedure PanelValg1Click(Sender: TObject);
182    procedure PanelValg2Click(Sender: TObject);    procedure PanelValg2Click(Sender: TObject);
# Line 174  type Line 190  type
190    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
191    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
192    procedure TjekkerUrls();    procedure TjekkerUrls();
193      procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
194    
195    procedure menuIndleveringClick(Sender: TObject);    procedure menuIndleveringClick(Sender: TObject);
196    
197    procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  
198    procedure CheckPrintQue(tjektype : string);  
199      //Nedarvet fra IParentForm
200      procedure Msg( msg : string);
201      procedure LogMessage( msg : string);
202      procedure SetPrinterstatusText( txt: string; alert: boolean);
203      function GetFormObject() : TForm;
204    
205    
206    
207    private    private
# Line 187  type Line 210  type
210      SkrivLog : String;      SkrivLog : String;
211      Sted : String;      Sted : String;
212      StedNavn : String;      StedNavn : String;
213      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering,
214  // 29150330: start              UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,
215                UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel, URLOmdirigerTilPakkeshop : String;
216    
217      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
218  // 20150330: slut  
219      UrlFindPakketype, UrlSendPrograminfo: String;      UrlFindPakketype, UrlSendPrograminfo: String;
220      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
221      ScanTjekkode : String;      ScanTjekkode : String;
222      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
223      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;  
224      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop,
225      LabelType : integer;            FarveIndlevering : String;
226    
227        Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop,
228              TitelIndlevering : String;
229    
230      AlarmLyd : String;      AlarmLyd : String;
231      ScannetOkLyd : String;      ScannetOkLyd : String;
232      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
# Line 206  type Line 235  type
235    
236      PrinterNavn : String;      PrinterNavn : String;
237      TjekPrinter : String;      TjekPrinter : String;
238      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;  
239      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
240      BladhusSted : Integer;      BladhusSted : Integer;
241      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 241  type Line 248  type
248      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
249      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
250      TjekUrls : String;      TjekUrls : String;
251        Config : TConfiguration;
252    
     Barcode : TStBarcode;  
253    
254        LabelPrint: TLabelPrint;
255    
256      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 = '');
257      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
258      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 = '');
259      procedure CheckCode();      procedure CheckCode();
260      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanninger();
# Line 256  type Line 264  type
264      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
265      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
266      procedure VisAlarmSkaerm(strMessage: string);      procedure VisAlarmSkaerm(strMessage: string);
267        function InjectURL(Url : String) : String;
268    
269    public    public
270      { Public declarations }      { Public declarations }
271    end;    end;
272    
       function GetPixelsPerInchX(): Integer;  
     function GetPixelsPerInchY(): Integer;  
273    
274  var  var
275    MainForm: TMainForm;    MainForm: TMainForm;
# Line 278  implementation Line 285  implementation
285  {$R *.dfm}  {$R *.dfm}
286    
287    
288    //FormCreate kaldes før InitForm
289    
290  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
291  begin  begin
292    
293  // 20150309: startr      IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect
294        IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read
295    
296    
297    
298    
299      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
 // 20150309: slut  
300    
     Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component  
301    
302      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
303      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 357  begin Line 369  begin
369        else if (Sted = 'BR') then        else if (Sted = 'BR') then
370          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
371        else if (Sted = 'BK') then        else if (Sted = 'BK') then
372          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
373          else if (Sted = 'TK') then
374            begin StedNavn := 'BK/Trykkompagniet: '; end
375        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
376          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
377        else if (Sted = '1') then        else if (Sted = '1') then
378          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
379        else if (Sted = '2') then        else if (Sted = '2') then
# Line 393  begin Line 407  begin
407        PrinterstatusStaticText1.Color := MainForm.Color;        PrinterstatusStaticText1.Color := MainForm.Color;
408      end;      end;
409    
410      if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      if menuPakkeshop1.Checked or menuNatXpress1.Checked then
411        PakkeshopText1.Visible := true        PakkeshopText1.Visible := true
412      else      else
413        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
# Line 418  begin Line 432  begin
432        end;        end;
433      end;      end;
434    
435      if Automatisktjekkodestyring1.Checked then      if menuAutomatiskTjekkodeStyring.Checked then
436      begin      begin
437        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
438        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
# Line 454  begin Line 468  begin
468        end;        end;
469      end;      end;
470    
471    
472  end;  end;
473    
474  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 475  begin Line 490  begin
490    StregkodeST.Caption := Stregkode;    StregkodeST.Caption := Stregkode;
491  end;  end;
492    
493  procedure TMainForm.Automatisktjekkodestyring1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskTjekkodeStyringClick(Sender: TObject);
494  begin  begin
495    if Automatisktjekkodestyring1.Checked then    if menuAutomatiskTjekkodeStyring.Checked then
496    begin    begin
497       chkScanTjekkode.Enabled := false;       chkScanTjekkode.Enabled := false;
498       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
# Line 490  begin Line 505  begin
505    
506  end;  end;
507    
508  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskvalg1Click(Sender: TObject);
509  begin  begin
510  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
511  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
512       AutomatiskValg1.Checked := true;       menuAutomatiskvalg1.Checked := true;
513       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
514       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
515  end;  end;
516    
517    function TMainForm.InjectURL(Url : String) : String;
518    begin
519    
520      Url := Url + '&ver=' + TUtils.URLEncode( TUtils.Sto_GetFmtFileVersion(''));
521      Url := Url + '&host=' + TUtils.URLEncode( TUtils.GetComputerNameHelper());
522      Url := Url + '&user=' + TUtils.URLEncode( TUtils.GetCurrentUserName());
523    
524      Result := Url;
525    end;
526    
527    //InitForm kaldes før FormCreate
528  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
529  const  const
530    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
531  var  var
   printerInd : integer;  
532    gemScanningtype : String;    gemScanningtype : String;
533    
534  begin  begin
535    
536    
537    // Initierer nogle variabler    // Initierer nogle variabler
538    BladhusSted := 00;    BladhusSted := 00;
539    Application.ShowHint := True;    Application.ShowHint := True;
# Line 534  begin Line 561  begin
561    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
562    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 750;
563    
564      Config := TConfiguration.Create();
565      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
566      Config.Sted := Sted;
567    
568    // Læser parametre fra ini filen    // Læser parametre fra ini filen
569    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
570    try    try
571    
572    
573      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
574      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
575      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
576    
577      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');
578        UrlFindPakketype := InjectURL(UrlFindPakketype);
579    
580      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');
581        UrlSendPrograminfo := InjectURL(UrlSendPrograminfo);
582    
583      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');
584        UrlNormal := InjectURL(UrlNormal);
585    
586      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');
587        UrlReturDAO := InjectURL(UrlReturDAO);
588    
589      UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','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');
590        UrlReturBoghandler := InjectURL(UrlReturBoghandler);
591    
592      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');
593        UrlBudlevering := InjectURL(UrlBudlevering);
594    
595      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');
596        UrlManglendeScanninger := InjectURL(UrlManglendeScanninger);
597    
598      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');
599        UrlEKLoverforsel := InjectURL(UrlEKLoverforsel);
600    
601      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');
602        UrlEKLoverforselPakkeshop := InjectURL(UrlEKLoverforselPakkeshop);
603    
604      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');
605        UrlPakkeshoplevering := InjectURL(UrlPakkeshoplevering);
606    
607      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');
608        UrlReturPakkeshop := InjectURL(UrlReturPakkeshop);
609    
610      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');
611      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := InjectURL(UrlPakkeshopManglendeScanninger);
612    
613        UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
614        UrlPakkeshopManglendeReturScanninger := InjectURL(UrlPakkeshopManglendeReturScanninger);
615    
616      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
617        UrlIndleveringsPakke := InjectURL(UrlIndleveringsPakke);
618    
619      UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');      UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
620        UrlIndleveringsPakkeManglendeScanninger := InjectURL(UrlIndleveringsPakkeManglendeScanninger);
621    
622        URLOmdirigerTilPakkeshop := ReadString('Settings', 'URLOmdirigerTilPakkeshop','http://omdeling.info/webservices/pakkeshop/PakkeKontrolOmdirigerTilPakkeshop.php?sted=%s&stregkode=%s');
623        URLOmdirigerTilPakkeshop := InjectURL(URLOmdirigerTilPakkeshop);
624    
625    
626    
     LabelType := ReadInteger('Settings','LabelType',1);  
627      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
628      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
629      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');
# Line 615  begin Line 676  begin
676    
677      if Scanningtype = 'A' then      if Scanningtype = 'A' then
678      begin      begin
679        Automatiskvalg1.Checked := true;        menuAutomatiskvalg1.Checked := true;
680        Scanningtype := '1';        Scanningtype := '1';
681        PanelValgA.Color := clGreen;        PanelValgA.Color := clGreen;
682        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
683      end;      end;
684    
685      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;  
686    
687      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
688      begin      begin
# Line 715  begin Line 708  begin
708    
709      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
710      begin      begin
711        Automatisktjekkodestyring1.Checked := true;        menuAutomatiskTjekkodeStyring.Checked := true;
712        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
713        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
714      end;      end;
# Line 745  begin Line 738  begin
738  {$IfDef STED_BK}  {$IfDef STED_BK}
739      SpecialVersionSted := 'BK';      SpecialVersionSted := 'BK';
740  {$EndIf}  {$EndIf}
741    {$IfDef STED_TK}
742        SpecialVersionSted := 'TK';// BK-Trykkompagniet
743    {$EndIf}
744  {$IfDef STED_DBK}  {$IfDef STED_DBK}
745      SpecialVersionSted := 'DBK';      SpecialVersionSted := 'DBK';
746  {$EndIf}  {$EndIf}
# Line 755  begin Line 751  begin
751      SpecialVersionSted := 'NS';      SpecialVersionSted := 'NS';
752  {$EndIf}  {$EndIf}
753    
   
754      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
755      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
756      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 773  begin Line 768  begin
768    
769      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
770      begin      begin
771         SpecialVersionSted := '01';         //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg
772         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
773    
774          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
775          Sted := SpecialVersionSted;
776         // her skal vi også disable de knapper BK ikke kan bruge
777          PanelValg2.Enabled := false;
778          PanelValg2.Font.Color := clInactiveCaption;
779          PanelValg3.Enabled := false;
780          PanelValg3.Font.Color := clInactiveCaption;
781          //PanelValg6.Enabled := false;
782          //PanelValg6.Font.Color := clInactiveCaption;
783    
784         // her skal vi også disable de menupunkter FD ikke kan bruge
785          menuNatxpressReturDAO1.Enabled := false;
786          menuNatxpressReturfraKunde1.Enabled := false;
787    
788          //Returpakkerfrapakkeshop1.Enabled := false;
789      end;      end;
790    
791      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
792      begin      begin
793         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
794         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
795      end;  
796    
     if SpecialVersionSted = 'BK' then  
     begin  
797        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
798        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
799       // 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 801  begin
801        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
802        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
803        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
804        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
805        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
806       // her skal vi også disable de menupunkter BK ikke kan bruge  
807        ReturpakkerfraDAO1.Enabled := false;       // her skal vi også disable de menupunkter FD ikke kan bruge
808        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
809        Returpakkerfrapakkeshop1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
810        if SpecialVersionScanningtype = 'A' then  
811        begin        //Returpakkerfrapakkeshop1.Enabled := false;
812           Scanningtype := '1';  
       end  
       else  
       begin  
         Scanningtype := SpecialVersionScanningtype;  
       end;  
813      end;      end;
814    
815      if SpecialVersionSted = 'DBK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
816      begin      begin
817        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
818        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
819        // her skal vi også disable de knapper DBK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
820        PanelValg2.Enabled := false;        PanelValg2.Enabled := false;
821        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
822        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
823        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
824        PanelValg5.Enabled := false;        //PanelValg6.Enabled := false;
825        PanelValg5.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
       PanelValg6.Enabled := false;  
       PanelValg6.Font.Color := clInactiveCaption;  
       PanelValg7.Enabled := false;  
       PanelValg7.Font.Color := clInactiveCaption;  
826    
827       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter BK ikke kan bruge
828        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
829        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
830    
831        Pakkeshoplevering1.Enabled := false;        //Returpakkerfrapakkeshop1.Enabled := false;
       Returpakkerfrapakkeshop1.Enabled := false;  
832    
833        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
834        begin        begin
# Line 840  begin Line 840  begin
840        end;        end;
841      end;      end;
842    
843        if SpecialVersionSted = 'DBK' then
844        begin
845          Sted := SpecialVersionSted;
846        end;
847    
848      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
849      or (SpecialVersionSted = '02')      or (SpecialVersionSted = '02')
850      or (SpecialVersionSted = '03')      or (SpecialVersionSted = '03')
# Line 863  begin Line 868  begin
868        PanelValg7.Font.Color := clInactiveCaption;        PanelValg7.Font.Color := clInactiveCaption;
869       // 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
870    
871        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
872    
873        Pakkernormal1.Enabled := false;        menuNatXpress1.Enabled := false;
874        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
875        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
876        Budlevering1.Enabled := false;        menuDaoDirekte1.Enabled := false;
877        Pakkeshoplevering1.Enabled := false;        menuPakkeshop1.Enabled := false;
878        Returpakkerfrapakkeshop1.Enabled := false;        menuPakkeshopRetur1.Enabled := false;
879        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
880        begin        begin
881          Scanningtype := '4';          Scanningtype := '4';
882          Budlevering1.Enabled := true;          menuDaoDirekte1.Enabled := true;
883          PanelValg4.Font.Color := clWindowText;          PanelValg4.Font.Color := clWindowText;
884          PanelValg4.Enabled := true;          PanelValg4.Enabled := true;
885        end        end
# Line 883  begin Line 888  begin
888          Scanningtype := SpecialVersionScanningtype;          Scanningtype := SpecialVersionScanningtype;
889          PanelValgA.Enabled := false;          PanelValgA.Enabled := false;
890          PanelValgA.Font.Color := clInactiveCaption;          PanelValgA.Font.Color := clInactiveCaption;
891          AutomatiskValg1.Checked := false;          menuAutomatiskvalg1.Checked := false;
892          PanelValgA.Color := clBtnFace;          PanelValgA.Color := clBtnFace;
893          if Scanningtype = '1' then          if Scanningtype = '1' then
894          begin          begin
895            Pakkernormal1.Enabled := true;            menuNatXpress1.Enabled := true;
896            PanelValg1.Enabled := true;            PanelValg1.Enabled := true;
897            PanelValg1.Font.Color := clWindowText;            PanelValg1.Font.Color := clWindowText;
898          end;          end;
899          if Scanningtype = '2' then          if Scanningtype = '2' then
900          begin          begin
901            ReturpakkerfraDAO1.Enabled := true;            menuNatxpressReturDAO1.Enabled := true;
902            PanelValg2.Enabled := true;            PanelValg2.Enabled := true;
903            PanelValg2.Font.Color := clWindowText;            PanelValg2.Font.Color := clWindowText;
904          end;          end;
905          if Scanningtype = '3' then          if Scanningtype = '3' then
906          begin          begin
907            Returpakkerfraboghandler1.Enabled := true;            menuNatxpressReturfraKunde1.Enabled := true;
908            PanelValg3.Enabled := true;            PanelValg3.Enabled := true;
909            PanelValg3.Font.Color := clWindowText;            PanelValg3.Font.Color := clWindowText;
910          end;          end;
911          if Scanningtype = '4' then          if Scanningtype = '4' then
912          begin          begin
913            Budlevering1.Enabled := true;            menuDaoDirekte1.Enabled := true;
914            PanelValg4.Enabled := true;            PanelValg4.Enabled := true;
915            PanelValg4.Font.Color := clWindowText;            PanelValg4.Font.Color := clWindowText;
916          end;          end;
917          if Scanningtype = '5' then          if Scanningtype = '5' then
918          begin          begin
919            Pakkeshoplevering1.Enabled := true;            menuPakkeshop1.Enabled := true;
920            PanelValg5.Enabled := true;            PanelValg5.Enabled := true;
921            PanelValg5.Font.Color := clWindowText;            PanelValg5.Font.Color := clWindowText;
922          end;          end;
923          if Scanningtype = '6' then          if Scanningtype = '6' then
924          begin          begin
925            Returpakkerfrapakkeshop1.Enabled := true;            menuPakkeshopRetur1.Enabled := true;
926            PanelValg6.Enabled := true;            PanelValg6.Enabled := true;
927            PanelValg6.Font.Color := clWindowText;            PanelValg6.Font.Color := clWindowText;
928          end;          end;
# Line 998  begin Line 1003  begin
1003    
1004      if Pakketype = '1' then      if Pakketype = '1' then
1005      begin      begin
1006        Storepakker1.Checked := true;        menuStorePakker.Checked := true;
1007        radioStorPakke.Checked := true;        radioStorPakke.Checked := true;
1008      end      end
1009      else      else
1010      begin      begin
1011        Smpakker1.Checked := true;        menuSmaaPakker.Checked := true;
1012        radioLillePakke.Checked := true;        radioLillePakke.Checked := true;
1013      end;      end;
1014    
# Line 1051  begin Line 1056  begin
1056      end;      end;
1057    
1058    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
1059    
1060      CheckPrintQue('Opstart');  
1061        LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
1062        LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
1063    
1064    finally    finally
1065      Free;      Free;
# Line 1067  begin Line 1068  begin
1068      // UBD skal p.t. ikke have adgang til flg. funktioner      // UBD skal p.t. ikke have adgang til flg. funktioner
1069      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
1070      begin      begin
1071        ReturpakkerfraDAO1.Visible := false;        menuNatxpressReturDAO1.Visible := false;
1072        Returpakkerfraboghandler1.Visible := false;        menuNatxpressReturfraKunde1.Visible := false;
1073        Budlevering1.Visible := false;        menuDaoDirekte1.Visible := false;
1074        Storepakker1.Visible := false;        menuStorePakker.Visible := false;
1075        Smpakker1.Visible := false;        menuSmaaPakker.Visible := false;
1076        Testprinter1.Visible := false;        Testprinter1.Visible := false;
1077        Pakkeshoplevering1.Visible := false;        menuPakkeshop1.Visible := false;
1078        Returpakkerfrapakkeshop1.Visible := false;        menuPakkeshopRetur1.Visible := false;
1079      end;      end;
1080    
1081      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
# Line 1182  begin Line 1183  begin
1183      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1184      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1185      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1186        or (NumberString = 'DAO PAKKESHOP')
1187        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1188            or (LowerCase(NumberString) = 'for stor daodirekte' )
1189      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1190    
1191      begin      begin
# Line 1192  begin Line 1196  begin
1196      begin      begin
1197        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1198      end;      end;
1199    end;    end;  // Slut ctrl-v
1200    
1201    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1202    begin    begin
1203      if (Length(Trim(Stregkode)) = 0) then  
1204        // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1205        Stregkode := Trim(Stregkode);
1206    
1207        if (Length(Stregkode) = 0) then
1208      begin      begin
1209        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1210    
# Line 1246  begin Line 1254  begin
1254         exit;         exit;
1255      end;      end;
1256    
1257        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1258        begin
1259          if chkForstorTilDirekte.Enabled then
1260          begin
1261            chkForstorTilDirekte.Checked := true;
1262          end
1263          else
1264          begin
1265             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1266          end;
1267          Stregkode := '';
1268          StregkodeST.Caption := StregKode;
1269          exit;
1270        end;
1271    
1272    
1273      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1274      begin      begin
1275         if chkSporgEfterKunde.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
# Line 1443  begin Line 1467  begin
1467        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1468      end;      end;
1469    
1470      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1471          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1472          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1473          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1474          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1475          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1476      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1477          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1478    
1479         exit;         exit;
1480      end;      end;
1481    
1482      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (menuAutomatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1483      begin      begin
1484        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1485        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1484  begin Line 1508  begin
1508                InitPakkeshoplevering();                InitPakkeshoplevering();
1509              end;              end;
1510            end            end
1511        // Retur kan ikke scannes med 'Automatisk valg'       else if Pakketype = 'PakkeshopRetur' then
1512              begin
1513                if Scanningtype <> '6' then
1514                begin
1515                 VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' );
1516    
1517                 exit;
1518                end;
1519              end
1520    
1521    
1522        else        else
1523            begin            begin
1524            // Her skal komme en alarm og rød skærm            // Her skal komme en alarm og rød skærm
1525              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1526                 VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1527    
1528               exit;               exit;
1529            end;            end;
1530        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1531      end      end
1532      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if menuAutomatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1533      begin      begin
1534        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1535    
1536        exit;        exit;
1537      end;      end;
1538    
1539      if not Automatiskvalg1.Checked then      if not menuAutomatiskvalg1.Checked then
1540      begin      begin
1541        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1542        begin        begin
# Line 1515  begin Line 1549  begin
1549    
1550    
1551    
1552      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and menuAutomatiskTjekkodeStyring.Checked then
1553      begin      begin
1554        chkScanTjekkode.Checked := false;        chkScanTjekkode.Checked := false;
1555        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
# Line 1528  begin Line 1562  begin
1562        end;        end;
1563      end;      end;
1564    
1565      if Pakkernormal1.Checked and not Scanogstjekkoden1.Checked then      if menuNatXpress1.Checked and not Scanogstjekkoden1.Checked then
1566        begin        begin
1567          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1568             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
# Line 1538  begin Line 1572  begin
1572             Stregkode := '';             Stregkode := '';
1573             InitScreen();             InitScreen();
1574        end        end
1575      else if (PakkeshopLevering1.Checked or Pakkernormal1.Checked) and not Scanogstjekkoden1.Checked then      else if (menuPakkeshop1.Checked or menuNatXpress1.Checked) and not Scanogstjekkoden1.Checked then
1576        begin        begin
1577          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1578             PakkeshopStregkode := Stregkode;             PakkeshopStregkode := Stregkode;
# Line 1550  begin Line 1584  begin
1584             Stregkode := '';             Stregkode := '';
1585             InitScreen();             InitScreen();
1586        end        end
1587      else if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      else if menuPakkeshop1.Checked or menuNatXpress1.Checked then
1588        if PakkeshopText1.Caption = 'Stregkode' then        if PakkeshopText1.Caption = 'Stregkode' then
1589         begin         begin
1590            if length(Stregkode) > 5 then            if length(Stregkode) > 5 then
# Line 1576  begin Line 1610  begin
1610             PakkeshopTjekkode := Stregkode;             PakkeshopTjekkode := Stregkode;
1611             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1612             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1613             if (PakkeshopLevering1.Checked) then             if (menuPakkeshop1.Checked) then
1614                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1615             if (Pakkernormal1.Checked) then             if (menuNatXpress1.Checked) then
1616                MainForm.Color := TUtils.HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1617             btnNulstil.Visible := false;             btnNulstil.Visible := false;
1618           end           end
1619          else          else
1620           begin           begin
1621                if (PakkeshopLevering1.Checked) then                if (menuPakkeshop1.Checked) then
1622                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1623                if (Pakkernormal1.Checked) then                if (menuNatXpress1.Checked) then
1624                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1625                                    
1626                StregKode := '';                StregKode := '';
# Line 1598  begin Line 1632  begin
1632          InitScreen();          InitScreen();
1633       end;       end;
1634    
1635      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
1636      begin      begin
1637         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then  
1638           if menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1639            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1640         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if menuNatXpress1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
1641            StregKode := BoghandlerStregkode;            StregKode := BoghandlerStregkode;
1642         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1643         try         try
# Line 1616  begin Line 1651  begin
1651    
1652              exit;              exit;
1653            end;            end;
1654            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then
1655            begin            begin
1656              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);
1657              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 1637  begin Line 1672  begin
1672                MainForm.Color := clRed;                MainForm.Color := clRed;
1673              end;              end;
1674           end;           end;
1675            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
1676            begin            begin
1677              MainForm.Color := TUtils.HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1678              if Storepakker1.Checked then              if menuStorePakker.Checked then
1679              begin              begin
1680                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1681              end              end
# Line 1650  begin Line 1685  begin
1685              end;              end;
1686              btnNulstil.Visible := false;              btnNulstil.Visible := false;
1687            end            end
1688            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked) then
1689            begin            begin
1690              MainForm.Color := TUtils.HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1691              if Storepakker1.Checked then              if menuStorePakker.Checked then
1692              begin              begin
1693                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1694              end              end
# Line 1674  begin Line 1709  begin
1709            begin            begin
1710              VisAlarmSkaerm('');              VisAlarmSkaerm('');
1711            end;            end;
1712    
1713           if not btnNulstil.Visible then           if not btnNulstil.Visible then
1714            begin            begin
1715    
1716              If (Budlevering1.Checked) then              If (menuDaoDirekte1.Checked) then
1717              begin              begin
1718                if Storepakker1.Checked then                if menuStorePakker.Checked then
1719                begin                begin
1720                  PlaySound(PWideChar(ScannetOkStorLyd));                  PlaySound(PWideChar(ScannetOkStorLyd));
1721                end                end
# Line 1723  begin Line 1759  begin
1759    
1760    Key := #0;    Key := #0;
1761    
1762    
1763    
1764    
1765    
1766    
1767  end; //End of OnKeyPress  end; //End of OnKeyPress
1768    
1769    
1770    
1771  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1772  const  const
1773    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
# Line 1766  var Line 1809  var
1809    
1810    
1811  begin  begin
1812      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
1813      begin      begin
1814        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1815          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1816          begin          begin
1817              wrkAntalSenere := 0;//initial Value
1818    
1819            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1820            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
# Line 1885  begin Line 1929  begin
1929                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1930              end;              end;
1931            end;            end;
1932  // 20150310: slut  
1933            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1934          end;          end;
1935      end;      end;
# Line 1915  procedure TMainForm.InitBladhus(); Line 1959  procedure TMainForm.InitBladhus();
1959    
1960  begin  begin
1961    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
1962    Pakkernormal1.Visible := false;    menuNatXpress1.Visible := false;
1963    ReturpakkerfraDAO1.Visible := false;    menuNatxpressReturDAO1.Visible := false;
1964    Returpakkerfraboghandler1.Visible := false;    menuNatxpressReturfraKunde1.Visible := false;
1965    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1966    ListBox1.Visible := true;    ListBox1.Visible := true;
1967  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1968  // 20150317: start  
1969  (*    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  
1970    begin    begin
1971      IndlesScanningLogFil();      IndlesScanningLogFil();
1972    end;    end;
# Line 1986  begin Line 1990  begin
1990      02 :      02 :
1991            begin;    // BK            begin;    // BK
1992              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1993              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1994              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1995              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
1996              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
1997              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
# Line 2024  begin Line 2028  begin
2028            end;            end;
2029      04 :  begin;           // DBK      04 :  begin;           // DBK
2030              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2031              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
2032              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
2033              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
2034              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
2035              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
# Line 2058  begin Line 2062  begin
2062    end;    end;
2063    
2064    
2065    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
2066    begin    begin
2067       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
2068       begin       begin
# Line 2066  begin Line 2070  begin
2070       end;       end;
2071       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);
2072    end    end
2073    else if ReturpakkerfraDAO1.Checked then    else if menuNatxpressReturDAO1.Checked then
2074    begin    begin
2075       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);
2076    end    end
2077    else if Returpakkerfraboghandler1.Checked then    else if menuNatxpressReturfraKunde1.Checked then
2078    begin    begin
2079       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);
2080    end    end
2081    else if Budlevering1.Checked then    else if menuDaoDirekte1.Checked then
2082    begin    begin
2083       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);
2084    end    end
2085    else if Pakkeshoplevering1.Checked then    else if menuPakkeshop1.Checked then
2086    begin    begin
2087       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);
2088    end    end
2089    else if Returpakkerfrapakkeshop1.Checked then    else if menuPakkeshopRetur1.Checked then
2090    begin    begin
2091       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2092    end    end
# Line 2094  begin Line 2098  begin
2098    begin    begin
2099      exit;      exit;
2100    end;    end;
2101    
2102      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2103      begin
2104        URLStr := Format(URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2105      end;
2106    
2107    try    try
2108      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2109      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2115  begin Line 2125  begin
2125          end;          end;
2126      end;      end;
2127    end;    end;
2128    
2129    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2130    try    try
2131      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked then
2132       begin       begin
2133        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;
2134        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
# Line 2125  begin Line 2136  begin
2136        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2137        PrintNyLabel := False;        PrintNyLabel := False;
2138    
2139        if Pakkeshoplevering1.Checked then        if menuPakkeshop1.Checked then
2140        begin        begin
2141          try          try
2142            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
# Line 2138  begin Line 2149  begin
2149          end;          end;
2150        end;        end;
2151       end       end
2152      else if menuIndlevering.Checked then      else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2153      begin      begin
2154    
2155    
# Line 2149  begin Line 2160  begin
2160       begin       begin
2161         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2162         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2163         RuteNummer := PakkeshopLabel.Koreliste;         RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2164           Stregkode := PakkeshopLabel.Stregkode;
2165    
2166         PrintPakkeshopLabel( PakkeshopLabel );         LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2167           chkForstorTilDirekte.Checked := false;
2168    
2169       end;       end;
2170    
# Line 2164  begin Line 2177  begin
2177        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2178        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2179        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2180        if Budlevering1.Checked then        if menuDaoDirekte1.Checked then
2181          begin          begin
2182          try          try
2183            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
# Line 2195  begin Line 2208  begin
2208      begin      begin
2209        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
2210        begin        begin
2211            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2212            PrintNyLabel := False;            PrintNyLabel := False;
2213        end;        end;
2214      end      end
2215      else if (Budlevering1.Checked) and (Leveringssted <> Sted) then      else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) And (Leveringssted <> '') then
2216      begin      begin
2217         if (Leveringssted = 'E') and (Sted = 'DBK') then         if (Leveringssted = 'E') and (Sted = 'DBK') then
2218         begin         begin
# Line 2207  begin Line 2220  begin
2220         end         end
2221         else         else
2222         begin         begin
2223            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2224            PrintNyLabel := False;            PrintNyLabel := False;
2225         end;         end;
2226      end;      end;
# Line 2228  begin Line 2241  begin
2241    //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
2242    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2243    List1msg := TimeToStr(now) + '; ';    List1msg := TimeToStr(now) + '; ';
2244    if Pakkeshoplevering1.Checked then    if menuPakkeshop1.Checked then
2245      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2246    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2247    if radioStorPakke.Checked then    if radioStorPakke.Checked then
# Line 2240  begin Line 2253  begin
2253      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2254    end;    end;
2255    List1msg := List1msg + BoghandlerNavn + '; ';    List1msg := List1msg + BoghandlerNavn + '; ';
2256    if ReturpakkerfraDAO1.Checked then    if menuNatxpressReturDAO1.Checked then
2257    begin    begin
2258      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2259    end;    end;
2260    if Returpakkerfraboghandler1.Checked then    if menuNatxpressReturfraKunde1.Checked then
2261    begin    begin
2262      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2263    end;    end;
2264    if ReturpakkerfraDAO1.Checked or Returpakkerfraboghandler1.Checked then    if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then
2265       List1msg := List1msg + '; ' + List1Pakkestorrelse;       List1msg := List1msg + '; ' + List1Pakkestorrelse;
2266    if length(BoghNr) > 0 then    if length(BoghNr) > 0 then
2267    begin    begin
2268      List1Msg := List1Msg + '; Indtastet ' + BoghNr;      List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2269    end;    end;
2270    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2271    begin    begin
2272       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2273        if (radioStorPakke.Checked) then        if (radioStorPakke.Checked) then
# Line 2266  begin Line 2279  begin
2279          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2280        end;        end;
2281    end;    end;
2282    if Returpakkerfrapakkeshop1.Checked then    if menuPakkeshopRetur1.Checked then
2283    begin    begin
2284      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2285    end;    end;
2286    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
2287    begin    begin
2288      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen
2289      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen
# Line 2283  begin Line 2296  begin
2296        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2297      end;      end;
2298    end;    end;
2299      if menuIndlevering.Checked then
2300      begin
2301        List1Msg := Stregkode;
2302      end;
2303    
2304    
2305    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2306    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2307    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
# Line 2304  pakkeForkertSted : Integer; Line 2323  pakkeForkertSted : Integer;
2323    kontrolKoreliste : string;    kontrolKoreliste : string;
2324    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2325  begin  begin
2326    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2327       RuteNummerST.Color := TUtils.HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2328    
2329    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 2342  begin Line 2361  begin
2361        end;        end;
2362    end    end
2363    else    else
2364    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2365    begin    begin
2366       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2367       begin       begin
# Line 2411  begin Line 2430  begin
2430    
2431    end;    end;
2432    
2433    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2434    begin    begin
2435      case BladhusSted of      case BladhusSted of
2436        00 :  begin;        00 :  begin;
# Line 2423  begin Line 2442  begin
2442               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2443  // 20150304: slut  // 20150304: slut
2444                begin                begin
2445                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2446                end;                end;
2447              end;              end;
2448        01 :  begin;        01 :  begin;
# Line 2431  begin Line 2450  begin
2450                    // 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
2451                    // 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')
2452                begin                begin
2453                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2454                end;                end;
2455              end;              end;
2456        02 :  begin;        02 :  begin;
2457                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
2458                begin                begin
2459                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2460                end;                end;
2461              end;              end;
2462        03 :  begin;        03 :  begin;
# Line 2445  begin Line 2464  begin
2464                    // 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
2465                    // 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')
2466               begin               begin
2467                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2468               end;               end;
2469              end;              end;
2470        04 :  begin;        04 :  begin;
2471                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
2472                begin                begin
2473                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2474                end;                end;
2475              end;              end;
2476        else        else
# Line 2460  begin Line 2479  begin
2479    end;    end;
2480    
2481  // 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
2482    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
2483    begin    begin
2484      exit;      exit;
2485    end;    end;
2486    
2487    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
2488    begin    begin
2489    end    end
2490    else    else
# Line 2487  begin Line 2506  begin
2506        end;        end;
2507        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2508        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2509        with Printer do  
2510        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2511          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;  
2512      end;      end;
2513    end;    end;
2514    
2515  end;  end;
2516    
 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;  
2517    
2518    
2519  procedure TMainForm.radioStorPakkeClick(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2520  begin  begin
2521      Storepakker1.Checked := true;      menuStorePakker.Checked := true;
2522      radioStorPakke.Checked := true;      radioStorPakke.Checked := true;
2523  end;  end;
2524    
2525  procedure TMainForm.radioLillePakkeClick(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2526  begin  begin
2527      Smpakker1.Checked := true;      menuSmaaPakker.Checked := true;
2528      radioLillePakke.Checked := true;      radioLillePakke.Checked := true;
2529  end;  end;
2530    
# Line 2608  begin Line 2567  begin
2567    end;    end;
2568  end;  end;
2569    
2570  procedure TMainForm.Pakkeshoplevering1Click(Sender: TObject);  procedure TMainForm.menuPakkeshop1Click(Sender: TObject);
2571  begin  begin
2572        Scanningtype := '5';        Scanningtype := '5';
2573        InitPakkeshoplevering();        InitPakkeshoplevering();
# Line 2617  end; Line 2576  end;
2576    
2577  procedure TMainForm.NulstilAutomatiskValg();  procedure TMainForm.NulstilAutomatiskValg();
2578  begin  begin
2579      Automatiskvalg1.Checked := false;      menuAutomatiskvalg1.Checked := false;
2580      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2581      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2582    
# Line 2629  begin Line 2588  begin
2588        // 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)
2589        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
2590        PanelValgA.Font.Color := clInactiveCaption;        PanelValgA.Font.Color := clInactiveCaption;
2591        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
2592      end;      end;
2593  // 20150317: slut  // 20150317: slut
2594  end;  end;
# Line 2644  begin Line 2603  begin
2603    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2604    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...');
2605    
2606          // Tjekker urls    try
2607          logTekst := 'Tjekker urls.';      // Tjekker urls
2608          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2609          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2610        SkrivScanningLogFil(logTekst);
2611    
         // 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;  
2612    
         // 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;  
2613    
2614          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2615          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2616          begin      begin
2617            if TUtils.CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2618            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;  
2619    
2620          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2621          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2622          begin      begin
2623            if TUtils.CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2624            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;  
2625    
2626          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2627          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2628          begin      begin
2629            if TUtils.CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2630            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;  
2631    
2632          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2633          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2634          begin      begin
2635            if TUtils.CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2636            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;  
2637    
2638          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2639          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2640          or (PanelValg4.Enabled = true) then      begin
2641          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2642            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;  
2643    
2644          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2645          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2646          begin      begin
2647            if TUtils.CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2648            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;  
2649    
2650          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2651          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2652          begin      begin
2653            if TUtils.CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2654            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;  
2655    
2656         // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger      // Tjekker UrlPakkeshopManglendeScanninger
2657          if PanelValg7.Enabled = true then      if PanelValg5.Enabled = true then
2658          begin      begin
2659            if TUtils.CheckUrl(UrlIndleveringsPakke) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2660            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;  
2661    
2662            if TUtils.CheckUrl(UrlIndleveringsPakkeManglendeScanninger) then      // Tjekker UrlPakkeshopManglendeReturScanninger
2663            begin      if PanelValg6.Enabled = true then
2664              logTekst := 'UrlIndleveringsPakkeManglendeScanninger accepteret: ' + UrlIndleveringsPakkeManglendeScanninger;      begin
2665              SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2666            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;  
2667    
2668          // Tjekker UrlEKLoverforsel     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2669          if PanelValg1.Enabled = true then      if PanelValg7.Enabled = true then
2670          begin      begin
2671            if TUtils.CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2672            begin        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2673              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;  
2674    
2675        // Tjekker UrlEKLoverforsel
2676        if PanelValg1.Enabled = true then
2677        begin
2678          TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2679        end;
2680    
         // 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;  
2681    
2682        // Tjekker UrlEKLoverforselPakkeshop
2683        if PanelValg5.Enabled = true then
2684        begin
2685          TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2686        end;
2687    
         // 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;  
2688    
2689          // Tjekker UrlSendPrograminfo      // Tjekker UrlFindPakketype
2690          if TUtils.CheckUrl(UrlSendPrograminfo) then      TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
         begin  
           logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;  
           SkrivScanningLogFil(logTekst);  
         end  
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2691    
2692          if urlFejl > 0 then      // Tjekker UrlSendPrograminfo
2693          begin      TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2694            TjekUrls := '-';   // markerer at der var fejl  
2695          end  
2696          else  
2697          begin      logTekst := 'urls er ok';
2698            logTekst := 'urls er ok';      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2699            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      SkrivScanningLogFil(logTekst);
2700            SkrivScanningLogFil(logTekst);  
2701          end;    Except
2702        TjekUrls := '-';   // markerer at der var fejl
2703    
2704      end;
2705    end;
2706    
2707    procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2708    const
2709      crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
2710    begin
2711      if TUtils.CheckUrl(Url) then
2712    
2713      begin
2714        logTekst := UrlNavn + ' accepteret: ' + Url;
2715        SkrivScanningLogFil(logTekst);
2716      end
2717      else
2718      begin
2719        inc(urlFejl);   // Optæller antal fejl
2720        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2721        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2722        if TjekUrls = '1' then
2723        begin
2724          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2725        end;
2726    
2727        SkrivScanningLogFil(logTekst);
2728    
2729        if TjekUrls = '1' then
2730        begin
2731          ShowMessage(logTekst);
2732          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2733          Application.Terminate;
2734    
2735          raise Exception.Create('UrlFejl');
2736    
2737        end;
2738      end;
2739    
2740  end;  end;
2741    
2742    
2743    
2744  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2745  var  var
2746    SR: TSearchRec;    SR: TSearchRec;
# Line 3155  begin Line 2820  begin
2820    if Farve <> '' then    if Farve <> '' then
2821    begin    begin
2822       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  
2823    end;    end;
2824    if (Budlevering1.Checked) then    if (menuDaoDirekte1.Checked) then
2825    begin    begin
2826       InitLillePakke();       InitLillePakke();
2827    end;    end;
# Line 3230  procedure TMainForm.PanelValgAClick(Send Line 2885  procedure TMainForm.PanelValgAClick(Send
2885  begin  begin
2886  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2887  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2888    AutomatiskValg1.Checked := true;    menuAutomatiskvalg1.Checked := true;
2889    PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2890    PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2891    
# Line 3238  begin Line 2893  begin
2893    
2894  end;  end;
2895    
2896  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.menuNatXpress1Click(Sender: TObject);
2897  begin  begin
2898        Scanningtype := '1';        Scanningtype := '1';
2899        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3308  begin Line 2963  begin
2963    Falsk := False;    Falsk := False;
2964    
2965    
2966    if (Printer.Printers.Count = 0) then    if (LabelPrint.GetPrinterCount() = 0) then
2967    begin    begin
2968      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2969    end    end
# Line 3323  begin Line 2978  begin
2978      DBKbane := '999';      DBKbane := '999';
2979      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2980      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2981      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2982    end;    end;
2983    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2984  end;  end;
# Line 3332  procedure TMainForm.Timer1Timer(Sender: Line 2987  procedure TMainForm.Timer1Timer(Sender:
2987  begin  begin
2988    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
2989    begin    begin
2990      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2991    end    end
2992    else    else
2993    begin    begin
# Line 3393  begin Line 3048  begin
3048    
3049  end;  end;
3050    
3051    
3052  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
3053    Rect: TRect; State: TOwnerDrawState);    Rect: TRect; State: TOwnerDrawState);
3054  var  var
# Line 3507  begin Line 3163  begin
3163    
3164  end;  end;
3165    
3166  procedure TMainForm.ReturpakkerfraDAO1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject);
3167  begin  begin
3168        Scanningtype := '2';        Scanningtype := '2';
3169        NulstilAutomatiskValg();        NulstilAutomatiskValg();
3170        InitReturFraDao();        InitReturFraDao();
3171  end;  end;
3172    
3173  procedure TMainForm.Returpakkerfrapakkeshop1Click(Sender: TObject);  procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject);
3174  begin  begin
3175        Scanningtype := '6';        Scanningtype := '6';
3176        InitReturFraPakkeshop();        InitReturFraPakkeshop();
# Line 3523  end; Line 3179  end;
3179    
3180  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3181  begin  begin
3182        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3183        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3184        Pakkernormal1.Checked := true;        menuNatXpress1.Checked := true;
3185        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3186        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3187        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
# Line 3537  begin Line 3193  begin
3193        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3194        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3195        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3196        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3197        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3198        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3199        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3200        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3546  begin Line 3202  begin
3202        BtnEKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3203        InitLillePakke();        InitLillePakke();
3204        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3205    
3206          chkForstorTilDirekte.Checked := false;
3207          chkForstorTilDirekte.Enabled := false;
3208    
3209        if BladhusSted = 0 then        if BladhusSted = 0 then
3210        begin        begin
3211          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3555  end; Line 3215  end;
3215    
3216  procedure TMainForm.InitReturFraDao();  procedure TMainForm.InitReturFraDao();
3217  begin  begin
3218        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3219        ReturpakkerfraDAO1.Checked := true;        menuNatxpressReturDAO1.Checked := true;
3220        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3221        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3222        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
# Line 3569  begin Line 3229  begin
3229        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3230        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3231        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3232        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3233        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3234        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3235        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3236        ListBox1.Visible := true;        ListBox1.Visible := true;
3237        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3238        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3239        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3240    
3241          chkForstorTilDirekte.Checked := false;
3242          chkForstorTilDirekte.Enabled := false;
3243    
3244        InitLillePakke();        InitLillePakke();
3245  end;  end;
3246    
3247  procedure TMainForm.InitReturFraKunde();  procedure TMainForm.InitReturFraKunde();
3248  begin  begin
3249        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3250        Returpakkerfraboghandler1.Checked := true;        menuNatxpressReturfraKunde1.Checked := true;
3251        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3252        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3253        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
# Line 3595  begin Line 3259  begin
3259        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3260        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3261        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3262        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3263        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3264        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3265        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3266        ListBox1.Visible := true;        ListBox1.Visible := true;
3267        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3268        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3269        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3270    
3271          chkForstorTilDirekte.Checked := false;
3272          chkForstorTilDirekte.Enabled := false;
3273    
3274        InitLillePakke();        InitLillePakke();
3275  end;  end;
3276    
3277  procedure TMainForm.InitDirektelevering();  procedure TMainForm.InitDirektelevering();
3278  begin  begin
3279        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3280        Budlevering1.Checked := true;        menuDaoDirekte1.Checked := true;
3281        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3282        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3283        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
# Line 3622  begin Line 3290  begin
3290        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3291        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3292        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3293        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3294        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3295        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3296        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3297        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3634  begin Line 3302  begin
3302        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3303        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3304        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3305    
3306          chkForstorTilDirekte.Checked := false;
3307          chkForstorTilDirekte.Enabled := true;
3308    
3309        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3310        begin        begin
3311            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3644  end; Line 3316  end;
3316    
3317  procedure TMainForm.InitPakkeshoplevering();  procedure TMainForm.InitPakkeshoplevering();
3318  begin  begin
3319        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3320        Pakkeshoplevering1.Checked := true;        menuPakkeshop1.Checked := true;
3321        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3322        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3323        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
# Line 3658  begin Line 3330  begin
3330        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3331        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3332        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3333        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3334        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3335        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3336        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3337        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3669  begin Line 3341  begin
3341    
3342        BtnEKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3343    
3344          chkForstorTilDirekte.Checked := false;
3345          chkForstorTilDirekte.Enabled := true;
3346    
3347        InitLillePakke();        InitLillePakke();
3348        IndlesScanningLogFil();        IndlesScanningLogFil();
3349        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3681  end; Line 3356  end;
3356    
3357  procedure TMainForm.InitReturFraPakkeshop();  procedure TMainForm.InitReturFraPakkeshop();
3358  begin  begin
3359        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3360        Returpakkerfrapakkeshop1.Checked := true;        menuPakkeshopRetur1.Checked := true;
3361        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3362        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3363        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
# Line 3695  begin Line 3370  begin
3370        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3371        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3372        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3373        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3374        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3375        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3376        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3377        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3704  begin Line 3379  begin
3379        BtnDownloadKontrolfil.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3380        BtnOpdaterListen.Enabled := true;        BtnOpdaterListen.Enabled := true;
3381        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3382    
3383          chkForstorTilDirekte.Checked := false;
3384          chkForstorTilDirekte.Enabled := false;
3385    
3386    
3387        InitLillePakke();        InitLillePakke();
3388        IndlesScanningLogFil();        IndlesScanningLogFil();
3389        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3714  begin Line 3394  begin
3394        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3395  end;  end;
3396    
3397  procedure TMainForm.Returpakkerfraboghandler1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject);
3398  begin  begin
3399        Scanningtype := '3';        Scanningtype := '3';
3400        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3724  end; Line 3404  end;
3404  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3405  begin  begin
3406        menuIndlevering.Checked := true;        menuIndlevering.Checked := true;
3407        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3408    
3409        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3410        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
# Line 3741  begin Line 3421  begin
3421    
3422    
3423    
3424        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3425        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3426        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3427        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3428        ListBox1.Visible := true;        ListBox1.Visible := true;
# Line 3751  begin Line 3431  begin
3431        BtnDownloadKontrolfil.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3432        BtnOpdaterListen.Enabled := true;        BtnOpdaterListen.Enabled := true;
3433        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3434    
3435          chkForstorTilDirekte.Checked := false;
3436          chkForstorTilDirekte.Enabled := false;
3437    
3438    
3439        InitLillePakke();        InitLillePakke();
3440        IndlesScanningLogFil();        IndlesScanningLogFil();
3441        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3762  begin Line 3447  begin
3447  end;  end;
3448    
3449    
3450  procedure TMainForm.Storepakker1Click(Sender: TObject);  procedure TMainForm.menuStorePakkerClick(Sender: TObject);
3451  begin  begin
3452    InitStorPakke();    InitStorPakke();
3453  end;  end;
3454    
3455  procedure TMainForm.Smpakker1Click(Sender: TObject);  procedure TMainForm.menuSmaaPakkerClick(Sender: TObject);
3456  begin  begin
3457    InitLillePakke();    InitLillePakke();
3458  end;  end;
# Line 3775  end; Line 3460  end;
3460  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3461  begin  begin
3462    radioLillePakke.Checked := true;    radioLillePakke.Checked := true;
3463    Smpakker1.Checked := true;    menuSmaaPakker.Checked := true;
3464  //  Stregkode := '';  //  Stregkode := '';
3465  end;  end;
3466    
3467  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3468  begin  begin
3469    radioStorPakke.Checked := true;    radioStorPakke.Checked := true;
3470    Storepakker1.Checked := true;    menuStorePakker.Checked := true;
3471  // 20150310: start  // 20150310: start
3472  //  Stregkode := '';  //  Stregkode := '';
3473  // 20150310: slut  // 20150310: slut
# Line 3826  begin Line 3511  begin
3511       exit;       exit;
3512    end;    end;
3513    
3514    if Smpakker1.Checked then    if menuSmaaPakker.Checked then
3515       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
3516       begin       begin
3517         PlaySound(PWideChar(ScannetOkLyd));         PlaySound(PWideChar(ScannetOkLyd));
# Line 3835  begin Line 3520  begin
3520       begin       begin
3521         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
3522       end;       end;
3523    if Storepakker1.Checked then    if menuStorePakker.Checked then
3524       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
3525       begin       begin
3526         PlaySound(PWideChar(ScannetOkStorLyd));         PlaySound(PWideChar(ScannetOkStorLyd));
# Line 3847  begin Line 3532  begin
3532  end;  end;
3533    
3534    
3535  procedure TMainForm.Budlevering1Click(Sender: TObject);  procedure TMainForm.menuDaoDirekte1Click(Sender: TObject);
3536  begin  begin
3537        Scanningtype := '4';        Scanningtype := '4';
3538        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3876  begin Line 3561  begin
3561      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3562      StedKode := Sted;      StedKode := Sted;
3563      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3564  // 20150330: start  
3565      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3566      begin      begin
3567        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3568      end;      end;
3569  // 20150330: slut  
3570    
3571      try      try
3572      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4483  begin Line 4168  begin
4168  end;  end;
4169    
4170    
 // 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;  
   
4171    
4172  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4173  var  var
# Line 4615  var Line 4178  var
4178    I: Integer;    I: Integer;
4179    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4180    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4181    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    antalLiniefelter, antalFelterFundet, linienr : Integer;
4182    pakketyper : TStrings;    //pakketyper : TStrings;
4183      pakketyper : TDictionary<String, Integer>;
4184      tmpAntal : Integer;
4185    
4186    
4187    
4188    antlin : Integer;    antlin : Integer;
4189    
4190    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4191    
4192    XmlFelter : TStrings;    //XmlFelter : TStrings;
4193      XmlFelter : TDictionary<String, Integer>;
4194    
4195   begin   begin
4196      XmlFelter := TStringList.Create;  
4197      pakketyper := TStringList.Create;  
4198        XmlFelter := TDictionary<String, Integer>.Create;
4199        pakketyper := TDictionary<String, Integer>.Create;
4200    
4201      linienr := 0;      linienr := 0;
4202      ListBox2.Clear;      ListBox2.Clear;
4203      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 4212  var
4212          StedKode := Sted;          StedKode := Sted;
4213        end;        end;
4214    
4215          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4216    
4217    
4218    
4219      if (Scanningtype = '7') then      if (Scanningtype = '7') then
# Line 4677  var Line 4251  var
4251        begin        begin
4252          // 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
4253          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
4254    
4255    
4256    
4257        end;        end;
4258        on e:exception do        on e:exception do
4259        begin        begin
# Line 4699  var Line 4276  var
4276            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4277              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4278              begin              begin
4279                 antlin := antlin + 1;                 Inc(antlin);
4280                 // 20150306: start                 // 20150306: start
4281                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4282                begin                begin
4283                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4284                   begin                   begin
4285                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4286                   end                   end
4287                   else                   else
4288                   begin                   begin
4289                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4290                   end;                   end;
4291                end;                end;
4292                 // 20150306: slut                 // 20150306: slut
4293              end;              end;
4294            end;            end;
4295            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4296                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4297                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4298                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4299                  end
4300                else                else
4301                  XmlFelter.values[Node.NodeName] := '1';                begin
4302                    XmlFelter.Add(Node.NodeName, 1);
4303                  end;
4304    
4305        end;        end;
4306        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
# Line 4726  var Line 4308  var
4308        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4309        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4310    
4311    
4312          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4313    
4314        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4315        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4316        begin        begin
# Line 4734  var Line 4319  var
4319        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4320    
4321        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4322    
4323    
4324        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4325            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4326            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 4741  var Line 4328  var
4328                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4329                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4330                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4331              end;              end
4332              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4333                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4334                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4335                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4336              end;              end
4337              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4338                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4339                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4340                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4341              end;              end
4342              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4343                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4344                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4345                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4346              end;              end
4347              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4348                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4349                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4350                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4351                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4352                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4353                    pakketyper.TryGetValue(pakketype, tmpAntal);
4354                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4355                  end
4356                else                else
4357                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4358              end;              end
4359              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4360                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4361                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4362                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4363                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4364                  begin                  begin
4365  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4366                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4367                    begin                    begin
4368                      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 4374  var
4374                    linienr := linienr + 1;                    linienr := linienr + 1;
4375                  end;                  end;
4376              end;              end;
4377    
4378    
4379              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4380              begin              begin
4381                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 4800  var Line 4391  var
4391              end;              end;
4392            end;            end;
4393        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4394    
4395          // Free up the list object  
4396          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4397    
4398    
4399          for pakketype in pakketyper.Keys do
4400          begin
4401            pakketyper.TryGetValue(pakketype, tmpAntal);
4402            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4403          end;
4404    
4405            // Free up the dictionary object
4406        pakketyper.Free;        pakketyper.Free;
4407    
4408    
4409    
4410  //      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.');
4411        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4412        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5248  begin Line 4848  begin
4848      KommentarST.Caption := strMessage;      KommentarST.Caption := strMessage;
4849    end;    end;
4850    
4851      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4852    
4853  end;  end;
4854    
4855  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
# Line 5307  begin Line 4909  begin
4909    result := svar;    result := svar;
4910  end;  end;
4911    
 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;  
4912    
4913  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4914  begin  begin
# Line 5340  begin Line 4923  begin
4923  end;  end;
4924    
4925    
4926    //Nedarvet fra IParentForm
4927    procedure TMainForm.Msg( msg : string);
4928    begin
4929      ShowMessage(msg);
4930    end;
4931    
4932    //Nedarvet fra IParentForm
4933    procedure TMainForm.LogMessage( msg : string);
4934    begin
4935      ListBox1.Items.Insert(0, msg);
4936      SkrivScanningLogFil(msg);
4937    end;
4938    
4939    
4940    //Nedarvet fra IParentForm
4941    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;  
4942  begin  begin
4943    
4944  // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1    PrinterstatusStaticText1.Caption := txt;
4945  //            '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  
4946    begin    begin
4947      printerTxt := 'Der er fravalgt printer i dette program';      PrinterstatusStaticText1.Font.Color := clBlack;
4948      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4949      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
   end  
   else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
   begin  
     printerTxt := 'Der er ikke installeret en printer på denne PC';  
     ListBox1.Items.Insert(0,printerTxt);  
     SkrivScanningLogFil(printerTxt);  
4950    end    end
4951    else    else
4952    begin    begin
4953      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4954      try      PrinterstatusStaticText1.Color := clWhite;
4955        EnumJobs(hPrinter, 0, 1000, 1, nil, 0, bytesNeeded, numJobs);      PrinterstatusStaticText1.Transparent := true;
       pJ := AllocMem(bytesNeeded);  
       if not EnumJobs(hPrinter, 0, 1000, 1, pJ, bytesNeeded, bytesNeeded, numJobs) then  
         RaiseLastWin32Error;  
   
       if numJobs = 0 then  
       begin  
         if (tjektype = 'Test') then  
         begin  
           logTekst := printerTxt + ': Ingen dokumenter i kø';  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         PrinterstatusStaticText1.Caption := '';  
         PrinterstatusStaticText1.Color := MainForm.Color;  
       end  
       else   // så er der kø til printeren  
       begin  
         printerTxt := SavePChar(pJ^[0].pPrinterName);  
         if (tjektype = 'Opstart') or (tjektype = 'Test') then  
         begin  
           logTekst := IntToStr(numJobs) + ' dokument(er) i kø til printer: ' + printerTxt;  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         for i := 0 to Pred(numJobs) do  
         begin  
           printerTxt := SavePChar(pJ^[i].pPrinterName);  
           statusTxt := 'Ukendt';  
           if (IntToStr(pJ^[i].Status) = '0') then  
             statusTxt := 'Venter...';  
           if (IntToStr(pJ^[i].Status) = '4096') then  
             statusTxt := 'Printer...';  
           if (IntToStr(pJ^[i].Status) = '8210') then  
             statusTxt := 'Printerfejl';  
           if (IntToStr(pJ^[i].Status) = '8214') then  
             statusTxt := 'Sletter print...';  
   
           dokumentTxt := SavePChar(pJ^[i].pDocument);  
           if (dokumentTxt = '') then  
             dokumentTxt := 'Uden navn';  
   
           if (tjektype = 'Opstart') or (tjektype = 'Test') then  
           begin  
             logTekst := Format('Printer %s, Dokument %d: %s, Status (%d): %s',  
                                     [printerTxt, i+1, dokumentTxt, pJ^[i].Status, statusTxt]);  
             ListBox1.Items.Insert(0,logTekst);  
             SkrivScanningLogFil(logTekst);  
           end;  
   
           if (i = 0) then  
           begin  
             PrinterstatusStaticText1.Caption := printerTxt + ': ' + IntToStr(numJobs) + ' dokument(er) in kø. Dokument status: ' + statusTxt;  
             PrinterstatusStaticText1.Font.Color := clBlack;  
             PrinterstatusStaticText1.Color := MainForm.Color;  
             PrinterstatusStaticText1.Transparent := True;  
             if (numJobs > 3) then  
             begin  
               PrinterstatusStaticText1.Font.Color := clRed;  
               PrinterstatusStaticText1.Color := clWhite;  
               PrinterstatusStaticText1.Transparent := true;  
             end;  
           end;  
   
         end;  
       end  
       finally  
         ClosePrinter(hPrinter);  
     end;  
4956    end;    end;
4957  end;  end;
4958    
4959    //Nedarvet fra IParentForm
4960    function TMainForm.GetFormObject() : TForm;
4961    begin
4962      Result := self;
4963    end;
4964    
4965  end.  end.
4966    

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

  ViewVC Help
Powered by ViewVC 1.1.20