/[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 2650 by torben, Thu Aug 20 20:58:26 2015 UTC revision 2800 by torben, Wed Jan 6 12:53:51 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      CheckBox2: 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 154  type Line 165  type
165    procedure InitIndleveringskode();    procedure InitIndleveringskode();
166    
167    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
168    procedure CheckBox2Click(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    
250            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      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    
264    public    public
265      { Public declarations }      { Public declarations }
266    end;    end;
267    
268    
269  var  var
270    MainForm: TMainForm;    MainForm: TMainForm;
271    
# Line 273  var Line 279  var
279  implementation  implementation
280  {$R *.dfm}  {$R *.dfm}
281    
282  function TMainForm.TColorToHex(Color : TColor) : string;  
283  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;  
284    
285  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
286  begin  begin
287    
 // 20150309: startr  
288      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
289  // 20150309: slut  
290    
291      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
292      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 340  begin Line 330  begin
330        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
331      end;      end;
332    
333      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
334    
335      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
336      begin      begin
# Line 368  begin Line 358  begin
358        else if (Sted = 'BR') then        else if (Sted = 'BR') then
359          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
360        else if (Sted = 'BK') then        else if (Sted = 'BK') then
361          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
362          else if (Sted = 'TK') then
363            begin StedNavn := 'BK/Trykkompagniet: '; end
364        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
365          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK Køge: '; end
366        else if (Sted = '1') then        else if (Sted = '1') then
# Line 394  begin Line 386  begin
386    
387      StartScreen();      StartScreen();
388      MainForm.Caption := Titel;      MainForm.Caption := Titel;
389      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
390      MainForm.Farve := Farve;      MainForm.Farve := Farve;
391      MainForm.Titel := Titel;      MainForm.Titel := Titel;
392      MainForm.Url := Url;      MainForm.Url := Url;
# Line 409  begin Line 401  begin
401      else      else
402        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
403    
404      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
405      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
406      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
407    
408      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
409      begin      begin
410        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
411        begin        begin
412          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
413          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
414          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
415        end        end
416        else        else
417        begin        begin
418          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
419          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
420          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
421        end;        end;
422      end;      end;
423    
424      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
425      begin      begin
426        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
427        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
428      end;      end;
429    
# Line 454  begin Line 446  begin
446          end          end
447          else          else
448          begin          begin
449            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
450          end;          end;
451          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
452        end        end
453        else        else
454        begin        begin
455          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
456          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
457        end;        end;
458      end;      end;
459    
460    
461  end;  end;
462    
463  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 472  begin Line 465  begin
465    
466    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
467    begin    begin
468       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
469    end    end
470    else    else
471    begin    begin
472       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
473    end;    end;
474    
475  end;  end;
# Line 490  procedure TMainForm.Automatisktjekkodest Line 483  procedure TMainForm.Automatisktjekkodest
483  begin  begin
484    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
485    begin    begin
486       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
487       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
488    end    end
489    else    else
490    begin    begin
491       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
492       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
493    end;    end;
494    
# Line 503  end; Line 496  end;
496    
497  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
498  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;  
 *)  
499  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
500  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
501       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
502       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
503       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
504  end;  end;
505    
506    
507    //InitForm kaldes før FormCreate
508  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
509  const  const
510    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
511  var  var
   printerInd : integer;  
   i : Integer;  
 // 20150310: start  
512    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
513    
514  begin  begin
515    
516    
517    // Initierer nogle variabler    // Initierer nogle variabler
518    BladhusSted := 00;    BladhusSted := 00;
519    Application.ShowHint := True;    Application.ShowHint := True;
520    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
521    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
522  // 20150306: start  
523    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
524  // 20150306: slut  
525  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
526    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
527    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
528    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
529    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
530    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
531    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
532    
533    // 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
534    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 565  begin Line 541  begin
541    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
542    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 750;
543    
544      Config := TConfiguration.Create();
545      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
546      Config.Sted := Sted;
547    
548    // Læser parametre fra ini filen    // Læser parametre fra ini filen
549    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
550    try    try
551    
552    
553      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
554      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
555      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
# Line 579  begin Line 561  begin
561      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');
562      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');
563      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');
564  // 20150330: start  
565      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');
566  // 20150330: slut  
567      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');
568      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');
569      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');
570      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');
571      LabelType := ReadInteger('Settings','LabelType',1);  
572    
573        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
574        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
575        URLOmdirigerTilPakkeshop := ReadString('Settings', 'URLOmdirigerTilPakkeshop','http://omdeling.info/webservices/pakkeshop/PakkeKontrolOmdirigerTilPakkeshop.php?sted=%s&stregkode=%s');
576    
577    
578    
579    
580      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
581      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
582      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');
# Line 597  begin Line 587  begin
587      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
588      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
589      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
590    
591      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
592      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
593    
594        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
595        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
596    
597    
598      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
599      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
600      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 604  begin
604      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
605      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
606      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
607  // 20150317: start  
608      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
609  // 20150317: slut  
610      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
611      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
612      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
613    
614      if (SkrivLog = '1') then      if (SkrivLog = '1') then
615      begin      begin
616        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);
617        try        try
618          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
619          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
620          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
621          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
622          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
623          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 639  begin Line 635  begin
635        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
636      end;      end;
637    
638      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;  
639    
640      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
641      begin      begin
642        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
643        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
644      end      end
645      else      else
646      begin      begin
647        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
648        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
649      end;      end;
650    
651      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
652      begin      begin
653        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
654        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
655      end      end
656      else      else
657      begin      begin
658        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
659        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
660      end;      end;
661    
662      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
663      begin      begin
664        Automatisktjekkodestyring1.Checked := true;        Automatisktjekkodestyring1.Checked := true;
665        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
666        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
667      end;      end;
668    
# Line 760  begin Line 688  begin
688      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
689      // *************************** //      // *************************** //
690    
691    {$IfDef STED_BK}
692        SpecialVersionSted := 'BK';
693    {$EndIf}
694    {$IfDef STED_TK}
695        SpecialVersionSted := 'TK';// BK-Trykkompagniet
696    {$EndIf}
697    {$IfDef STED_DBK}
698        SpecialVersionSted := 'DBK';
699    {$EndIf}
700    {$IfDef STED_FD}
701        SpecialVersionSted := 'FD';
702    {$EndIf}
703    {$IfDef STED_NS}
704        SpecialVersionSted := 'NS';
705    {$EndIf}
706    
707    
708      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
709      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
710      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 720  begin
720      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
721      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
722    
 // 20150313: start  
723      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
724      begin      begin
725         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 786  begin Line 730  begin
730         SpecialVersionSted := '03';         SpecialVersionSted := '03';
731         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
732      end;      end;
 // 20150313: slut  
733    
734      if SpecialVersionSted = 'BK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
735      begin      begin
736        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
737        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
# Line 797  begin Line 740  begin
740        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
741        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
742        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
743        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
744        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
745    
746       // her skal vi også disable de menupunkter BK ikke kan bruge       // her skal vi også disable de menupunkter BK ikke kan bruge
747        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
748        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
749        Returpakkerfrapakkeshop1.Enabled := false;  
750          //Returpakkerfrapakkeshop1.Enabled := false;
751    
752        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
753        begin        begin
754           Scanningtype := '1';           Scanningtype := '1';
# Line 826  begin Line 772  begin
772        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
773        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
774        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
775          PanelValg7.Enabled := false;
776          PanelValg7.Font.Color := clInactiveCaption;
777    
778       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
779        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
780        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
781  // 20150317: start  
782        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
783        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
784  // 20150317: slut  
785        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
786        begin        begin
787           Scanningtype := '1';           Scanningtype := '1';
# Line 862  begin Line 811  begin
811        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
812        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
813        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
814          PanelValg7.Enabled := false;
815          PanelValg7.Font.Color := clInactiveCaption;
816       // 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
817  // 20150317: start  
818        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
819  // 20150317: slut  
820        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
821        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
822        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 957  begin Line 908  begin
908             RutenummerST.Caption := '';             RutenummerST.Caption := '';
909             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
910             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
911             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
912             exit;             exit;
913          end;          end;
914      end      end
# Line 1000  begin Line 951  begin
951      if Pakketype = '1' then      if Pakketype = '1' then
952      begin      begin
953        Storepakker1.Checked := true;        Storepakker1.Checked := true;
954        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
955      end      end
956      else      else
957      begin      begin
958        Smpakker1.Checked := true;        Smpakker1.Checked := true;
959        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
960      end;      end;
961    
962      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 996  begin
996        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
997      end;      end;
998    
999  // 20150317: start  
1000      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
1001      begin      begin
1002        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
1003      end;      end;
 // 20150317: slut  
1004    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
1005    
1006      CheckPrintQue('Opstart');  
1007    
1008        LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
1009        LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
1010    
1011    finally    finally
1012      Free;      Free;
# Line 1083  begin Line 1030  begin
1030          InitBladhus();          InitBladhus();
1031        end;        end;
1032    
1033  // 20150310: start  
1034      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1035      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1036    
# Line 1124  begin Line 1071  begin
1071      end;      end;
1072    
1073      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1074    
1075      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1076      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1077    
1078  end;  end;
1079    
# Line 1145  var Line 1091  var
1091    BoghandlerNavn : String;    BoghandlerNavn : String;
1092    Koreliste : String;    Koreliste : String;
1093    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1094    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1095    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1096    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1115  begin
1115      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1116      numberString := ClipboardData;      numberString := ClipboardData;
1117      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1118  // 20150311: start  
1119  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1120      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1121      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1122      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1185  begin Line 1130  begin
1130      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1131      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1132      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1133        or (NumberString = 'DAO PAKKESHOP')
1134        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1135            or (LowerCase(NumberString) = 'for stor daodirekte' )
1136      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1137  // 20150311: slut  
1138      begin      begin
1139        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1140        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1195  begin Line 1143  begin
1143      begin      begin
1144        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1145      end;      end;
1146    end;    end;  // Slut ctrl-v
1147    
1148    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1149    begin    begin
 // 20150306: start  
1150      if (Length(Trim(Stregkode)) = 0) then      if (Length(Trim(Stregkode)) = 0) then
1151      begin      begin
1152        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1153        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;  
1154        exit;        exit;
1155      end;      end;
 // 20150306: slut  
1156    
 // 20150311: start  
1157      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1158      begin      begin
1159         PakkeshopNulstil.Click();         btnNulstil.Click();
1160         exit;         exit;
1161      end;      end;
1162    
1163      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1164      begin      begin
1165         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1166  // 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  
1167         exit;         exit;
1168      end;      end;
1169    
1170      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1171      begin      begin
1172         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1173         begin         begin
1174            InitLillePakke();            InitLillePakke();
1175         end         end
1176         else         else
1177         begin         begin
1178          //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;  
1179         end;         end;
1180         Stregkode := '';         Stregkode := '';
1181         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1184  begin
1184    
1185      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1186      begin      begin
1187         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1188         begin         begin
1189            InitStorPakke();            InitStorPakke();
1190         end         end
1191         else         else
1192         begin         begin
1193          //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;  
1194         end;         end;
1195         Stregkode := '';         Stregkode := '';
1196         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1197         exit;         exit;
1198      end;      end;
1199    
1200        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1201        begin
1202          if chkForstorTilDirekte.Enabled then
1203          begin
1204            chkForstorTilDirekte.Checked := true;
1205          end
1206          else
1207          begin
1208             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1209          end;
1210          Stregkode := '';
1211          StregkodeST.Caption := StregKode;
1212          exit;
1213        end;
1214    
1215    
1216      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1217      begin      begin
1218         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1219         begin         begin
1220           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1221           begin           begin
1222            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1223           end           end
1224           else           else
1225           begin           begin
1226            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1227           end;           end;
1228         end         end
1229         else         else
1230         begin         begin
1231          //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;  
1232         end;         end;
1233         Stregkode := '';         Stregkode := '';
1234         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1237  begin
1237    
1238      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
1239      begin      begin
1240        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1241        begin        begin
1242           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1243           begin           begin
1244            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1245           end           end
1246           else           else
1247           begin           begin
1248            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1249           end;           end;
1250        end        end
1251        else        else
1252        begin        begin
1253          //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;  
1254        end;        end;
1255        Stregkode := '';        Stregkode := '';
1256        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1265  begin
1265         end         end
1266         else         else
1267         begin         begin
1268          //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;  
1269         end;         end;
1270         Stregkode := '';         Stregkode := '';
1271         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1272         exit;         exit;
1273      end;      end;
1274    
1275  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1276      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  
1277      begin      begin
1278         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1279         begin         begin
# Line 1395  begin Line 1281  begin
1281         end         end
1282         else         else
1283         begin         begin
1284          //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;  
1285         end;         end;
1286         Stregkode := '';         Stregkode := '';
1287         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1296  begin
1296         end         end
1297         else         else
1298         begin         begin
1299          //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;  
1300         end;         end;
1301         Stregkode := '';         Stregkode := '';
1302         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1311  begin
1311         end         end
1312         else         else
1313         begin         begin
1314          //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;  
1315         end;         end;
1316         Stregkode := '';         Stregkode := '';
1317         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1326  begin
1326         end         end
1327         else         else
1328         begin         begin
1329          //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;  
1330         end;         end;
1331         Stregkode := '';         Stregkode := '';
1332         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1341  begin
1341         end         end
1342         else         else
1343         begin         begin
1344          //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;  
1345         end;         end;
1346         Stregkode := '';         Stregkode := '';
1347         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1356  begin
1356         end         end
1357         else         else
1358         begin         begin
1359          //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;  
1360         end;         end;
1361         Stregkode := '';         Stregkode := '';
1362         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1363         exit;         exit;
1364      end;      end;
1365  // 20150311: slut  
1366    
1367      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1368      begin      begin
# Line 1590  begin Line 1410  begin
1410        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1411      end;      end;
1412    
1413      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1414          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1415          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1416          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1417          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1418          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1419      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1420         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1421         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  
1422         exit;         exit;
1423      end;      end;
1424    
1425      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (Automatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1426      begin      begin
1427        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1428        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1626  begin Line 1434  begin
1434              end;              end;
1435            end            end
1436        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1437  (*  
       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  
 *)  
1438        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1439            begin            begin
1440              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1661  begin Line 1452  begin
1452              end;              end;
1453            end            end
1454        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1455  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1456        else        else
1457            begin   // Her skal komme en alarm og rød skærm            begin
1458               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1459               List1msg := 'Pakken kan ikke scannes med automatisk valg';              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1460               ListBox1.Items.Insert(0,List1Msg);               VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1461               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  
1462               exit;               exit;
1463            end;            end;
1464        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1465      end      end
1466      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1467      begin      begin
1468        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1469        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  
1470        exit;        exit;
1471      end;      end;
1472    
# Line 1714  begin Line 1474  begin
1474      begin      begin
1475        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1476        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;  
1477    
1478      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;  
1479    
1480      if StregKode = 'Lille pakke' then          exit;
1481      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;  
1482      end;      end;
1483    
     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  
1484    
1485    
1486      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1487      begin      begin
1488        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1489        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1490        begin        begin
1491          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1492          begin          begin
1493              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1494              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1495          end;          end;
1496        end;        end;
# Line 1812  begin Line 1502  begin
1502             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1503             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1504             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1505             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1506             Stregkode := '';             Stregkode := '';
1507             InitScreen();             InitScreen();
1508        end        end
# Line 1824  begin Line 1514  begin
1514             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1515             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1516             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1517             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1518             Stregkode := '';             Stregkode := '';
1519             InitScreen();             InitScreen();
1520        end        end
# Line 1836  begin Line 1526  begin
1526              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1527              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1528              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1529  // 20150317: start  
1530              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1531  // 20150317: slut  
1532             end             end
1533            else            else
1534             begin             begin
1535                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;  
1536             end;             end;
1537            Stregkode := '';            Stregkode := '';
1538            InitScreen();            InitScreen();
# Line 1861  begin Line 1545  begin
1545             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1546             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1547             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1548                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1549             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1550                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1551             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1552           end           end
1553          else          else
1554           begin           begin
1555                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1556                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1557                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1558                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1559                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  
1560                StregKode := '';                StregKode := '';
1561                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1562  // 20150323: slut  
1563                exit;                exit;
1564           end;           end;
1565          Stregkode := '';          Stregkode := '';
# Line 1891  begin Line 1568  begin
1568    
1569      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
1570      begin      begin
1571    
1572         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1573            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1574         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 1581  begin
1581            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1582            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1583            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1584               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1585               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1586              exit;              exit;
1587            end;            end;
1588            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1928  begin Line 1602  begin
1602              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1603              begin              begin
1604                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1605                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1606                MainForm.Color := clRed;                MainForm.Color := clRed;
1607              end;              end;
1608           end;           end;
1609            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
1610            begin            begin
1611              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1612              if Storepakker1.Checked then              if Storepakker1.Checked then
1613              begin              begin
1614                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1943  begin Line 1617  begin
1617              begin              begin
1618                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1619              end;              end;
1620              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1621            end            end
1622            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1623            begin            begin
1624              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1625              if Storepakker1.Checked then              if Storepakker1.Checked then
1626              begin              begin
1627                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1956  begin Line 1630  begin
1630              begin              begin
1631                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1632              end;              end;
1633              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1634            end            end
1635            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1636            begin            begin
1637              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;  
1638            end            end
1639            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1640            begin            begin
1641            end            end
1642            else            else
1643            begin            begin
1644              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1645            end;            end;
1646           if not PakkeshopNulstil.Visible then  
1647             if not btnNulstil.Visible then
1648            begin            begin
1649  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1650              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1651              begin              begin
1652                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1660  begin
1660                InitLillePakke();                InitLillePakke();
1661              end;              end;
1662            end;            end;
1663  // 20150310: start  
1664            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1665  // 20150310: slut  
1666            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1667            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1668            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1693  begin
1693    
1694    Key := #0;    Key := #0;
1695    
1696  end;  
1697    
1698    
1699    
1700    
1701    end; //End of OnKeyPress
1702    
1703    
1704    
1705  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1706  const  const
# Line 2063  end; Line 1737  end;
1737    
1738  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1739  var  var
 // 20150309: start  
 //  i:integer;  
1740    i : Integer;    i : Integer;
1741    wrkAntal : String;    wrkAntal : String;
1742    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1743  // 20150309: slut  
1744    
1745  begin  begin
1746      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
1747      begin      begin
1748        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1749          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1750          begin          begin
1751  // 20150309: start  
1752            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1753            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1754            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1755            begin            begin
1756              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1757              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1758  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1759  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1760  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1761              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1762            end            end
1763            else     // kun idag            else     // kun idag
1764            begin            begin
# Line 2112  begin Line 1784  begin
1784            begin            begin
1785              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1786            end;            end;
 // 20150309: slut  
1787    
 // 20150310: start  
1788            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1789            begin            begin
1790              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2192  begin Line 1862  begin
1862                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1863              end;              end;
1864            end;            end;
1865  // 20150310: slut  
1866            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1867          end;          end;
1868      end;      end;
# Line 2219  begin Line 1889  begin
1889  end;  end;
1890    
1891  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1892    
1893  begin  begin
1894    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2230  begin Line 1898  begin
1898    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1899    ListBox1.Visible := true;    ListBox1.Visible := true;
1900  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1901  // 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  
1902    if Budlevering1.Checked then    if Budlevering1.Checked then
1903    begin    begin
1904      IndlesScanningLogFil();      IndlesScanningLogFil();
# Line 2283  begin Line 1911  begin
1911      01 :      01 :
1912            begin;      // NS            begin;      // NS
1913              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1914              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1915              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1916              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1917              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1918              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2297  begin Line 1925  begin
1925              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1926              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1927              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1928              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1929              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1930              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1931              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1932              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1933              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1934              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 1938  begin
1938              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1939             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
1940              begin              begin
1941                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1942              end              end
1943              else              else
1944              begin              begin
1945                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1946              end;              end;
1947              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1948              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1949              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1950              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1951              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2335  begin Line 1963  begin
1963              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1964              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1965              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1966              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1967              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1968              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
1969              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1970              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1971              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1972            end;            end;
# Line 2354  var Line 1982  var
1982    URLStr : String;    URLStr : String;
1983    pakkestorrelse : String;    pakkestorrelse : String;
1984    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
1985    
1986      PakkeshopLabel: TPakkeshopLabel;
1987  begin  begin
1988    if RadioButton1.Checked then    if radioStorPakke.Checked then
1989    begin    begin
1990      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
1991    end;    end;
1992    if RadioButton2.Checked then    if radioLillePakke.Checked then
1993    begin    begin
1994      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
1995    end;    end;
1996    
1997    
1998    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
1999    begin    begin
2000       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 2023  begin
2023    begin    begin
2024       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2025    end    end
2026      else if menuIndlevering.Checked then
2027      begin
2028        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2029      end
2030    else    else
2031    begin    begin
2032      exit;      exit;
2033    end;    end;
2034    
2035      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2036      begin
2037        URLStr := Format(URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2038      end;
2039    
2040    try    try
2041      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2042      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2416  begin Line 2058  begin
2058          end;          end;
2059      end;      end;
2060    end;    end;
2061    
2062    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2063    try    try
2064      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then
# Line 2425  begin Line 2068  begin
2068        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2069        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2070        PrintNyLabel := False;        PrintNyLabel := False;
2071  // 20150310: start  
2072        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2073        begin        begin
 // 20150310: slut  
2074          try          try
2075            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2076          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2080  begin
2080          begin          begin
2081            PrintNyLabel := True;            PrintNyLabel := True;
2082          end;          end;
 // 20150310: start  
2083        end;        end;
 // 20150310: slut  
2084       end       end
2085        else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2086        begin
2087    
2088    
2089    
2090    
2091         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2092         if (Kommentar = 'Ok') then
2093         begin
2094           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2095           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2096           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2097           Stregkode := PakkeshopLabel.Stregkode;
2098    
2099           LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2100           chkForstorTilDirekte.Checked := false;
2101    
2102         end;
2103    
2104    
2105        end
2106      else      else
2107       begin       begin
2108        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2135  begin
2135          PrintNyLabel := True;          PrintNyLabel := True;
2136        end;        end;
2137      end;      end;
2138    
2139    
2140      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2141      begin      begin
2142        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2177  begin
2177    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2178      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2179    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2180    if RadioButton1.Checked then    if radioStorPakke.Checked then
2181    begin    begin
2182      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2183    end;    end;
2184    if RadioButton2.Checked then    if radioLillePakke.Checked then
2185    begin    begin
2186      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2187    end;    end;
# Line 2540  begin Line 2203  begin
2203    if Budlevering1.Checked then    if Budlevering1.Checked then
2204    begin    begin
2205       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2206        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2207        begin        begin
2208          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2209        end;        end;
2210        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2211        begin        begin
2212          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2213        end;        end;
# Line 2566  begin Line 2229  begin
2229        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2230      end;      end;
2231    end;    end;
2232      if menuIndlevering.Checked then
2233      begin
2234        List1Msg := Stregkode;
2235      end;
2236    
2237    
2238    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2239    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2240    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2241  end;  end;
2242    
2243  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2244  begin  begin
2245    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2246    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2588  pakkeForkertSted : Integer; Line 2257  pakkeForkertSted : Integer;
2257    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2258  begin  begin
2259    if Budlevering1.Checked then    if Budlevering1.Checked then
2260       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2261    
2262    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2263    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2270  begin
2270    end;    end;
2271    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2272    
2273  // 20150306: start  
2274  //  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
2275    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  
2276    begin    begin
2277        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2278        begin        begin
# Line 2631  begin Line 2299  begin
2299       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2300       begin       begin
2301          PrintNyLabel := false;          PrintNyLabel := false;
2302  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2303          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2304          MainForm.Color := clRed;          MainForm.Color := clRed;
2305          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2306  // 20150306: slut  
2307       end       end
2308       else       else
2309       begin       begin
# Line 2646  begin Line 2313  begin
2313            PrintNyLabel := true;            PrintNyLabel := true;
2314            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2315            nyFarve := Farve;            nyFarve := Farve;
2316            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2317            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2318            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2319            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2320            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2321            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2322  // 20150213: start  
2323            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2324            begin            begin
2325               PrintNyLabel := false;               PrintNyLabel := false;
2326            end;            end;
2327  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2328            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
2329            begin            begin
2330              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2331              MainForm.Color := clRed;              MainForm.Color := clRed;
2332              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2333            end;            end;
2334  // 20150306: slut  
2335         end;         end;
2336         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2337         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2350  begin
2350            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2351            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2352            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2353  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2354            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
2355            begin            begin
2356              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2357              MainForm.Color := clRed;              MainForm.Color := clRed;
2358              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2359            end;            end;
2360  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2361         end;         end;
2362       end;       end;
2363    
# Line 2715  begin Line 2375  begin
2375               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2376  // 20150304: slut  // 20150304: slut
2377                begin                begin
2378                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2379                end;                end;
2380              end;              end;
2381        01 :  begin;        01 :  begin;
2382               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2383                    // 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
2384                    // 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')
2385                begin                begin
2386                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2387                end;                end;
2388              end;              end;
2389        02 :  begin;        02 :  begin;
2390                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
2391                begin                begin
2392                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2393                end;                end;
2394              end;              end;
2395        03 :  begin;        03 :  begin;
2396               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2397                    // 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
2398                    // 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')
2399               begin               begin
2400                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2401               end;               end;
2402              end;              end;
2403        04 :  begin;        04 :  begin;
2404                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
2405                begin                begin
2406                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2407                end;                end;
2408              end;              end;
2409        else        else
# Line 2757  begin Line 2417  begin
2417      exit;      exit;
2418    end;    end;
2419    
2420    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
2421    begin    begin
2422    end    end
2423    else    else
2424    begin    begin
2425      if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or CheckBox2.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then      if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then
2426      begin      begin
2427        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2428        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2429        begin        begin
2430          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2431        end        end
# Line 2779  begin Line 2439  begin
2439        end;        end;
2440        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2441        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2442        with Printer do  
2443        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2444          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;  
2445      end;      end;
2446    end;    end;
2447    
2448  end;  end;
2449    
 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;  
2450    
2451    
2452  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2453  begin  begin
2454      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2455      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2456  end;  end;
2457    
2458  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2459  begin  begin
2460      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2461      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2462  end;  end;
2463    
2464    
2465  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2466  begin  begin
2467    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2468    begin    begin
2469       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2470    end    end
# Line 2875  begin Line 2475  begin
2475  end;  end;
2476    
2477    
2478  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2479  begin  begin
2480    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2481    begin    begin
2482       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2483    end    end
# Line 2888  begin Line 2488  begin
2488    
2489  end;  end;
2490    
2491  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2492  begin  begin
2493    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2494    begin    begin
2495       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2496    end    end
# Line 2912  begin Line 2512  begin
2512      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2513      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2514      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2515  // 20150317: start  
2516      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2517      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2518      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2519      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2520      begin      begin
2521        // 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)
2522        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 2936  begin Line 2536  begin
2536    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2537    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...');
2538    
2539          // Tjekker urls    try
2540          logTekst := 'Tjekker urls.';      // Tjekker urls
2541          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2542          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2543        SkrivScanningLogFil(logTekst);
2544    
         // 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;  
2545    
         // 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;  
2546    
2547          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2548          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2549          begin      begin
2550            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2551            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;  
2552    
2553          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2554          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2555          begin      begin
2556            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2557            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;  
2558    
2559          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2560          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2561          begin      begin
2562            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2563            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;  
2564    
2565          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2566          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2567          begin      begin
2568            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2569            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;  
2570    
2571          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2572          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2573          or (PanelValg4.Enabled = true) then      begin
2574          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2575            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;  
2576    
2577          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2578          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2579          begin      begin
2580            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2581            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;  
2582    
2583          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2584          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2585          begin      begin
2586            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2587            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;  
2588    
2589          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2590          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2591          begin      begin
2592            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2593            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;  
2594    
2595  // 20150330: start      // Tjekker UrlPakkeshopManglendeReturScanninger
2596          // Tjekker UrlEKLoverforselPakkeshop      if PanelValg6.Enabled = true then
2597          if PanelValg5.Enabled = true then      begin
2598          begin        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2599            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  
2600    
2601          // Tjekker UrlFindPakketype     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2602          if CheckUrl(UrlFindPakketype) then      if PanelValg7.Enabled = true then
2603          begin      begin
2604            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2605            SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2606          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;  
2607    
2608          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforsel
2609          if CheckUrl(UrlSendPrograminfo) then      if PanelValg1.Enabled = true then
2610          begin      begin
2611            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2612            SkrivScanningLogFil(logTekst);      end;
2613          end  
2614          else  
2615          begin      // Tjekker UrlEKLoverforselPakkeshop
2616              inc(urlFejl);   // Optæller antal fejl      if PanelValg5.Enabled = true then
2617              logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;      begin
2618              ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2619              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;  
2620    
         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;  
2621    
2622        // Tjekker UrlFindPakketype
2623        TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2624    
2625        // Tjekker UrlSendPrograminfo
2626        TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2627    
2628    
2629    
2630        logTekst := 'urls er ok';
2631        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2632        SkrivScanningLogFil(logTekst);
2633    
2634      Except
2635        TjekUrls := '-';   // markerer at der var fejl
2636    
2637      end;
2638  end;  end;
2639    
2640  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2641  var  const
2642     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2643  begin  begin
2644     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2645     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2646     Result := SystemTimeToDateTime(SystemTime) ;    begin
2647        logTekst := UrlNavn + ' accepteret: ' + Url;
2648        SkrivScanningLogFil(logTekst);
2649      end
2650      else
2651      begin
2652        inc(urlFejl);   // Optæller antal fejl
2653        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2654        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2655        if TjekUrls = '1' then
2656        begin
2657          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2658        end;
2659    
2660        SkrivScanningLogFil(logTekst);
2661    
2662        if TjekUrls = '1' then
2663        begin
2664          ShowMessage(logTekst);
2665          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2666          Application.Terminate;
2667    
2668          raise Exception.Create('UrlFejl');
2669    
2670        end;
2671      end;
2672    
2673  end;  end;
2674    
2675    
2676    
2677  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2678  var  var
2679    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 2690  begin
2690      repeat      repeat
2691        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2692        begin        begin
2693    
2694          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2695          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2696          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2697          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2698          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2699          // (æ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 2730  begin
2730    end;    end;
2731  end;  end;
2732    
2733  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2734  begin  begin
2735    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2736    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2737    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2738    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2739    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2740    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 2752  begin
2752  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2753    if Farve <> '' then    if Farve <> '' then
2754    begin    begin
2755       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  
2756    end;    end;
2757    if (Budlevering1.Checked) then    if (Budlevering1.Checked) then
2758    begin    begin
# Line 3477  end; Line 2816  end;
2816    
2817  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2818  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;  
 *)  
2819  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2820  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2821       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
2822       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2823       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2824  // 20150311: slut  
2825    
2826    
2827  end;  end;
2828    
2829  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3514  var Line 2840  var
2840    BoghandlerNavn : String;    BoghandlerNavn : String;
2841    Koreliste : String;    Koreliste : String;
2842    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2843    SmsKode : String;    SmsKode : String;
2844    DBKbane : String;    DBKbane : String;
2845    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 2861  begin
2861      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2862      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2863      MainForm.Color := clRed;      MainForm.Color := clRed;
2864      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2865    end    end
2866    else    else
2867    begin    begin
2868      Falsk := False;      Falsk := False;
2869      Sand := True;  
2870      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2871      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2872      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 2886  var
2886    BoghandlerNavn : String;    BoghandlerNavn : String;
2887    Koreliste : String;    Koreliste : String;
2888    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2889    SmsKode : String;    SmsKode : String;
2890    DBKbane : String;    DBKbane : String;
2891    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 2894  begin
2894    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2895    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2896    Falsk := False;    Falsk := False;
   Sand := True;  
2897    
2898    if (Printer.Printers.Count = 0) then  
2899      if (LabelPrint.GetPrinterCount() = 0) then
2900    begin    begin
2901      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2902    end    end
# Line 3587  begin Line 2911  begin
2911      DBKbane := '999';      DBKbane := '999';
2912      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2913      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2914      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2915    end;    end;
2916    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2917  end;  end;
# Line 3596  procedure TMainForm.Timer1Timer(Sender: Line 2920  procedure TMainForm.Timer1Timer(Sender:
2920  begin  begin
2921    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
2922    begin    begin
2923      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2924    end    end
2925    else    else
2926    begin    begin
# Line 3605  begin Line 2929  begin
2929    end;    end;
2930  end;  end;
2931    
2932  {  
  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;  
2933    
2934  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
2935  const  const
# Line 3643  var Line 2938  var
2938   tekst, filversion : String;   tekst, filversion : String;
2939  begin  begin
2940    
2941    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
2942    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';
2943    
2944    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 2960  begin
2960          end          end
2961          else          else
2962          begin          begin
2963            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
2964          end;          end;
2965      end      end
2966      else      else
2967      begin      begin
2968        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
2969      end;      end;
2970    end;    end;
2971    
# Line 3738  begin Line 3033  begin
3033    
3034    if FileExists(fileName) then    if FileExists(fileName) then
3035    begin    begin
3036      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3037      begin      begin
3038        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3039        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3057  begin
3057    
3058    if FileExists(fileName) then    if FileExists(fileName) then
3059    begin    begin
3060      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3061      begin      begin
3062        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3063        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3064      end      end
3065      else      else
3066      begin      begin
3067        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3068      end;      end;
3069    end    end
3070    else    else
# Line 3778  begin Line 3073  begin
3073    end;    end;
3074  end;  end;
3075    
3076    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3077    begin
3078      Scanningtype := '7';
3079      NulstilAutomatiskValg();
3080      InitIndleveringskode();
3081    end;
3082    
3083  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3084  begin  begin
3085    
3086    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3087    begin    begin
3088       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3089    end    end
3090    else    else
3091    begin    begin
3092       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3093    end;    end;
3094    
3095    
# Line 3810  end; Line 3112  end;
3112  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3113  begin  begin
3114        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3115        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3116        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3117        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3118        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3119        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3120        CheckBox1.Enabled := true;  
3121        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3122        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3123        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3124        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3125        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3126        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3127        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3128        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3129        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3130        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3131        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3132        ListBox1.Visible := true;        ListBox1.Visible := true;
3133        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3134        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3135        InitLillePakke();        InitLillePakke();
3136        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3137    
3138          chkForstorTilDirekte.Checked := false;
3139          chkForstorTilDirekte.Enabled := false;
3140    
3141        if BladhusSted = 0 then        if BladhusSted = 0 then
3142        begin        begin
3143          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3149  procedure TMainForm.InitReturFraDao();
3149  begin  begin
3150        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3151        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3152        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3153        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3154        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3155        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3156        CheckBox1.Enabled := false;  
3157        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3158        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3159        CheckBox2.Checked := false;  
3160        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3161        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3162        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3163        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3164        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3165        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3166        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3167        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3168        ListBox1.Visible := true;        ListBox1.Visible := true;
3169        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3170        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3171        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3172    
3173          chkForstorTilDirekte.Checked := false;
3174          chkForstorTilDirekte.Enabled := false;
3175    
3176        InitLillePakke();        InitLillePakke();
3177  end;  end;
3178    
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3180  procedure TMainForm.InitReturFraKunde();
3180  begin  begin
3181        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3182        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3183        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3184        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3185        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3186        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3187        CheckBox1.Enabled := false;  
3188        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3189        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3190        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3191        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3192        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3193        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3194        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3195        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3196        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3197        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3198        ListBox1.Visible := true;        ListBox1.Visible := true;
3199        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3200        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3201        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3202    
3203          chkForstorTilDirekte.Checked := false;
3204          chkForstorTilDirekte.Enabled := false;
3205    
3206        InitLillePakke();        InitLillePakke();
3207  end;  end;
3208    
# Line 3897  procedure TMainForm.InitDirektelevering( Line 3210  procedure TMainForm.InitDirektelevering(
3210  begin  begin
3211        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3212        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3213        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3214        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3215        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3216        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3217        CheckBox1.Enabled := false;  
3218        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3219        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3220        CheckBox2.Checked := false;  
3221        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3222        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3223        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3224        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3225        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3226        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3227        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3228        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3229        ListBox1.Visible := true;        ListBox1.Visible := true;
3230        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3231        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3232        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3233        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3234        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3235        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3236        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3237    
3238          chkForstorTilDirekte.Checked := false;
3239          chkForstorTilDirekte.Enabled := true;
3240    
3241        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3242        begin        begin
3243            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3933  procedure TMainForm.InitPakkeshopleverin Line 3250  procedure TMainForm.InitPakkeshopleverin
3250  begin  begin
3251        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3252        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3253        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3254        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3255        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3256        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3257        CheckBox1.Enabled := false;  
3258        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3259        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3260        CheckBox2.Checked := false;  
3261        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3262        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3263        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3264        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3265        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3266        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3267        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3268        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3269        ListBox1.Visible := true;        ListBox1.Visible := true;
3270        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3271        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3272        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3273  // 20150330: start  
3274  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3275        EKLoverforsel.Enabled := true;  
3276  // 20150330: slut        chkForstorTilDirekte.Checked := false;
3277          chkForstorTilDirekte.Enabled := true;
3278    
3279        InitLillePakke();        InitLillePakke();
3280        IndlesScanningLogFil();        IndlesScanningLogFil();
3281        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3971  procedure TMainForm.InitReturFraPakkesho Line 3290  procedure TMainForm.InitReturFraPakkesho
3290  begin  begin
3291        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3292        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3293        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3294        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3295        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3296        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3297        CheckBox1.Enabled := false;  
3298        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3299        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3300        CheckBox2.Checked := false;  
3301        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3302        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3303        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3304        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3305        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3306        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3307        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3308        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3309        ListBox1.Visible := true;        ListBox1.Visible := true;
3310        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3311        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3312        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3313        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3314    
3315          chkForstorTilDirekte.Checked := false;
3316          chkForstorTilDirekte.Enabled := false;
3317    
3318    
3319        InitLillePakke();        InitLillePakke();
3320        IndlesScanningLogFil();        IndlesScanningLogFil();
3321        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4011  end; Line 3335  end;
3335    
3336  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3337  begin  begin
3338          menuIndlevering.Checked := true;
3339        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3340        Returpakkerfrapakkeshop1.Checked := true;  
3341        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3342        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3343        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3344        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3345        CheckBox1.Enabled := false;  
3346        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3347        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3348        CheckBox2.Checked := false;  
3349        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3350        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3351        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3352          chkSporgEfterKunde.Checked := false;
3353    
3354    
3355    
3356        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3357        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3358        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3359        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3360        ListBox1.Visible := true;        ListBox1.Visible := true;
3361        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3362        DownloadButton01.Enabled := false;  
3363        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3364        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3365          BtnEKLoverforsel.Enabled := false;
3366    
3367          chkForstorTilDirekte.Checked := false;
3368          chkForstorTilDirekte.Enabled := false;
3369    
3370    
3371        InitLillePakke();        InitLillePakke();
3372        IndlesScanningLogFil();        IndlesScanningLogFil();
3373        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4057  end; Line 3391  end;
3391    
3392  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3393  begin  begin
3394    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3395    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3396  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3397  end;  end;
3398    
3399  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3400  begin  begin
3401    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3402    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3403  // 20150310: start  // 20150310: start
3404  //  Stregkode := '';  //  Stregkode := '';
3405  // 20150310: slut  // 20150310: slut
3406  end;  end;
3407    
 /// <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]]);  
3408    
     // 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;  
3409    
3410  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3411  begin  begin
# Line 4163  end; Line 3430  end;
3430    
3431  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3432  begin  begin
 // 20150317: start  
3433    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3434    begin    begin
3435       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3442  begin
3442       end;       end;
3443       exit;       exit;
3444    end;    end;
 // 20150317: slut  
3445    
3446    if Smpakker1.Checked then    if Smpakker1.Checked then
3447       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4185  begin Line 3450  begin
3450       end       end
3451       else       else
3452       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3453         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3454       end;       end;
3455    if Storepakker1.Checked then    if Storepakker1.Checked then
3456       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4197  begin Line 3459  begin
3459       end       end
3460       else       else
3461       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3462         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3463       end;       end;
3464  end;  end;
3465    
# Line 4217  begin; Line 3476  begin;
3476    CheckCode();    CheckCode();
3477  end;  end;
3478    
3479  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3480  var  var
3481    WebSvar : String;    WebSvar : String;
3482    URLStr : String;    URLStr : String;
# Line 4227  var Line 3486  var
3486    status, kommentar : String;    status, kommentar : String;
3487    
3488  begin  begin
3489      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3490    
3491      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');
3492      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3493      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3494      StedKode := Sted;      StedKode := Sted;
3495      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3496  // 20150330: start  
3497      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3498      begin      begin
3499        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3500      end;      end;
3501  // 20150330: slut  
3502    
3503      try      try
3504      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4290  begin Line 3549  begin
3549        end;        end;
3550      end;      end;
3551    
3552      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3553    
3554      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
3555    
# Line 4307  begin Line 3566  begin
3566           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3567         end;         end;
3568         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3569         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3570      end;      end;
3571    
3572  end;  end;
# Line 4331  begin Line 3590  begin
3590    else    else
3591      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3592  }  }
3593    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3594    
3595    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3596    CheckCode();    CheckCode();
# Line 4339  end; Line 3598  end;
3598    
3599  end;  end;
3600    
 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;  
3601    
3602  //  //
3603  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 4075  begin
4075    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
4076  end;  end;
4077    
4078  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4079  begin  begin
4080      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4081      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
4082  end;  end;
4083    
4084  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4085  const  const
4086    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4087    
# Line 4870  begin Line 4090  begin
4090      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
4091  end;  end;
4092    
4093  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4094  begin  begin
4095      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4096      begin      begin
# Line 4879  begin Line 4099  begin
4099      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
4100  end;  end;
4101    
4102  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;  
4103    
4104  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4105  var  var
# Line 4903  var Line 4111  var
4111    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4112    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4113    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4114    pakketyper : TStrings;    //pakketyper : TStrings;
4115      pakketyper : TDictionary<String, Integer>;
4116      tmpAntal : Integer;
4117    
4118    
4119    
4120    antlin : Integer;    antlin : Integer;
4121  // 20150306: start  
4122    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4123  // 20150306: slut  
4124    XmlFelter : TStrings;    //XmlFelter : TStrings;
4125      XmlFelter : TDictionary<String, Integer>;
4126    
4127   begin   begin
4128      XmlFelter := TStringList.Create;  
4129      pakketyper := TStringList.Create;  
4130        XmlFelter := TDictionary<String, Integer>.Create;
4131        pakketyper := TDictionary<String, Integer>.Create;
4132    
4133      linienr := 0;      linienr := 0;
4134      ListBox2.Clear;      ListBox2.Clear;
4135      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 4927  var Line 4144  var
4144          StedKode := Sted;          StedKode := Sted;
4145        end;        end;
4146    
4147  // 20150310: start        Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4148  (*  
4149      if Returpakkerfrapakkeshop1.Checked then  
4150       begin  
4151        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);      if (Scanningtype = '7') then
      end  
     else if Pakkeshoplevering1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);  
      end  
     else if Pakkernormal1.Checked then  
4152       begin       begin
4153        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4154       end       end
4155      else      else if (Scanningtype = '6') then
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
4156       begin       begin
4157        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4158       end       end
4159      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4160       begin       begin
4161        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4162       end       end
4163      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4164       begin       begin
# Line 4989  var Line 4195  var
4195      try      try
4196        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4197    
4198  // 20150206: start  
4199        antlin := 0;        antlin := 0;
4200        antlinIdag := 0;        antlinIdag := 0;
4201        antlinSenere := 0;        antlinSenere := 0;
4202  // 20150306: slut  
       antalFelterFundet := 0;  
4203        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4204            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4205            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4206              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4207              begin              begin
4208                 antlin := antlin + 1;                 Inc(antlin);
4209                 // 20150306: start                 // 20150306: start
4210                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4211                begin                begin
4212                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4213                   begin                   begin
4214                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4215                   end                   end
4216                   else                   else
4217                   begin                   begin
4218                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4219                   end;                   end;
4220                end;                end;
4221                 // 20150306: slut                 // 20150306: slut
4222              end;              end;
4223            end;            end;
4224            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4225                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4226                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4227                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4228                  end
4229                else                else
4230                  XmlFelter.values[Node.NodeName] := '1';                begin
4231                    XmlFelter.Add(Node.NodeName, 1);
4232                  end;
4233    
4234        end;        end;
4235        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
4236        antalFelterFundet := 0;        antalFelterFundet := 0;
4237        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4238        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4239  // 20150206: start  
4240  //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4241          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4242    
4243        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4244        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4245        begin        begin
4246          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4247        end;        end;
4248        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4249  // 20150306: slut  
4250        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4251    
4252    
4253        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4254            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4255            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5043  var Line 4257  var
4257                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4258                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4259                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4260              end;              end
4261              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4262                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4263                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4264                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4265              end;              end
4266              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4267                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4268                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4269                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4270              end;              end
4271              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4272                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4273                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4274                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4275              end;              end
4276              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4277                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4278                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4279                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4280                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4281                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4282                    pakketyper.TryGetValue(pakketype, tmpAntal);
4283                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4284                  end
4285                else                else
4286                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4287              end;              end
4288              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4289                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4290                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4291                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4292                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4293                  begin                  begin
4294  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4295                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4296                    begin                    begin
4297                      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
4298                    end                    end
4299                    else                    else
4300                    begin                    begin
4301                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4302                    end;                    end;
4303  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4304                  end;                  end;
4305              end;              end;
4306    
4307    
4308              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4309              begin              begin
4310                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 5103  var Line 4320  var
4320              end;              end;
4321            end;            end;
4322        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4323    
4324          // Free up the list object  
4325          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4326    
4327    
4328          for pakketype in pakketyper.Keys do
4329          begin
4330            pakketyper.TryGetValue(pakketype, tmpAntal);
4331            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4332          end;
4333    
4334            // Free up the dictionary object
4335        pakketyper.Free;        pakketyper.Free;
4336  // 20150306: start  
4337    
4338    
4339  //      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.');
4340        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4341        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4344  var
4344        end;        end;
4345        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4346        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4347        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4348        begin        begin
4349          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4352  var
4352        begin        begin
4353          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4354        end;        end;
 // 20150309: slut  
4355    
 // 20150310: start  
4356        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4357        begin        begin
4358          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4431  var
4431            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4432          end;          end;
4433        end;        end;
 // 20150310: slut  
4434    
4435      except on e:exception do      except on e:exception do
4436        begin        begin
# Line 5272  end; Line 4492  end;
4492  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4493  var  var
4494     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4495     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4496     imorgenYmd : string;     imorgenYmd : string;
4497     logFilnavn : string;     logFilnavn : string;
4498      error : Integer;     //error : Integer;
4499    
4500  begin  begin
4501    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 4587  begin
4587          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4588          S := buffer;          S := buffer;
4589          SetLength(A,0);          SetLength(A,0);
4590          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4591          if (length(A) < 2) then          if (length(A) < 2) then
4592          begin          begin
4593            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4594          end;          end;
4595            if (length(A) > 1) then            if (length(A) > 1) then
4596            begin            begin
# Line 5446  begin Line 4664  begin
4664          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4665          S := buffer;          S := buffer;
4666          SetLength(A,0);          SetLength(A,0);
4667          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4668          if (length(A) < 3) then          if (length(A) < 3) then
4669          begin          begin
4670            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4671          end;          end;
4672          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4673          begin          begin
# Line 5541  begin Line 4759  begin
4759    result := svar;    result := svar;
4760  end;  end;
4761    
4762    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4763    begin
4764      //ShowMessage('Ændring ikke tilladt');
4765      // Her skal komme en 'rød skærm' alarm
4766      PlaySound(PWideChar(AlarmLyd));
4767      MainForm.Color := clRed;
4768    
4769    
4770      RuteNummerST.Caption := '';
4771      BoghandlerNavnST.Caption := '';
4772      btnNulstil.Visible := true;
4773    
4774      if (strMessage <> '') then
4775      begin
4776        ListBox1.Items.Insert(0, strMessage);
4777        KommentarST.Caption := strMessage;
4778      end;
4779    
4780    end;
4781    
4782  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
4783  var  var
4784     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5598  begin Line 4836  begin
4836    result := svar;    result := svar;
4837  end;  end;
4838    
 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;  
4839    
4840  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4841  begin  begin
4842    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
4843    begin    begin
4844       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
4845    end    end
4846    else    else
4847    begin    begin
4848       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
4849    end;    end;
4850  end;  end;
4851    
4852  function TMainForm.AdobeReaderExists: Boolean;  
4853  var  
4854    AReg: TRegistry;  //Nedarvet fra IParentForm
4855    procedure TMainForm.LogMessage( msg : string);
4856  begin  begin
4857    result:= false;    ListBox1.Items.Insert(0, msg);
4858    AReg := TRegistry.Create;    SkrivScanningLogFil(msg);
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
4859  end;  end;
4860    
 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  
4861    
4862  // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1  //Nedarvet fra IParentForm
4863  //            'Test'  skal vise alarmlinie, samt opdatere listbox1  procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4864  //            'Timer' skal kun vise alarmlinie  begin
4865    
4866    if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then    PrinterstatusStaticText1.Caption := txt;
4867      if (alert) then
4868    begin    begin
4869      printerTxt := 'Der er fravalgt printer i dette program';      PrinterstatusStaticText1.Font.Color := clBlack;
4870      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4871      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
   end  
   else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
   begin  
     printerTxt := 'Der er ikke installeret en printer på denne PC';  
     ListBox1.Items.Insert(0,printerTxt);  
     SkrivScanningLogFil(printerTxt);  
4872    end    end
4873    else    else
4874    begin    begin
4875      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4876      try      PrinterstatusStaticText1.Color := clWhite;
4877        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;  
   end;  
 end;  
   
 function TMainForm.CheckUrl(url:string):boolean;  
 var  
   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);  
4878    end;    end;
   
4879  end;  end;
4880    
4881  // 20150310: start  //Nedarvet fra IParentForm
4882  procedure TMainForm.RoundCornerOf(Control: TWinControl);  function TMainForm.GetFormObject() : TForm;
 var  
    R: TRect;  
    Rgn: HRGN;  
4883  begin  begin
4884     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;  
4885  end;  end;
 // 20150310: slut  
4886    
4887  end.  end.
4888    

Legend:
Removed from v.2650  
changed lines
  Added in v.2800

  ViewVC Help
Powered by ViewVC 1.1.20