/[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 2652 by torben, Sun Aug 23 10:38:56 2015 UTC revision 3036 by torben, Mon May 23 13:03:49 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, Registry, ShellApi, ClipBrd, Buttons, wininet    ShellApi, ClipBrd, Buttons, wininet,
22      UITypes,
23      PakkeshopLabels,
24      Utils,
25      ParentForm,
26      LabelPrint,
27      Configuration,
28      Vcl.Imaging.pngimage,
29      Generics.Collections
30    
31    ;    ;
32    
33  type  type
34    TStrArray = array of string;    TMainForm = class(TForm, IParentForm)
   TMainForm = class(TForm)  
35      StregkodeST: TStaticText;      StregkodeST: TStaticText;
36      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
37      BoghandlerNavnST: TStaticText;      BoghandlerNavnST: TStaticText;
38      IdHTTP1: TIdHTTP;      IdHTTP1: TIdHTTP;
39      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
40      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
41      CheckBox1: TCheckBox;      chkSporgEfterKunde: TCheckBox;
42      KommentarST: TStaticText;      KommentarST: TStaticText;
43      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
44      N1: TMenuItem;      N1: TMenuItem;
# Line 36  type Line 54  type
54      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
55      N2: TMenuItem;      N2: TMenuItem;
56      N3: TMenuItem;      N3: TMenuItem;
57      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
58      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
59      N4: TMenuItem;      N4: TMenuItem;
60      Storepakker1: TMenuItem;      Storepakker1: TMenuItem;
61      Smpakker1: TMenuItem;      Smpakker1: TMenuItem;
# Line 47  type Line 65  type
65      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
66      ListBox1: TListBox;      ListBox1: TListBox;
67      Budlevering1: TMenuItem;      Budlevering1: TMenuItem;
68      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
69      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
70      Image1: TImage;      Image1: TImage;
71      ListBox2: TListBox;      ListBox2: TListBox;
72      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
73      UploadButton01: TButton;      BtnUploadLogfil: TButton;
74      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
75      Pakkeshoplevering1: TMenuItem;      Pakkeshoplevering1: TMenuItem;
76      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
77      PakkeshopNulstil: TButton;      btnNulstil: TButton;
78      Returpakkerfrapakkeshop1: TMenuItem;      Returpakkerfrapakkeshop1: TMenuItem;
79      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
80      chkAltidPrintLabel: TCheckBox;      chkAltidPrintLabel: TCheckBox;
81      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
82      N5: TMenuItem;      N5: TMenuItem;
83      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
84      Manual1: TMenuItem;      Manual1: TMenuItem;
85      PrinterstatusStaticText1: TStaticText;      PrinterstatusStaticText1: TStaticText;
86      Timer1: TTimer;      Timer1: TTimer;
87      CheckBox3: TCheckBox;      chkScanTjekkode: TCheckBox;
88      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
89      Automatisktjekkodestyring1: TMenuItem;      Automatisktjekkodestyring1: TMenuItem;
90      Automatiskvalg1: TMenuItem;      Automatiskvalg1: TMenuItem;
# Line 77  type Line 95  type
95      PanelValg4: TPanel;      PanelValg4: TPanel;
96      PanelValg5: TPanel;      PanelValg5: TPanel;
97      PanelValg6: TPanel;      PanelValg6: TPanel;
98        PanelValg7: TPanel;
99      Manualgenerel1: TMenuItem;      Manualgenerel1: TMenuItem;
100      StaticTextManglendePakker: TStaticText;      StaticTextManglendePakker: TStaticText;
101      PanelManglendePakker1: TPanel;      PanelManglendePakker1: TPanel;
# Line 85  type Line 104  type
104      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
105      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
106      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
107      PanelValg7: TPanel;      menuIndlevering: TMenuItem;
108        chkForstorTilDirekte: TCheckBox;
109    
110    
111    
   function Explode(var a: TStrArray; Border, S: string): Integer;  
   function BarCodeValid (ACode: string): boolean;  
   function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String;  
   function TColorToHex(Color : TColor) : string;  
   function HexToTColor(sColor : string) : TColor;  
112    function getProddato() : TDate;    function getProddato() : TDate;
113    function getProddag() : String;    function getProddag() : String;
114    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
   function GetCurrentPrinterHandle() : THandle;  
   function SavePChar(p: PChar): PChar;  
   function AdobeReaderExists(): Boolean;  
   function FileTime2DateTime(FileTime: TFileTime): TDateTime;  
   function split(input: string; schar: Char; s: Integer): string;  
   function CheckUrl(url:string):boolean;  
115    
116    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
117    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 124  type
124    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
125    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
126    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
127    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
128    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
129    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
130    procedure Pakkernormal1Click(Sender: TObject);    procedure Pakkernormal1Click(Sender: TObject);
131    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
132    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
# Line 131  type Line 142  type
142    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
143    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
144    procedure Budlevering1Click(Sender: TObject);    procedure Budlevering1Click(Sender: TObject);
145    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
146    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
147    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
148    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
149    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 140  type Line 151  type
151    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
152    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
153    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
154    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
155    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
156    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
157    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
158    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
159    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
160    procedure InitReturFraDao();    procedure InitReturFraDao();
# Line 155  type Line 166  type
166    
167    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
168    procedure chkAltidPrintLabelClick(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
169    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
170    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
171    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
172    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
173    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
174    procedure CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
175    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure Automatisktjekkodestyring1Click(Sender: TObject);
176    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
177    procedure Automatiskvalg1Click(Sender: TObject);    procedure Automatiskvalg1Click(Sender: TObject);
# Line 172  type Line 182  type
182    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
183    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
184    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
185      procedure PanelValg7Click(Sender: TObject);
186    
187    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
188    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
189    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
190    procedure TjekkerUrls();    procedure TjekkerUrls();
191  // 20150310: start    procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
192    procedure RoundCornerOf(Control: TWinControl);  
193      procedure menuIndleveringClick(Sender: TObject);
194    
195    
196    
197      //Nedarvet fra IParentForm
198      procedure LogMessage( msg : string);
199      procedure SetPrinterstatusText( txt: string; alert: boolean);
200      function GetFormObject() : TForm;
201    
     procedure PanelValg7Click(Sender: TObject);  
 // 20150310: slut  
202    
203    private    private
204      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder
# Line 188  type Line 206  type
206      SkrivLog : String;      SkrivLog : String;
207      Sted : String;      Sted : String;
208      StedNavn : String;      StedNavn : String;
209      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering,
210  // 29150330: start              UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,
211                UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel, URLOmdirigerTilPakkeshop : String;
212    
213      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
214  // 20150330: slut  
215      UrlFindPakketype, UrlSendPrograminfo: String;      UrlFindPakketype, UrlSendPrograminfo: String;
216      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
217      ScanTjekkode : String;      ScanTjekkode : String;
218      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
219      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;  
220      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop,
221      LabelType : integer;            FarveIndlevering : String;
222    
223        Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop,
224              TitelIndlevering : String;
225    
226      AlarmLyd : String;      AlarmLyd : String;
227      ScannetOkLyd : String;      ScannetOkLyd : String;
228      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
229  // 20150317: start  
230      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
231  // 20150317: slut  
232      PrinterNavn : String;      PrinterNavn : String;
233      TjekPrinter : String;      TjekPrinter : String;
234      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;  
235      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
236      BladhusSted : Integer;      BladhusSted : Integer;
237      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 242  type Line 244  type
244      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
245      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
246      TjekUrls : String;      TjekUrls : String;
247        Config : TConfiguration;
248    
249            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }  
250        LabelPrint: TLabelPrint;
251    
252      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 = '');
253      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
254      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 = '');
255      procedure CheckCode();      procedure CheckCode();
256      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanninger();
# Line 255  type Line 259  type
259      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
260      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
261      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
262        procedure VisAlarmSkaerm(strMessage: string);
263        function InjectURL(Url : String) : String;
264    
265    public    public
266      { Public declarations }      { Public declarations }
267    end;    end;
268    
269    
270  var  var
271    MainForm: TMainForm;    MainForm: TMainForm;
272    
# Line 273  var Line 280  var
280  implementation  implementation
281  {$R *.dfm}  {$R *.dfm}
282    
283  function TMainForm.TColorToHex(Color : TColor) : string;  
284  begin  //FormCreate kaldes før InitForm
    Result :=  
      IntToHex(GetRValue(Color), 2) +  
      IntToHex(GetGValue(Color), 2) +  
      IntToHex(GetBValue(Color), 2) ;  
 end;  
   
 function TMainForm.HexToTColor(sColor : string) : TColor;  
 begin  
    Result :=  
      RGB(  
        StrToInt('$'+Copy(sColor, 1, 2)),  
        StrToInt('$'+Copy(sColor, 3, 2)),  
        StrToInt('$'+Copy(sColor, 5, 2))  
      ) ;  
 end;  
285    
286  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
287  begin  begin
288    
 // 20150309: startr  
289      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
290  // 20150309: slut  
291    
292      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
293      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 340  begin Line 331  begin
331        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
332      end;      end;
333    
334      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
335    
336      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
337      begin      begin
# Line 368  begin Line 359  begin
359        else if (Sted = 'BR') then        else if (Sted = 'BR') then
360          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
361        else if (Sted = 'BK') then        else if (Sted = 'BK') then
362          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
363          else if (Sted = 'TK') then
364            begin StedNavn := 'BK/Trykkompagniet: '; end
365        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
366          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
367        else if (Sted = '1') then        else if (Sted = '1') then
368          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
369        else if (Sted = '2') then        else if (Sted = '2') then
# Line 394  begin Line 387  begin
387    
388      StartScreen();      StartScreen();
389      MainForm.Caption := Titel;      MainForm.Caption := Titel;
390      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
391      MainForm.Farve := Farve;      MainForm.Farve := Farve;
392      MainForm.Titel := Titel;      MainForm.Titel := Titel;
393      MainForm.Url := Url;      MainForm.Url := Url;
# Line 409  begin Line 402  begin
402      else      else
403        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
404    
405      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
406      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
407      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
408    
409      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
410      begin      begin
411        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
412        begin        begin
413          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
414          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
415          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
416        end        end
417        else        else
418        begin        begin
419          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
420          CheckBox3.Enabled := true;         // False vil forhindre indtastning af tjekkode i nat x-press scanning          chkScanTjekkode.Enabled := true;         // False vil forhindre indtastning af tjekkode i nat x-press scanning
421          Scanogstjekkoden1.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning          Scanogstjekkoden1.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning
422        end;        end;
423      end;      end;
424    
425      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
426      begin      begin
427        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
428        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
429      end;      end;
430    
# Line 454  begin Line 447  begin
447          end          end
448          else          else
449          begin          begin
450            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
451          end;          end;
452          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
453        end        end
454        else        else
455        begin        begin
456          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
457          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
458        end;        end;
459      end;      end;
460    
461    
462  end;  end;
463    
464  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 490  procedure TMainForm.Automatisktjekkodest Line 484  procedure TMainForm.Automatisktjekkodest
484  begin  begin
485    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
486    begin    begin
487       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
488       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
489    end    end
490    else    else
491    begin    begin
492       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
493       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
494    end;    end;
495    
# Line 503  end; Line 497  end;
497    
498  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
499  begin  begin
 // 20150317: start  
 (*  
   if Automatiskvalg1.Checked then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
500  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
501  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
502       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
503       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
504       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
505  end;  end;
506    
507    function TMainForm.InjectURL(Url : String) : String;
508    begin
509    
510      Url := Url + '&ver=' + TUtils.URLEncode( TUtils.Sto_GetFmtFileVersion(''));
511      Url := Url + '&host=' + TUtils.URLEncode( TUtils.GetComputerNameHelper());
512      Url := Url + '&user=' + TUtils.URLEncode( TUtils.GetCurrentUserName());
513    
514      Result := Url;
515    end;
516    
517    //InitForm kaldes før FormCreate
518  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
519  const  const
520    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
521  var  var
   printerInd : integer;  
   i : Integer;  
 // 20150310: start  
522    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
523    
524  begin  begin
525    
526    
527    // Initierer nogle variabler    // Initierer nogle variabler
528    BladhusSted := 00;    BladhusSted := 00;
529    Application.ShowHint := True;    Application.ShowHint := True;
530    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
531    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
532  // 20150306: start  
533    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
534  // 20150306: slut  
535  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
536    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
537    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
538    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
539    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
540    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
541    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
542    
543    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp
544    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 565  begin Line 551  begin
551    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
552    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 750;
553    
554      Config := TConfiguration.Create();
555      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
556      Config.Sted := Sted;
557    
558    // Læser parametre fra ini filen    // Læser parametre fra ini filen
559    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
560    try    try
561    
562    
563      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
564      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
565      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
566    
567      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');
568        UrlFindPakketype := InjectURL(UrlFindPakketype);
569    
570      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');
571        UrlSendPrograminfo := InjectURL(UrlSendPrograminfo);
572    
573      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');
574        UrlNormal := InjectURL(UrlNormal);
575    
576      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');
577        UrlReturDAO := InjectURL(UrlReturDAO);
578    
579      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');
580        UrlReturBoghandler := InjectURL(UrlReturBoghandler);
581    
582      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');
583        UrlBudlevering := InjectURL(UrlBudlevering);
584    
585      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');
586        UrlManglendeScanninger := InjectURL(UrlManglendeScanninger);
587    
588      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');
589  // 20150330: start      UrlEKLoverforsel := InjectURL(UrlEKLoverforsel);
590    
591      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');
592  // 20150330: slut      UrlEKLoverforselPakkeshop := InjectURL(UrlEKLoverforselPakkeshop);
593    
594      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');
595        UrlPakkeshoplevering := InjectURL(UrlPakkeshoplevering);
596    
597      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');
598        UrlReturPakkeshop := InjectURL(UrlReturPakkeshop);
599    
600      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');
601        UrlPakkeshopManglendeScanninger := InjectURL(UrlPakkeshopManglendeScanninger);
602    
603      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
604      LabelType := ReadInteger('Settings','LabelType',1);      UrlPakkeshopManglendeReturScanninger := InjectURL(UrlPakkeshopManglendeReturScanninger);
605    
606        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
607        UrlIndleveringsPakke := InjectURL(UrlIndleveringsPakke);
608    
609        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
610        UrlIndleveringsPakkeManglendeScanninger := InjectURL(UrlIndleveringsPakkeManglendeScanninger);
611    
612        URLOmdirigerTilPakkeshop := ReadString('Settings', 'URLOmdirigerTilPakkeshop','http://omdeling.info/webservices/pakkeshop/PakkeKontrolOmdirigerTilPakkeshop.php?sted=%s&stregkode=%s');
613        URLOmdirigerTilPakkeshop := InjectURL(URLOmdirigerTilPakkeshop);
614    
615    
616    
617      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
618      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
619      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');
# Line 597  begin Line 624  begin
624      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
625      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
626      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
627    
628      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
629      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
630    
631        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
632        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
633    
634    
635      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
636      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
637      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 641  begin
641      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
642      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
643      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
644  // 20150317: start  
645      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
646  // 20150317: slut  
647      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
648      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
649      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
650    
651      if (SkrivLog = '1') then      if (SkrivLog = '1') then
652      begin      begin
653        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);        logTekst := 'Program start (Version: ' + TUtils.Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
654        try        try
655          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
656          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
657          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
658          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
659          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
660          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 639  begin Line 672  begin
672        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
673      end;      end;
674    
675      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;  
676    
677      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
678      begin      begin
679        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
680        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
681      end      end
682      else      else
683      begin      begin
684        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
685        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
686      end;      end;
687    
688      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
689      begin      begin
690        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
691        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
692      end      end
693      else      else
694      begin      begin
695        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
696        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
697      end;      end;
698    
699      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
700      begin      begin
701        Automatisktjekkodestyring1.Checked := true;        Automatisktjekkodestyring1.Checked := true;
702        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
703        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
704      end;      end;
705    
# Line 760  begin Line 725  begin
725      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
726      // *************************** //      // *************************** //
727    
728    {$IfDef STED_BK}
729        SpecialVersionSted := 'BK';
730    {$EndIf}
731    {$IfDef STED_TK}
732        SpecialVersionSted := 'TK';// BK-Trykkompagniet
733    {$EndIf}
734    {$IfDef STED_DBK}
735        SpecialVersionSted := 'DBK';
736    {$EndIf}
737    {$IfDef STED_FD}
738        SpecialVersionSted := 'FD';
739    {$EndIf}
740    {$IfDef STED_NS}
741        SpecialVersionSted := 'NS';
742    {$EndIf}
743    
744    
745      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
746      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
747      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 757  begin
757      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
758      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
759    
 // 20150313: start  
760      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
761      begin      begin
762         SpecialVersionSted := '01';         SpecialVersionSted := '01';
763         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
764      end;      end;
765    
766      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
767      begin      begin
768         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
769         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
770    
771    
772          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
773          Sted := SpecialVersionSted;
774         // her skal vi også disable de knapper BK ikke kan bruge
775          PanelValg2.Enabled := false;
776          PanelValg2.Font.Color := clInactiveCaption;
777          PanelValg3.Enabled := false;
778          PanelValg3.Font.Color := clInactiveCaption;
779          //PanelValg6.Enabled := false;
780          //PanelValg6.Font.Color := clInactiveCaption;
781    
782         // her skal vi også disable de menupunkter FD ikke kan bruge
783          ReturpakkerfraDAO1.Enabled := false;
784          Returpakkerfraboghandler1.Enabled := false;
785    
786          //Returpakkerfrapakkeshop1.Enabled := false;
787    
788      end;      end;
 // 20150313: slut  
789    
790      if SpecialVersionSted = 'BK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
791      begin      begin
792        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
793        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
# Line 797  begin Line 796  begin
796        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
797        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
798        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
799        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
800        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
801    
802       // her skal vi også disable de menupunkter BK ikke kan bruge       // her skal vi også disable de menupunkter BK ikke kan bruge
803        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
804        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
805        Returpakkerfrapakkeshop1.Enabled := false;  
806          //Returpakkerfrapakkeshop1.Enabled := false;
807    
808        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
809        begin        begin
810           Scanningtype := '1';           Scanningtype := '1';
# Line 826  begin Line 828  begin
828        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
829        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
830        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
831    
832    
833       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
834        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
835        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
836  // 20150317: start  
837        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
838        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
839  // 20150317: slut  
840        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
841        begin        begin
842           Scanningtype := '1';           Scanningtype := '1';
# Line 862  begin Line 866  begin
866        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
867        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
868        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
869          PanelValg7.Enabled := false;
870          PanelValg7.Font.Color := clInactiveCaption;
871       // 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
872  // 20150317: start  
873        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
874  // 20150317: slut  
875        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
876        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
877        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 957  begin Line 963  begin
963             RutenummerST.Caption := '';             RutenummerST.Caption := '';
964             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
965             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
966             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
967             exit;             exit;
968          end;          end;
969      end      end
# Line 1000  begin Line 1006  begin
1006      if Pakketype = '1' then      if Pakketype = '1' then
1007      begin      begin
1008        Storepakker1.Checked := true;        Storepakker1.Checked := true;
1009        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
1010      end      end
1011      else      else
1012      begin      begin
1013        Smpakker1.Checked := true;        Smpakker1.Checked := true;
1014        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
1015      end;      end;
1016    
1017      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 1051  begin
1051        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
1052      end;      end;
1053    
1054  // 20150317: start  
1055      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
1056      begin      begin
1057        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
1058      end;      end;
 // 20150317: slut  
1059    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
1060    
1061      CheckPrintQue('Opstart');  
1062    
1063        LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
1064        LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
1065    
1066    finally    finally
1067      Free;      Free;
# Line 1083  begin Line 1085  begin
1085          InitBladhus();          InitBladhus();
1086        end;        end;
1087    
1088  // 20150310: start  
1089      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1090      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1091    
# Line 1124  begin Line 1126  begin
1126      end;      end;
1127    
1128      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1129    
1130      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1131      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1132    
1133  end;  end;
1134    
# Line 1145  var Line 1146  var
1146    BoghandlerNavn : String;    BoghandlerNavn : String;
1147    Koreliste : String;    Koreliste : String;
1148    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1149    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1150    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1151    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1170  begin
1170      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1171      numberString := ClipboardData;      numberString := ClipboardData;
1172      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1173  // 20150311: start  
1174  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1175      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1176      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1177      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1185  begin Line 1185  begin
1185      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1186      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1187      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1188        or (NumberString = 'DAO PAKKESHOP')
1189        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1190            or (LowerCase(NumberString) = 'for stor daodirekte' )
1191      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1192  // 20150311: slut  
1193      begin      begin
1194        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1195        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1195  begin Line 1198  begin
1198      begin      begin
1199        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1200      end;      end;
1201    end;    end;  // Slut ctrl-v
1202    
1203    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1204    begin    begin
1205  // 20150306: start  
1206      if (Length(Trim(Stregkode)) = 0) then      // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1207        Stregkode := Trim(Stregkode);
1208    
1209        if (Length(Stregkode) = 0) then
1210      begin      begin
1211        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1212        List1msg := 'Der skal scannes en stregkode...';  
       ListBox1.Items.Insert(0,List1Msg);  
       MainForm.Color := clRed;  
 // 20150316: start  
       RuteNummerST.Caption := '';  
       BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
       KommentarST.Caption := List1msg;  
       PakkeshopNulstil.Visible := true;  
1213        exit;        exit;
1214      end;      end;
 // 20150306: slut  
1215    
 // 20150311: start  
1216      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1217      begin      begin
1218         PakkeshopNulstil.Click();         btnNulstil.Click();
1219         exit;         exit;
1220      end;      end;
1221    
1222      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1223      begin      begin
1224         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1225  // 20150312: start  
 //       List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        List1msg := 'HUSK at klikke Nulstil før ny scanning...';  
 // 20150312: slut  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
 // 20150312: start  
        Stregkode := '';  
        StregkodeST.Caption := StregKode;  
 // 20150312: slut  
1226         exit;         exit;
1227      end;      end;
1228    
1229      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1230      begin      begin
1231         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1232         begin         begin
1233            InitLillePakke();            InitLillePakke();
1234         end         end
1235         else         else
1236         begin         begin
1237          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1238         end;         end;
1239         Stregkode := '';         Stregkode := '';
1240         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1243  begin
1243    
1244      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1245      begin      begin
1246         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1247         begin         begin
1248            InitStorPakke();            InitStorPakke();
1249         end         end
1250         else         else
1251         begin         begin
1252          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1253         end;         end;
1254         Stregkode := '';         Stregkode := '';
1255         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1256         exit;         exit;
1257      end;      end;
1258    
1259        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1260        begin
1261          if chkForstorTilDirekte.Enabled then
1262          begin
1263            chkForstorTilDirekte.Checked := true;
1264          end
1265          else
1266          begin
1267             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1268          end;
1269          Stregkode := '';
1270          StregkodeST.Caption := StregKode;
1271          exit;
1272        end;
1273    
1274    
1275      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1276      begin      begin
1277         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1278         begin         begin
1279           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1280           begin           begin
1281            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1282           end           end
1283           else           else
1284           begin           begin
1285            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1286           end;           end;
1287         end         end
1288         else         else
1289         begin         begin
1290          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1291         end;         end;
1292         Stregkode := '';         Stregkode := '';
1293         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1296  begin
1296    
1297      if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then      if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then
1298      begin      begin
1299        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1300        begin        begin
1301           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1302           begin           begin
1303            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1304           end           end
1305           else           else
1306           begin           begin
1307            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1308           end;           end;
1309        end        end
1310        else        else
1311        begin        begin
1312          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1313        end;        end;
1314        Stregkode := '';        Stregkode := '';
1315        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1324  begin
1324         end         end
1325         else         else
1326         begin         begin
1327          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted');
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1328         end;         end;
1329         Stregkode := '';         Stregkode := '';
1330         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1331         exit;         exit;
1332      end;      end;
1333    
1334  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1335      if (StregKode = 'DAO NAT X-PRESS' ) or (StregKode = 'DAO NAT X+PRESS') then      if (StregKode = 'DAO NAT X-PRESS' ) or (StregKode = 'DAO NAT X+PRESS') then
 // 20150323: slut  
1336      begin      begin
1337         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1338         begin         begin
# Line 1395  begin Line 1340  begin
1340         end         end
1341         else         else
1342         begin         begin
1343          //ShowMessage('Ændring ikke tilladt');          VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted');
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1344         end;         end;
1345         Stregkode := '';         Stregkode := '';
1346         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1355  begin
1355         end         end
1356         else         else
1357         begin         begin
1358          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1359         end;         end;
1360         Stregkode := '';         Stregkode := '';
1361         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1370  begin
1370         end         end
1371         else         else
1372         begin         begin
1373          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1374         end;         end;
1375         Stregkode := '';         Stregkode := '';
1376         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1385  begin
1385         end         end
1386         else         else
1387         begin         begin
1388          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1389         end;         end;
1390         Stregkode := '';         Stregkode := '';
1391         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1400  begin
1400         end         end
1401         else         else
1402         begin         begin
1403          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1404         end;         end;
1405         Stregkode := '';         Stregkode := '';
1406         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1415  begin
1415         end         end
1416         else         else
1417         begin         begin
1418          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1419         end;         end;
1420         Stregkode := '';         Stregkode := '';
1421         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1422         exit;         exit;
1423      end;      end;
1424  // 20150311: slut  
1425    
1426      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1427      begin      begin
# Line 1590  begin Line 1469  begin
1469        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1470      end;      end;
1471    
1472      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1473          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1474          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1475          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1476          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1477          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1478      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1479         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1480         List1msg := 'Pakketype ' + Pakketype + ' kan ikke scannes på dette scanningsted';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
 // 20150316: start  
        RuteNummerST.Caption := '';  
        BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
        KommentarST.Caption := List1msg;  
        PakkeshopNulstil.Visible := true;  
 // 20150311: start  
        StregKode := '';  
        StregkodeST.Caption := StregKode;  
 // 20150311: slut  
1481         exit;         exit;
1482      end;      end;
1483    
1484      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (Automatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1485      begin      begin
1486        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1487        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1626  begin Line 1493  begin
1493              end;              end;
1494            end            end
1495        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1496  (*  
       else if Pakketype = 'NatXpressReturDAO' then  
           begin  
             if Scanningtype <> '2' then  
             begin  
               Scanningtype := '2';  
               InitReturFraDao();  
             end;  
           end  
       else if Pakketype = 'NatXpressReturKunde' then  
           begin  
             if Scanningtype <> '3' then  
             begin  
               Scanningtype := '3';  
               InitReturFraKunde();  
             end;  
           end  
 *)  
1497        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1498            begin            begin
1499              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1661  begin Line 1511  begin
1511              end;              end;
1512            end            end
1513        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1514  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1515        else        else
1516            begin   // Her skal komme en alarm og rød skærm            begin
1517               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1518               List1msg := 'Pakken kan ikke scannes med automatisk valg';              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1519               ListBox1.Items.Insert(0,List1Msg);               VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1520               MainForm.Color := clRed;  
 // 20150316: start  
              RuteNummerST.Caption := '';  
              BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
              KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
 // 20150311: start  
              StregKode := '';  
              StregkodeST.Caption := StregKode;  
 // 20150311: slut  
1521               exit;               exit;
1522            end;            end;
1523        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1524      end      end
1525      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1526      begin      begin
1527        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1528        List1msg := 'Pakkenummer ikke gyldigt (for kort)';  
       ListBox1.Items.Insert(0,List1Msg);  
       MainForm.Color := clRed;  
 // 20150316: start  
       RuteNummerST.Caption := '';  
       BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
       KommentarST.Caption := List1msg;  
       PakkeshopNulstil.Visible := true;  
 // 20150312: start  
       StregKode := '';  
       StregkodeST.Caption := StregKode;  
 // 20150312: slut  
1529        exit;        exit;
1530      end;      end;
1531    
# Line 1714  begin Line 1533  begin
1533      begin      begin
1534        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1535        begin        begin
         PlaySound(PWideChar(AlarmLyd));  
         List1msg := 'Pakke findes som pakketype: ' + Pakketype;  
         ListBox1.Items.Insert(0,List1Msg);  
         MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
         KommentarST.Caption := List1msg;  
         PakkeshopNulstil.Visible := true;  
 // 20150312: start  
         StregKode := '';  
         StregkodeST.Caption := StregKode;  
 // 20150312: slut  
         exit;  
       end;  
     end;  
   
 // 20150311: start  
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
1536    
1537      if PakkeshopNulstil.Visible then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        PlaySound(PWideChar(AlarmLyd));  
        List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
        exit;  
     end;  
1538    
1539      if StregKode = 'Lille pakke' then          exit;
1540      begin        end;
        InitLillePakke();  
        exit;  
     end;  
   
     if StregKode = 'Stor pakke' then  
     begin  
        InitStorPakke();  
        exit;  
     end;  
   
     if StregKode = 'Indtast kundenummer' then  
     begin  
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
1541      end;      end;
1542    
     if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then  
     begin  
        if (CheckBox3.State = cbChecked) then  
        begin  
         CheckBox3.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox3.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
     end;  
 *)  
 // 20150311: slut  
1543    
1544    
1545      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1546      begin      begin
1547        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1548        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1549        begin        begin
1550          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1551          begin          begin
1552              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1553              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1554          end;          end;
1555        end;        end;
# Line 1812  begin Line 1561  begin
1561             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1562             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1563             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1564             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1565             Stregkode := '';             Stregkode := '';
1566             InitScreen();             InitScreen();
1567        end        end
# Line 1824  begin Line 1573  begin
1573             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1574             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1575             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1576             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1577             Stregkode := '';             Stregkode := '';
1578             InitScreen();             InitScreen();
1579        end        end
# Line 1836  begin Line 1585  begin
1585              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1586              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1587              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1588  // 20150317: start  
1589              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1590  // 20150317: slut  
1591             end             end
1592            else            else
1593             begin             begin
1594                List1msg := 'Du skal scanne en stregkode';                VisAlarmSkaerm( 'Du skal scanne en stregkode' );
               ListBox1.Items.Insert(0,List1Msg);  
               //logTekst := RightStr(List1Msg, Length(List1Msg)-10);  
               //SkrivScanningLogFil(logTekst);  
               PlaySound(PWideChar(AlarmLyd));  
               PakkeshopNulstil.Visible := true;  
               MainForm.Color := clRed;  
1595             end;             end;
1596            Stregkode := '';            Stregkode := '';
1597            InitScreen();            InitScreen();
# Line 1861  begin Line 1604  begin
1604             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1605             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1606             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1607                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1608             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1609                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1610             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1611           end           end
1612          else          else
1613           begin           begin
1614                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1615                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1616                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1617                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1618                KommentarST.Caption := List1msg;                  
               ListBox1.Items.Insert(0,List1Msg);  
               //logTekst := RightStr(List1Msg, Length(List1Msg)-10);  
               //SkrivScanningLogFil(logTekst);  
               PlaySound(PWideChar(AlarmLyd));  
               PakkeshopNulstil.Visible := true;  
               MainForm.Color := clRed;  
 // 20150323: start  
1619                StregKode := '';                StregKode := '';
1620                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1621  // 20150323: slut  
1622                exit;                exit;
1623           end;           end;
1624          Stregkode := '';          Stregkode := '';
# Line 1891  begin Line 1627  begin
1627    
1628      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 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
1629      begin      begin
1630    
1631         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1632            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1633         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
# Line 1903  begin Line 1640  begin
1640            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1641            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1642            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1643               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1644               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1645              exit;              exit;
1646            end;            end;
1647            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1928  begin Line 1661  begin
1661              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1662              begin              begin
1663                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1664                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1665                MainForm.Color := clRed;                MainForm.Color := clRed;
1666              end;              end;
1667           end;           end;
1668            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then
1669            begin            begin
1670              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1671              if Storepakker1.Checked then              if Storepakker1.Checked then
1672              begin              begin
1673                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1943  begin Line 1676  begin
1676              begin              begin
1677                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1678              end;              end;
1679              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1680            end            end
1681            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1682            begin            begin
1683              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1684              if Storepakker1.Checked then              if Storepakker1.Checked then
1685              begin              begin
1686                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1956  begin Line 1689  begin
1689              begin              begin
1690                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1691              end;              end;
1692              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1693            end            end
1694            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1695            begin            begin
1696              List1msg := 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages';              VisAlarmSkaerm( 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages' );
             ListBox1.Items.Insert(0,List1Msg);  
             MainForm.Color := clRed;  
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1697            end            end
1698            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1699            begin            begin
1700            end            end
1701            else            else
1702            begin            begin
1703              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1704            end;            end;
1705           if not PakkeshopNulstil.Visible then  
1706             if not btnNulstil.Visible then
1707            begin            begin
1708  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1709              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1710              begin              begin
1711                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1719  begin
1719                InitLillePakke();                InitLillePakke();
1720              end;              end;
1721            end;            end;
1722  // 20150310: start  
1723            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1724  // 20150310: slut  
1725            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1726            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1727            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1752  begin
1752    
1753    Key := #0;    Key := #0;
1754    
1755  end;  
1756    
1757    
1758    
1759    
1760    end; //End of OnKeyPress
1761    
1762    
1763    
1764  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1765  const  const
# Line 2063  end; Line 1796  end;
1796    
1797  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1798  var  var
 // 20150309: start  
 //  i:integer;  
1799    i : Integer;    i : Integer;
1800    wrkAntal : String;    wrkAntal : String;
1801    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1802  // 20150309: slut  
1803    
1804  begin  begin
1805      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked or menuIndlevering.Checked then
1806      begin      begin
1807        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1808          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1809          begin          begin
1810  // 20150309: start  
1811            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1812            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1813            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1814            begin            begin
1815              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1816              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1817  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1818  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1819  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1820              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1821            end            end
1822            else     // kun idag            else     // kun idag
1823            begin            begin
# Line 2112  begin Line 1843  begin
1843            begin            begin
1844              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1845            end;            end;
 // 20150309: slut  
1846    
 // 20150310: start  
1847            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1848            begin            begin
1849              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2192  begin Line 1921  begin
1921                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1922              end;              end;
1923            end;            end;
1924  // 20150310: slut  
1925            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1926          end;          end;
1927      end;      end;
# Line 2219  begin Line 1948  begin
1948  end;  end;
1949    
1950  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1951    
1952  begin  begin
1953    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2230  begin Line 1957  begin
1957    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1958    ListBox1.Visible := true;    ListBox1.Visible := true;
1959  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1960  // 20150317: start  
 (*  
   if TestFunktionen = '1' then  
     begin  
       Testforbindelsen1.Visible := true;  
       Testprinter1.Visible := true;  
       Testlyd1.Visible := true;  
       Testlyd2.Visible := true;  
     end  
   else if TestFunktionen = '2' then  
     begin  
       Testforbindelsen1.Enabled := false;  
       Testprinter1.Enabled := false;  
       Testlyd1.Enabled := false;  
       Testlyd2.Enabled := false;  
     end  
   else  
     begin  
       Testforbindelsen1.Visible := false;  
       Testprinter1.Visible := false;  
       Testlyd1.Visible := false;  
       Testlyd2.Visible := false;  
     end;  
   Testprinter1.Visible := false;  
   AlarmLyd := 'Sounds\Alarm.wav';  
   if not FileExists(AlarmLyd) then  
     begin  
       AlarmLyd := '';  
     end;  
   ScannetOkLyd := 'Sounds\Ok.wav';  
   if not FileExists(ScannetOkLyd) then  
     begin  
       ScannetOkLyd := '';  
     end;  
   ScannetOkStorLyd := 'Sounds\Ok_stor.wav';  
   if not FileExists(ScannetOkStorLyd) then  
     begin  
       ScannetOkStorLyd := '';  
     end;  
 *)  
 // 20150317: slut  
1961    if Budlevering1.Checked then    if Budlevering1.Checked then
1962    begin    begin
1963      IndlesScanningLogFil();      IndlesScanningLogFil();
# Line 2283  begin Line 1970  begin
1970      01 :      01 :
1971            begin;      // NS            begin;      // NS
1972              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1973              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1974              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1975              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1976              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1977              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2297  begin Line 1984  begin
1984              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1985              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1986              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1987              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1988              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1989              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1990              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1991              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1992              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1993              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 1997  begin
1997              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1998             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
1999              begin              begin
2000                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2001              end              end
2002              else              else
2003              begin              begin
2004                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2005              end;              end;
2006              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2007              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2008              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2009              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2010              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2335  begin Line 2022  begin
2022              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2023              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
2024              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2025              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
2026              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
2027              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
2028              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2029              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2030              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2031            end;            end;
# Line 2354  var Line 2041  var
2041    URLStr : String;    URLStr : String;
2042    pakkestorrelse : String;    pakkestorrelse : String;
2043    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2044    
2045      PakkeshopLabel: TPakkeshopLabel;
2046  begin  begin
2047    if RadioButton1.Checked then    if radioStorPakke.Checked then
2048    begin    begin
2049      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
2050    end;    end;
2051    if RadioButton2.Checked then    if radioLillePakke.Checked then
2052    begin    begin
2053      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2054    end;    end;
2055    
2056    
2057    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
2058    begin    begin
2059       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 2082  begin
2082    begin    begin
2083       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2084    end    end
2085      else if menuIndlevering.Checked then
2086      begin
2087        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2088      end
2089    else    else
2090    begin    begin
2091      exit;      exit;
2092    end;    end;
2093    
2094      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2095      begin
2096        URLStr := Format(URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2097      end;
2098    
2099    try    try
2100      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2101      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2416  begin Line 2117  begin
2117          end;          end;
2118      end;      end;
2119    end;    end;
2120    
2121    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2122    try    try
2123      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then
# Line 2425  begin Line 2127  begin
2127        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2128        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2129        PrintNyLabel := False;        PrintNyLabel := False;
2130  // 20150310: start  
2131        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2132        begin        begin
 // 20150310: slut  
2133          try          try
2134            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2135          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2139  begin
2139          begin          begin
2140            PrintNyLabel := True;            PrintNyLabel := True;
2141          end;          end;
 // 20150310: start  
2142        end;        end;
 // 20150310: slut  
2143       end       end
2144        else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2145        begin
2146    
2147    
2148    
2149    
2150         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2151         if (Kommentar = 'Ok') then
2152         begin
2153           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2154           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2155           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2156           Stregkode := PakkeshopLabel.Stregkode;
2157    
2158           LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2159           chkForstorTilDirekte.Checked := false;
2160    
2161         end;
2162    
2163    
2164        end
2165      else      else
2166       begin       begin
2167        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2194  begin
2194          PrintNyLabel := True;          PrintNyLabel := True;
2195        end;        end;
2196      end;      end;
2197    
2198    
2199      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2200      begin      begin
2201        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2236  begin
2236    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2237      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2238    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2239    if RadioButton1.Checked then    if radioStorPakke.Checked then
2240    begin    begin
2241      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2242    end;    end;
2243    if RadioButton2.Checked then    if radioLillePakke.Checked then
2244    begin    begin
2245      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2246    end;    end;
# Line 2540  begin Line 2262  begin
2262    if Budlevering1.Checked then    if Budlevering1.Checked then
2263    begin    begin
2264       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2265        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2266        begin        begin
2267          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2268        end;        end;
2269        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2270        begin        begin
2271          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2272        end;        end;
# Line 2566  begin Line 2288  begin
2288        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2289      end;      end;
2290    end;    end;
2291      if menuIndlevering.Checked then
2292      begin
2293        List1Msg := Stregkode;
2294      end;
2295    
2296    
2297    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2298    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2299    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2300  end;  end;
2301    
2302  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2303  begin  begin
2304    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2305    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2588  pakkeForkertSted : Integer; Line 2316  pakkeForkertSted : Integer;
2316    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2317  begin  begin
2318    if Budlevering1.Checked then    if Budlevering1.Checked then
2319       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2320    
2321    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2322    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2329  begin
2329    end;    end;
2330    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2331    
2332  // 20150306: start  
2333  //  if Sprgefterboghandlernummer1.Enabled and CheckBox1.Checked and (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) then    if Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) ) then
2334    if Sprgefterboghandlernummer1.Enabled and CheckBox1.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) ) then  
 // 20150306: slut  
2335    begin    begin
2336        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2337        begin        begin
# Line 2631  begin Line 2358  begin
2358       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2359       begin       begin
2360          PrintNyLabel := false;          PrintNyLabel := false;
2361  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2362          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2363          MainForm.Color := clRed;          MainForm.Color := clRed;
2364          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2365  // 20150306: slut  
2366       end       end
2367       else       else
2368       begin       begin
# Line 2646  begin Line 2372  begin
2372            PrintNyLabel := true;            PrintNyLabel := true;
2373            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2374            nyFarve := Farve;            nyFarve := Farve;
2375            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2376            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2377            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2378            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2379            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2380            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2381  // 20150213: start  
2382            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2383            begin            begin
2384               PrintNyLabel := false;               PrintNyLabel := false;
2385            end;            end;
2386  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2387            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2388            begin            begin
2389              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2390              MainForm.Color := clRed;              MainForm.Color := clRed;
2391              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2392            end;            end;
2393  // 20150306: slut  
2394         end;         end;
2395         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2396         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2409  begin
2409            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2410            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2411            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2412  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2413            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2414            begin            begin
2415              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2416              MainForm.Color := clRed;              MainForm.Color := clRed;
2417              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2418            end;            end;
2419  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2420         end;         end;
2421       end;       end;
2422    
# Line 2715  begin Line 2434  begin
2434               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2435  // 20150304: slut  // 20150304: slut
2436                begin                begin
2437                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2438                end;                end;
2439              end;              end;
2440        01 :  begin;        01 :  begin;
2441               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2442                    // 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
2443                    // 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')
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        02 :  begin;        02 :  begin;
2449                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
2450                begin                begin
2451                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2452                end;                end;
2453              end;              end;
2454        03 :  begin;        03 :  begin;
2455               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2456                    // 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
2457                    // 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')
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        04 :  begin;        04 :  begin;
2463                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
2464                begin                begin
2465                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2466                end;                end;
2467              end;              end;
2468        else        else
# Line 2757  begin Line 2476  begin
2476      exit;      exit;
2477    end;    end;
2478    
2479    if Budlevering1.Checked or ( Sprgefterboghandlernummer1.Enabled and CheckBox1.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then    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
2480    begin    begin
2481    end    end
2482    else    else
# Line 2779  begin Line 2498  begin
2498        end;        end;
2499        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2500        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2501        with Printer do  
2502        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2503          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;  
2504      end;      end;
2505    end;    end;
2506    
2507  end;  end;
2508    
 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]);  
 // 20150304: start  
       Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);  
 // 20150304: slut  
       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;  
2509    
2510    
2511  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2512  begin  begin
2513      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2514      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2515  end;  end;
2516    
2517  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2518  begin  begin
2519      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2520      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2521  end;  end;
2522    
2523    
2524  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2525  begin  begin
2526    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2527    begin    begin
2528       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2529    end    end
# Line 2888  begin Line 2547  begin
2547    
2548  end;  end;
2549    
2550  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2551  begin  begin
2552    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2553    begin    begin
2554       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2555    end    end
# Line 2912  begin Line 2571  begin
2571      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2572      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2573      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2574  // 20150317: start  
2575      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2576      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2577      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2578      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2579      begin      begin
2580        // 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)
2581        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 2936  begin Line 2595  begin
2595    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2596    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...');
2597    
2598          // Tjekker urls    try
2599          logTekst := 'Tjekker urls.';      // Tjekker urls
2600          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2601          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2602        SkrivScanningLogFil(logTekst);
2603    
         // Tjekker UrlNormal  
         if PanelValg1.Enabled = true then  
         begin  
           if CheckUrl(UrlNormal) then  
           begin  
             logTekst := 'UrlNormal accepteret: ' + UrlNormal;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlNormal svarer ikke: ' + UrlNormal;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               TjekUrls := '-';   // markerer at der var fejl  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2604    
         // Tjekker UrlReturDAO  
         if PanelValg2.Enabled = true then  
         begin  
           if CheckUrl(UrlReturDAO) then  
           begin  
             logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2605    
2606          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2607          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2608          begin      begin
2609            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2610            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;  
2611    
2612          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2613          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2614          begin      begin
2615            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2616            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;  
2617    
2618          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2619          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2620          begin      begin
2621            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2622            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;  
2623    
2624          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2625          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2626          begin      begin
2627            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2628            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;  
2629    
2630          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2631          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2632          or (PanelValg4.Enabled = true) then      begin
2633          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2634            if 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;  
2635    
2636          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2637          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2638          begin      begin
2639            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2640            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;  
2641    
2642          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2643          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2644          begin      begin
2645            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2646            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;  
2647    
2648          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2649          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2650          begin      begin
2651            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2652            begin      end;
             logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforsel svarer ikke: ' + UrlEKLoverforsel;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2653    
2654  // 20150330: start      // Tjekker UrlPakkeshopManglendeReturScanninger
2655          // Tjekker UrlEKLoverforselPakkeshop      if PanelValg6.Enabled = true then
2656          if PanelValg5.Enabled = true then      begin
2657          begin        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2658            if CheckUrl(UrlEKLoverforselPakkeshop) then      end;
           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;  
 // 20150330: slut  
2659    
2660          // Tjekker UrlFindPakketype     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2661          if CheckUrl(UrlFindPakketype) then      if PanelValg7.Enabled = true then
2662          begin      begin
2663            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2664            SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2665          end      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;  
2666    
2667          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforsel
2668          if CheckUrl(UrlSendPrograminfo) then      if PanelValg1.Enabled = true then
2669          begin      begin
2670            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2671            SkrivScanningLogFil(logTekst);      end;
2672          end  
2673          else  
2674          begin      // Tjekker UrlEKLoverforselPakkeshop
2675              inc(urlFejl);   // Optæller antal fejl      if PanelValg5.Enabled = true then
2676              logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;      begin
2677              ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2678              if TjekUrls = '1' then      end;
             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;  
2679    
         if urlFejl > 0 then  
         begin  
           TjekUrls := '-';   // markerer at der var fejl  
         end  
         else  
         begin  
           logTekst := 'urls er ok';  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
2680    
2681        // Tjekker UrlFindPakketype
2682        TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2683    
2684        // Tjekker UrlSendPrograminfo
2685        TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2686    
2687    
2688    
2689        logTekst := 'urls er ok';
2690        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2691        SkrivScanningLogFil(logTekst);
2692    
2693      Except
2694        TjekUrls := '-';   // markerer at der var fejl
2695    
2696      end;
2697  end;  end;
2698    
2699  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2700  var  const
2701     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2702  begin  begin
2703     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2704     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2705     Result := SystemTimeToDateTime(SystemTime) ;    begin
2706        logTekst := UrlNavn + ' accepteret: ' + Url;
2707        SkrivScanningLogFil(logTekst);
2708      end
2709      else
2710      begin
2711        inc(urlFejl);   // Optæller antal fejl
2712        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2713        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2714        if TjekUrls = '1' then
2715        begin
2716          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2717        end;
2718    
2719        SkrivScanningLogFil(logTekst);
2720    
2721        if TjekUrls = '1' then
2722        begin
2723          ShowMessage(logTekst);
2724          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2725          Application.Terminate;
2726    
2727          raise Exception.Create('UrlFejl');
2728    
2729        end;
2730      end;
2731    
2732  end;  end;
2733    
2734    
2735    
2736  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2737  var  var
2738    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 2749  begin
2749      repeat      repeat
2750        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2751        begin        begin
2752    
2753          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2754          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2755          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2756          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2757          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2758          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
# Line 3381  begin Line 2789  begin
2789    end;    end;
2790  end;  end;
2791    
2792  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2793  begin  begin
2794    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2795    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2796    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2797    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2798    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2799    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 2811  begin
2811  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2812    if Farve <> '' then    if Farve <> '' then
2813    begin    begin
2814       MainForm.Color := 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  
2815    end;    end;
2816    if (Budlevering1.Checked) then    if (Budlevering1.Checked) then
2817    begin    begin
# Line 3477  end; Line 2875  end;
2875    
2876  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2877  begin  begin
 // 20150311: start  
 (*  
   if PanelValgA.Color = clBtnFace then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
2878  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2879  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2880       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
2881       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2882       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2883  // 20150311: slut  
2884    
2885    
2886  end;  end;
2887    
2888  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3514  var Line 2899  var
2899    BoghandlerNavn : String;    BoghandlerNavn : String;
2900    Koreliste : String;    Koreliste : String;
2901    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2902    SmsKode : String;    SmsKode : String;
2903    DBKbane : String;    DBKbane : String;
2904    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 2920  begin
2920      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2921      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2922      MainForm.Color := clRed;      MainForm.Color := clRed;
2923      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2924    end    end
2925    else    else
2926    begin    begin
2927      Falsk := False;      Falsk := False;
2928      Sand := True;  
2929      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2930      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2931      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 2945  var
2945    BoghandlerNavn : String;    BoghandlerNavn : String;
2946    Koreliste : String;    Koreliste : String;
2947    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2948    SmsKode : String;    SmsKode : String;
2949    DBKbane : String;    DBKbane : String;
2950    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 2953  begin
2953    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2954    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2955    Falsk := False;    Falsk := False;
   Sand := True;  
2956    
2957    if (Printer.Printers.Count = 0) then  
2958      if (LabelPrint.GetPrinterCount() = 0) then
2959    begin    begin
2960      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2961    end    end
# Line 3587  begin Line 2970  begin
2970      DBKbane := '999';      DBKbane := '999';
2971      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2972      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2973      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2974    end;    end;
2975    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2976  end;  end;
# Line 3596  procedure TMainForm.Timer1Timer(Sender: Line 2979  procedure TMainForm.Timer1Timer(Sender:
2979  begin  begin
2980    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
2981    begin    begin
2982      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2983    end    end
2984    else    else
2985    begin    begin
# Line 3605  begin Line 2988  begin
2988    end;    end;
2989  end;  end;
2990    
2991  {  
  VERY fast split function  
  this function returns part of a string based on  
  constant defineable delimiters, such as ";". So  
  SPLIT('this is a test ',' ',3) = 'is' or  
  SPLIT('data;another;yet;again;more;',';',4) = 'yet'  
   
  Split function shifts index integer by two to  
  be compatible with commonly used PD split function  
  gpl 2004 / Juhani Suhonen  
 }  
 function TMainForm.split(input: string; schar: Char; s: Integer): string;  
 var  
   c: array of Integer;  
   b, t: Integer;  
 begin  
   Dec(s, 2);  // for compatibility with very old & slow split function  
   t := 0;     // variable T needs to be initialized...  
   setlength(c, Length(input));  
   for b := 0 to pred(High(c)) do  
   begin  
     c[b + 1] := posex(schar, input, succ(c[b]));  
     // BREAK LOOP if posex looped (position before previous)  
     // or wanted position reached..  
     if (c[b + 1] < c[b]) or (s < t) then break  
     else  
       Inc(t);  
   end;  
   Result := Copy(input, succ(c[s]), pred(c[s + 1] - c[s]));  
 end;  
2992    
2993  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
2994  const  const
# Line 3643  var Line 2997  var
2997   tekst, filversion : String;   tekst, filversion : String;
2998  begin  begin
2999    
3000    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
3001    tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';    tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';
3002    
3003    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 3019  begin
3019          end          end
3020          else          else
3021          begin          begin
3022            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3023          end;          end;
3024      end      end
3025      else      else
3026      begin      begin
3027        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3028      end;      end;
3029    end;    end;
3030    
# Line 3738  begin Line 3092  begin
3092    
3093    if FileExists(fileName) then    if FileExists(fileName) then
3094    begin    begin
3095      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3096      begin      begin
3097        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3098        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3116  begin
3116    
3117    if FileExists(fileName) then    if FileExists(fileName) then
3118    begin    begin
3119      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3120      begin      begin
3121        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3122        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3123      end      end
3124      else      else
3125      begin      begin
3126        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3127      end;      end;
3128    end    end
3129    else    else
# Line 3778  begin Line 3132  begin
3132    end;    end;
3133  end;  end;
3134    
3135    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3136    begin
3137      Scanningtype := '7';
3138      NulstilAutomatiskValg();
3139      InitIndleveringskode();
3140    end;
3141    
3142  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3143  begin  begin
3144    
3145    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3146    begin    begin
3147       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3148    end    end
3149    else    else
3150    begin    begin
3151       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3152    end;    end;
3153    
3154    
# Line 3810  end; Line 3171  end;
3171  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3172  begin  begin
3173        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3174        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3175        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3176        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3177        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3178        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3179        CheckBox1.Enabled := true;  
3180        chkAltidPrintLabel.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3181        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3182        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3183        chkAltidPrintLabel.Checked := false;        chkAltidPrintLabel.Checked := false;
3184        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3185        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3186        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3187        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3188        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3189        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3190        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3191        ListBox1.Visible := true;        ListBox1.Visible := true;
3192        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3193        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3194        InitLillePakke();        InitLillePakke();
3195        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3196    
3197          chkForstorTilDirekte.Checked := false;
3198          chkForstorTilDirekte.Enabled := false;
3199    
3200        if BladhusSted = 0 then        if BladhusSted = 0 then
3201        begin        begin
3202          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3208  procedure TMainForm.InitReturFraDao();
3208  begin  begin
3209        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3210        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3211        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3212        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3213        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3214        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3215        CheckBox1.Enabled := false;  
3216        chkAltidPrintLabel.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3217        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3218    
3219        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3220        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3221        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3222        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3223        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3224        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3225        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3226        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3227        ListBox1.Visible := true;        ListBox1.Visible := true;
3228        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3229        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3230        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3231    
3232          chkForstorTilDirekte.Checked := false;
3233          chkForstorTilDirekte.Enabled := false;
3234    
3235        InitLillePakke();        InitLillePakke();
3236  end;  end;
3237    
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3239  procedure TMainForm.InitReturFraKunde();
3239  begin  begin
3240        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3241        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3242        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3243        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3244        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3245        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3246        CheckBox1.Enabled := false;  
3247        chkAltidPrintLabel.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3248        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3249        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3250        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3251        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3252        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3253        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3254        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3255        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3256        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3257        ListBox1.Visible := true;        ListBox1.Visible := true;
3258        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3259        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3260        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3261    
3262          chkForstorTilDirekte.Checked := false;
3263          chkForstorTilDirekte.Enabled := false;
3264    
3265        InitLillePakke();        InitLillePakke();
3266  end;  end;
3267    
# Line 3896  procedure TMainForm.InitDirektelevering( Line 3269  procedure TMainForm.InitDirektelevering(
3269  begin  begin
3270        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3271        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3272        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3273        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3274        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3275        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3276        CheckBox1.Enabled := false;  
3277        chkAltidPrintLabel.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3278        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3279    
3280        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3281        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3282        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3283        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3284        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3285        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3286        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3287        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3288        ListBox1.Visible := true;        ListBox1.Visible := true;
3289        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3290        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3291        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3292        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3293        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3294        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3295        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3296    
3297          chkForstorTilDirekte.Checked := false;
3298          chkForstorTilDirekte.Enabled := true;
3299    
3300        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3301        begin        begin
3302            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3932  procedure TMainForm.InitPakkeshopleverin Line 3309  procedure TMainForm.InitPakkeshopleverin
3309  begin  begin
3310        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3311        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3312        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3313        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3314        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3315        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3316        CheckBox1.Enabled := false;  
3317        chkAltidPrintLabel.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3318        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3319    
3320        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3321        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3322        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3323        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3324        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3325        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3326        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3327        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3328        ListBox1.Visible := true;        ListBox1.Visible := true;
3329        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3330        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3331        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3332  // 20150330: start  
3333  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3334        EKLoverforsel.Enabled := true;  
3335  // 20150330: slut        chkForstorTilDirekte.Checked := false;
3336          chkForstorTilDirekte.Enabled := true;
3337    
3338        InitLillePakke();        InitLillePakke();
3339        IndlesScanningLogFil();        IndlesScanningLogFil();
3340        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3970  procedure TMainForm.InitReturFraPakkesho Line 3349  procedure TMainForm.InitReturFraPakkesho
3349  begin  begin
3350        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3351        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3352        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3353        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3354        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3355        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3356        CheckBox1.Enabled := false;  
3357        chkAltidPrintLabel.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3358        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3359    
3360        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3361        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3362        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3363        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3364        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3365        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3366        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3367        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3368        ListBox1.Visible := true;        ListBox1.Visible := true;
3369        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3370        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3371        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3372        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3373    
3374          chkForstorTilDirekte.Checked := false;
3375          chkForstorTilDirekte.Enabled := false;
3376    
3377    
3378        InitLillePakke();        InitLillePakke();
3379        IndlesScanningLogFil();        IndlesScanningLogFil();
3380        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4010  end; Line 3394  end;
3394    
3395  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3396  begin  begin
3397          menuIndlevering.Checked := true;
3398        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3399        Returpakkerfrapakkeshop1.Checked := true;  
3400        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3401        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3402        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3403        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3404        CheckBox1.Enabled := false;  
3405        chkAltidPrintLabel.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3406        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3407    
3408        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3409        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3410        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3411          chkSporgEfterKunde.Checked := false;
3412    
3413    
3414    
3415        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3416        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3417        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3418        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3419        ListBox1.Visible := true;        ListBox1.Visible := true;
3420        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3421        DownloadButton01.Enabled := false;  
3422        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3423        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3424          BtnEKLoverforsel.Enabled := false;
3425    
3426          chkForstorTilDirekte.Checked := false;
3427          chkForstorTilDirekte.Enabled := false;
3428    
3429    
3430        InitLillePakke();        InitLillePakke();
3431        IndlesScanningLogFil();        IndlesScanningLogFil();
3432        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4056  end; Line 3450  end;
3450    
3451  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3452  begin  begin
3453    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3454    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3455  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3456  end;  end;
3457    
3458  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3459  begin  begin
3460    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3461    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3462  // 20150310: start  // 20150310: start
3463  //  Stregkode := '';  //  Stregkode := '';
3464  // 20150310: slut  // 20150310: slut
3465  end;  end;
3466    
 /// <summary>  
 ///   This function reads the file resource of "FileName" and returns  
 ///   the version number as formatted text.</summary>  
 /// <example>  
 ///   Sto_GetFmtFileVersion() = '4.13.128.0'  
 ///   Sto_GetFmtFileVersion('', '%.2d-%.2d-%.2d') = '04-13-128'  
 /// </example>  
 /// <remarks>If "Fmt" is invalid, the function may raise an  
 ///   EConvertError exception.</remarks>  
 /// <param name="FileName">Full path to exe or dll. If an empty  
 ///   string is passed, the function uses the filename of the  
 ///   running exe or dll.</param>  
 /// <param name="Fmt">Format string, you can use at most four integer  
 ///   values.</param>  
 /// <returns>Formatted version number of file, '' if no version  
 ///   resource found.</returns>  
 function TMainForm.Sto_GetFmtFileVersion(const FileName: String = '';  
   const Fmt: String = '%d.%d.%d.%d'): String;  
 var  
   sFileName: String;  
   iBufferSize: DWORD;  
   iDummy: DWORD;  
   pBuffer: Pointer;  
   pFileInfo: Pointer;  
   iVer: array[1..4] of Word;  
   S : String;  
 begin  
   // set default value  
   Result := '';  
   // get filename of exe/dll if no filename is specified  
   sFileName := Trim(FileName);  
   if (sFileName = '') then  
     sFileName := GetModuleName(HInstance);  
   // get size of version info (0 if no version info exists)  
   iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy);  
   if (iBufferSize > 0) then  
   begin  
     GetMem(pBuffer, iBufferSize);  
     try  
     // get fixed file info (language independent)  
     GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer);  
     VerQueryValue(pBuffer, '\', pFileInfo, iDummy);  
     // read version blocks  
     iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     finally  
       FreeMem(pBuffer);  
     end;  
     // format result string  
     Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]);  
3467    
     // Hvorfor virker ovenstående ikke ???  
     S := '';  
     Str(iVer[1],Result);  
     S := S+Result+'.';  
     Str(iVer[2],Result);  
     S := S+Result+'.';  
     Str(iVer[3],Result);  
     S := S+Result+'.';  
     Str(iVer[4],Result);  
     S := S+Result+'';  
     Result := S;  
   end;  
 end;  
3468    
3469  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3470  begin  begin
# Line 4162  end; Line 3489  end;
3489    
3490  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3491  begin  begin
 // 20150317: start  
3492    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3493    begin    begin
3494       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4175  begin Line 3501  begin
3501       end;       end;
3502       exit;       exit;
3503    end;    end;
 // 20150317: slut  
3504    
3505    if Smpakker1.Checked then    if Smpakker1.Checked then
3506       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4184  begin Line 3509  begin
3509       end       end
3510       else       else
3511       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3512         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3513       end;       end;
3514    if Storepakker1.Checked then    if Storepakker1.Checked then
3515       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4196  begin Line 3518  begin
3518       end       end
3519       else       else
3520       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3521         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3522       end;       end;
3523  end;  end;
3524    
# Line 4216  begin; Line 3535  begin;
3535    CheckCode();    CheckCode();
3536  end;  end;
3537    
3538  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3539  var  var
3540    WebSvar : String;    WebSvar : String;
3541    URLStr : String;    URLStr : String;
# Line 4226  var Line 3545  var
3545    status, kommentar : String;    status, kommentar : String;
3546    
3547  begin  begin
3548      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3549    
3550      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');
3551      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3552      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3553      StedKode := Sted;      StedKode := Sted;
3554      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3555  // 20150330: start  
3556      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3557      begin      begin
3558        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3559      end;      end;
3560  // 20150330: slut  
3561    
3562      try      try
3563      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4289  begin Line 3608  begin
3608        end;        end;
3609      end;      end;
3610    
3611      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3612    
3613      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
3614    
# Line 4306  begin Line 3625  begin
3625           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3626         end;         end;
3627         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3628         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3629      end;      end;
3630    
3631  end;  end;
# Line 4330  begin Line 3649  begin
3649    else    else
3650      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3651  }  }
3652    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3653    
3654    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3655    CheckCode();    CheckCode();
# Line 4338  end; Line 3657  end;
3657    
3658  end;  end;
3659    
 function TMainForm.BarCodeValid (ACode: string): boolean;  
 var  
    I: integer;  
    SumOdd, SumEven: integer;  
    ADigit, AChecksumDigit: integer;  
 begin  
    SumOdd := 0;  
    SumEven := 0;  
    for I := 1 to (Length (ACode) - 1) do begin  
       ADigit := StrToIntDef (ACode [I], 0);  
       if (I MOD 2 = 0) then begin  
          SumEven := SumEven + ADigit;  
       end else begin  
          SumOdd := SumOdd + ADigit;  
       end; {if}  
    end; {for}  
    AChecksumDigit := StrToIntDef (ACode [Length (ACode)], 0);  
    Result := ((SumOdd*3 + SumEven + AChecksumDigit) MOD 10 = 0);  
 end; {--BarCodeValid--}  
   
 { used for EAN 8/13 }  
 function TMainForm.CheckSumModulo10(const data:string):string;  
         var i,fak,sum : Integer;  
 begin  
         sum := 0;  
         fak := Length(data);  
         for i:=1 to Length(data) do  
         begin  
                 if (fak mod 2) = 0 then  
                         sum := sum + (StrToInt(data[i])*1)  
                 else  
                         sum := sum + (StrToInt(data[i])*3);  
                 dec(fak);  
         end;  
         if (sum mod 10) = 0 then  
                 result := data+'0'  
         else  
                 result := data+IntToStr(10-(sum mod 10));  
 end;  
3660    
3661  //  //
3662  // Bladhus ***  // Bladhus ***
# Line 4854  begin Line 4134  begin
4134    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4135  end;  end;
4136    
4137  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4138  begin  begin
4139      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4140      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4141  end;  end;
4142    
4143  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4144  const  const
4145    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4146    
# Line 4869  begin Line 4149  begin
4149      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4150  end;  end;
4151    
4152  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4153  begin  begin
4154      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4155      begin      begin
# Line 4878  begin Line 4158  begin
4158      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4159  end;  end;
4160    
4161  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
 var  
   S2: string;  
 begin  
   Result  := 0;  
   S2 := S + Border;  
   repeat  
     SetLength(A, Length(A) + 1);  
     a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);  
     Delete(S2, 1,Length(a[Result] + Border));  
     Inc(Result);  
   until S2 = '';  
 end;  
4162    
4163  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4164  var  var
# Line 4902  var Line 4170  var
4170    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4171    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4172    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4173    pakketyper : TStrings;    //pakketyper : TStrings;
4174      pakketyper : TDictionary<String, Integer>;
4175      tmpAntal : Integer;
4176    
4177    
4178    
4179    antlin : Integer;    antlin : Integer;
4180  // 20150306: start  
4181    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4182  // 20150306: slut  
4183    XmlFelter : TStrings;    //XmlFelter : TStrings;
4184      XmlFelter : TDictionary<String, Integer>;
4185    
4186   begin   begin
4187      XmlFelter := TStringList.Create;  
4188      pakketyper := TStringList.Create;  
4189        XmlFelter := TDictionary<String, Integer>.Create;
4190        pakketyper := TDictionary<String, Integer>.Create;
4191    
4192      linienr := 0;      linienr := 0;
4193      ListBox2.Clear;      ListBox2.Clear;
4194      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 4926  var Line 4203  var
4203          StedKode := Sted;          StedKode := Sted;
4204        end;        end;
4205    
4206  // 20150310: start        Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4207  (*  
4208      if Returpakkerfrapakkeshop1.Checked then  
4209       begin  
4210        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);      if (Scanningtype = '7') then
      end  
     else if Pakkeshoplevering1.Checked then  
4211       begin       begin
4212        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4213       end       end
4214      else if Pakkernormal1.Checked then      else if (Scanningtype = '6') then
4215       begin       begin
4216        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
      end  
     else  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
4217       end       end
4218      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4219       begin       begin
4220        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4221       end       end
4222      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4223       begin       begin
# Line 4988  var Line 4254  var
4254      try      try
4255        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4256    
4257  // 20150206: start  
4258        antlin := 0;        antlin := 0;
4259        antlinIdag := 0;        antlinIdag := 0;
4260        antlinSenere := 0;        antlinSenere := 0;
4261  // 20150306: slut  
       antalFelterFundet := 0;  
4262        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4263            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4264            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4265              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4266              begin              begin
4267                 antlin := antlin + 1;                 Inc(antlin);
4268                 // 20150306: start                 // 20150306: start
4269                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4270                begin                begin
4271                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4272                   begin                   begin
4273                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4274                   end                   end
4275                   else                   else
4276                   begin                   begin
4277                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4278                   end;                   end;
4279                end;                end;
4280                 // 20150306: slut                 // 20150306: slut
4281              end;              end;
4282            end;            end;
4283            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4284                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4285                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4286                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4287                  end
4288                else                else
4289                  XmlFelter.values[Node.NodeName] := '1';                begin
4290                    XmlFelter.Add(Node.NodeName, 1);
4291                  end;
4292    
4293        end;        end;
4294        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
4295        antalFelterFundet := 0;        antalFelterFundet := 0;
4296        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4297        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4298  // 20150206: start  
4299  //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4300          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4301    
4302        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4303        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4304        begin        begin
4305          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4306        end;        end;
4307        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4308  // 20150306: slut  
4309        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4310    
4311    
4312        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4313            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4314            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5042  var Line 4316  var
4316                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4317                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4318                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4319              end;              end
4320              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4321                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4322                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4323                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4324              end;              end
4325              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4326                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4327                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4328                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4329              end;              end
4330              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4331                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4332                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4333                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4334              end;              end
4335              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4336                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4337                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4338                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4339                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4340                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4341                    pakketyper.TryGetValue(pakketype, tmpAntal);
4342                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4343                  end
4344                else                else
4345                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4346              end;              end
4347              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4348                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4349                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4350                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4351                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4352                  begin                  begin
4353  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4354                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4355                    begin                    begin
4356                      stregkoderMedTjekkodeArray[linienr] := 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
4357                    end                    end
4358                    else                    else
4359                    begin                    begin
4360                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4361                    end;                    end;
4362  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4363                  end;                  end;
4364              end;              end;
4365    
4366    
4367              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4368              begin              begin
4369                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 5102  var Line 4379  var
4379              end;              end;
4380            end;            end;
4381        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4382    
4383          // Free up the list object  
4384          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4385    
4386    
4387          for pakketype in pakketyper.Keys do
4388          begin
4389            pakketyper.TryGetValue(pakketype, tmpAntal);
4390            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4391          end;
4392    
4393            // Free up the dictionary object
4394        pakketyper.Free;        pakketyper.Free;
4395  // 20150306: start  
4396    
4397    
4398  //      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.');
4399        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4400        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5118  var Line 4403  var
4403        end;        end;
4404        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4405        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4406        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4407        begin        begin
4408          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5128  var Line 4411  var
4411        begin        begin
4412          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4413        end;        end;
 // 20150309: slut  
4414    
 // 20150310: start  
4415        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4416        begin        begin
4417          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5209  var Line 4490  var
4490            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4491          end;          end;
4492        end;        end;
 // 20150310: slut  
4493    
4494      except on e:exception do      except on e:exception do
4495        begin        begin
# Line 5271  end; Line 4551  end;
4551  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4552  var  var
4553     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4554     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4555     imorgenYmd : string;     imorgenYmd : string;
4556     logFilnavn : string;     logFilnavn : string;
4557      error : Integer;     //error : Integer;
4558    
4559  begin  begin
4560    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5368  begin Line 4646  begin
4646          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4647          S := buffer;          S := buffer;
4648          SetLength(A,0);          SetLength(A,0);
4649          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4650          if (length(A) < 2) then          if (length(A) < 2) then
4651          begin          begin
4652            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4653          end;          end;
4654            if (length(A) > 1) then            if (length(A) > 1) then
4655            begin            begin
# Line 5445  begin Line 4723  begin
4723          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4724          S := buffer;          S := buffer;
4725          SetLength(A,0);          SetLength(A,0);
4726          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4727          if (length(A) < 3) then          if (length(A) < 3) then
4728          begin          begin
4729            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4730          end;          end;
4731          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4732          begin          begin
# Line 5540  begin Line 4818  begin
4818    result := svar;    result := svar;
4819  end;  end;
4820    
4821    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4822    begin
4823      //ShowMessage('Ændring ikke tilladt');
4824      // Her skal komme en 'rød skærm' alarm
4825      PlaySound(PWideChar(AlarmLyd));
4826      MainForm.Color := clRed;
4827    
4828    
4829      RuteNummerST.Caption := '';
4830      BoghandlerNavnST.Caption := '';
4831      btnNulstil.Visible := true;
4832    
4833      if (strMessage <> '') then
4834      begin
4835        ListBox1.Items.Insert(0, strMessage);
4836        KommentarST.Caption := strMessage;
4837      end;
4838    
4839      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4840    
4841    end;
4842    
4843  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
4844  var  var
4845     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5597  begin Line 4897  begin
4897    result := svar;    result := svar;
4898  end;  end;
4899    
 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;  
4900    
4901  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4902  begin  begin
4903    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
4904    begin    begin
4905       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
4906    end    end
4907    else    else
4908    begin    begin
4909       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
4910    end;    end;
4911  end;  end;
4912    
4913  function TMainForm.AdobeReaderExists: Boolean;  
4914  var  
4915    AReg: TRegistry;  //Nedarvet fra IParentForm
4916    procedure TMainForm.LogMessage( msg : string);
4917  begin  begin
4918    result:= false;    ListBox1.Items.Insert(0, msg);
4919    AReg := TRegistry.Create;    SkrivScanningLogFil(msg);
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
4920  end;  end;
4921    
 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;  
 begin  
4922    
4923  // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1  //Nedarvet fra IParentForm
4924  //            'Test'  skal vise alarmlinie, samt opdatere listbox1  procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4925  //            'Timer' skal kun vise alarmlinie  begin
4926    
4927    if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then    PrinterstatusStaticText1.Caption := txt;
4928    begin    if (alert) then
     printerTxt := 'Der er fravalgt printer i dette program';  
     ListBox1.Items.Insert(0,printerTxt);  
     SkrivScanningLogFil(printerTxt);  
   end  
   else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
4929    begin    begin
4930      printerTxt := 'Der er ikke installeret en printer på denne PC';      PrinterstatusStaticText1.Font.Color := clBlack;
4931      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4932      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
4933    end    end
4934    else    else
4935    begin    begin
4936      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4937      try      PrinterstatusStaticText1.Color := clWhite;
4938        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;  
4939    end;    end;
4940  end;  end;
4941    
4942  function TMainForm.CheckUrl(url:string):boolean;  //Nedarvet fra IParentForm
4943  var  function TMainForm.GetFormObject() : TForm;
   hSession, hfile, hRequest: hInternet;  
   dwindex,dwcodelen :dword;  
   dwcode:array[1..20] of char;  
   res : pchar;  
 begin  
   if pos('http://',lowercase(url))=0 then  
     url := 'http://'+url;  
   Result := false;  
   hSession := InternetOpen('InetURL:/1.0',  
                             INTERNET_OPEN_TYPE_PRECONFIG,  
                             nil,  
                             nil,  
                             0);  
   if assigned(hsession) then  
   begin  
     hfile := InternetOpenUrl(hsession,  
                              pchar(url),  
                              nil,  
                              0,  
                              INTERNET_FLAG_RELOAD,  
                              0);  
     dwIndex := 0;  
     dwCodeLen := 10;  
     HttpQueryInfo(hfile,  
                   HTTP_QUERY_STATUS_CODE,  
                   @dwcode,  
                   dwcodeLen,  
                   dwIndex);  
     res := pchar(@dwcode);  
     result:= (res ='200') or (res ='302');  
     if assigned(hfile) then  
       InternetCloseHandle(hfile);  
     InternetCloseHandle(hsession);  
   end;  
   
 end;  
   
 // 20150310: start  
 procedure TMainForm.RoundCornerOf(Control: TWinControl);  
 var  
    R: TRect;  
    Rgn: HRGN;  
4944  begin  begin
4945     with Control do    Result := self;
    begin  
      R := ClientRect;  
 //     rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20) ;  
      rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 25, 25) ;  
 //     rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 30, 30) ;  
      Perform(EM_GETRECT, 0, lParam(@r)) ;  
      InflateRect(r, - 4, - 4) ;  
      Perform(EM_SETRECTNP, 0, lParam(@r)) ;  
      SetWindowRgn(Handle, rgn, True) ;  
      Invalidate;  
    end;  
4946  end;  end;
 // 20150310: slut  
4947    
4948  end.  end.
4949    

Legend:
Removed from v.2652  
changed lines
  Added in v.3036

  ViewVC Help
Powered by ViewVC 1.1.20