/[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 3073 by torben, Wed Jul 27 15:25:24 2016 UTC
# Line 1  Line 1 
1  unit Main;  unit Main;
2    
3    // ToDo: flyt PrinterNavn til hhv Configuration lg lad TLabelPrint om al håndtering heraf
4    // ToDo: flyt flere parametre til TConfiguration
5    
6    // ToDo: FormKeyPress() trænger til en seriøs oprydning / refactoring
7    // ToDo: flyt mere funktionalitet fra interface layer til application layer klasser
8    // ToDo: vil det give mening at bruge State Pattern ? Så der er en class per scanningstype ?
9    // ToDo: alternativt kan man bruge en Enum til de forskellige typer
10    // ToDo: en enklere måde at håndtere capabilities på de forskellige scannings steder
11    
12    
13  interface  interface
14    
15  uses  uses
16    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
17    Dialogs, StdCtrls, Printers, IdBaseComponent, IdComponent, IdTCPConnection,    Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
18    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
19    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
20    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, IdException,
21    Winspool, 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;
     KommentarST: TStaticText;  
42      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
43      N1: TMenuItem;      N1: TMenuItem;
44      Pakkernormal1: TMenuItem;      menuNatXpress1: TMenuItem;
45      ReturpakkerfraDAO1: TMenuItem;      menuNatxpressReturDAO1: TMenuItem;
46      Returpakkerfraboghandler1: TMenuItem;      menuNatxpressReturfraKunde1: TMenuItem;
47      Hjlp1: TMenuItem;      Hjlp1: TMenuItem;
48      Om1: TMenuItem;      Om1: TMenuItem;
49      Testforbindelsen1: TMenuItem;      Testforbindelsen1: TMenuItem;
# Line 36  type Line 53  type
53      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
54      N2: TMenuItem;      N2: TMenuItem;
55      N3: TMenuItem;      N3: TMenuItem;
56      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
57      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
58      N4: TMenuItem;      N4: TMenuItem;
59      Storepakker1: TMenuItem;      menuStorePakker: TMenuItem;
60      Smpakker1: TMenuItem;      menuSmaaPakker: TMenuItem;
61      Panel1: TPanel;      Panel1: TPanel;
62      Testlyd2: TMenuItem;      Testlyd2: TMenuItem;
63      Button1: TButton;      Button1: TButton;
64      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
65      ListBox1: TListBox;      ListBox1: TListBox;
66      Budlevering1: TMenuItem;      menuDaoDirekte1: TMenuItem;
67      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
68      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
69      Image1: TImage;      Image1: TImage;
70      ListBox2: TListBox;      ListBox2: TListBox;
71      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
72      UploadButton01: TButton;      BtnUploadLogfil: TButton;
73      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
74      Pakkeshoplevering1: TMenuItem;      menuPakkeshop1: TMenuItem;
75      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
76      PakkeshopNulstil: TButton;      btnNulstil: TButton;
77      Returpakkerfrapakkeshop1: TMenuItem;      menuPakkeshopRetur1: TMenuItem;
78      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
79      CheckBox2: TCheckBox;      chkAltidPrintLabel: TCheckBox;
80      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
81      N5: TMenuItem;      N5: TMenuItem;
82      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
83      Manual1: TMenuItem;      Manual1: TMenuItem;
84      PrinterstatusStaticText1: TStaticText;      PrinterstatusStaticText1: TStaticText;
85      Timer1: TTimer;      Timer1: TTimer;
86      CheckBox3: TCheckBox;      chkScanTjekkode: TCheckBox;
87      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
88      Automatisktjekkodestyring1: TMenuItem;      menuAutomatiskTjekkodeStyring: TMenuItem;
89      Automatiskvalg1: TMenuItem;      menuAutomatiskvalg1: TMenuItem;
90      PanelValgA: TPanel;      PanelValgA: TPanel;
91      PanelValg1: TPanel;      PanelValg1: TPanel;
92      PanelValg2: TPanel;      PanelValg2: TPanel;
# Line 77  type Line 94  type
94      PanelValg4: TPanel;      PanelValg4: TPanel;
95      PanelValg5: TPanel;      PanelValg5: TPanel;
96      PanelValg6: TPanel;      PanelValg6: TPanel;
97        PanelValg7: TPanel;
98      Manualgenerel1: TMenuItem;      Manualgenerel1: TMenuItem;
99      StaticTextManglendePakker: TStaticText;      StaticTextManglendePakker: TStaticText;
100      PanelManglendePakker1: TPanel;      PanelManglendePakker1: TPanel;
# Line 85  type Line 103  type
103      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
104      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
105      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
106      PanelValg7: TPanel;      menuIndlevering: TMenuItem;
107        chkForstorTilDirekte: TCheckBox;
108        chkEmballageRepareret: TCheckBox;
109        KommentarST: TLabel;
110        chkUdenforSpecifikation: TCheckBox;
111    
112    
113    
   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;  
114    function getProddato() : TDate;    function getProddato() : TDate;
115    function getProddag() : String;    function getProddag() : String;
116    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
   function GetCurrentPrinterHandle() : THandle;  
   function SavePChar(p: PChar): PChar;  
   function AdobeReaderExists(): Boolean;  
   function FileTime2DateTime(FileTime: TFileTime): TDateTime;  
   function split(input: string; schar: Char; s: Integer): string;  
   function CheckUrl(url:string):boolean;  
117    
118    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
119    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 126  type
126    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
127    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
128    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
129    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
130    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
131    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
132    procedure Pakkernormal1Click(Sender: TObject);    procedure menuNatXpress1Click(Sender: TObject);
133    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
134    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
135    procedure Om1Click(Sender: TObject);    procedure Om1Click(Sender: TObject);
136    procedure Lukprogrammet1Click(Sender: TObject);    procedure Lukprogrammet1Click(Sender: TObject);
137    procedure Sprgefterboghandlernummer1Click(Sender: TObject);    procedure Sprgefterboghandlernummer1Click(Sender: TObject);
138    procedure ReturpakkerfraDAO1Click(Sender: TObject);    procedure menuNatxpressReturDAO1Click(Sender: TObject);
139    procedure Returpakkerfraboghandler1Click(Sender: TObject);    procedure menuNatxpressReturfraKunde1Click(Sender: TObject);
140    procedure Storepakker1Click(Sender: TObject);    procedure menuStorePakkerClick(Sender: TObject);
141    procedure Smpakker1Click(Sender: TObject);    procedure menuSmaaPakkerClick(Sender: TObject);
142    procedure Testlyd1Click(Sender: TObject);    procedure Testlyd1Click(Sender: TObject);
143    procedure Testlyd2Click(Sender: TObject);    procedure Testlyd2Click(Sender: TObject);
144    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
145    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
146    procedure Budlevering1Click(Sender: TObject);    procedure menuDaoDirekte1Click(Sender: TObject);
147    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
148    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
149    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
150    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
151    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 140  type Line 153  type
153    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
154    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
155    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
156    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
157    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
158    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure menuPakkeshop1Click(Sender: TObject);
159    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
160    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure menuPakkeshopRetur1Click(Sender: TObject);
161    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
162    procedure InitReturFraDao();    procedure InitReturFraDao();
163    procedure InitReturFraKunde();    procedure InitReturFraKunde();
# Line 154  type Line 167  type
167    procedure InitIndleveringskode();    procedure InitIndleveringskode();
168    
169    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
170    procedure CheckBox2Click(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
171    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
172    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
173    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
174    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
175    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
176    procedure CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
177    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure menuAutomatiskTjekkodeStyringClick(Sender: TObject);
178    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
179    procedure Automatiskvalg1Click(Sender: TObject);    procedure menuAutomatiskvalg1Click(Sender: TObject);
180    procedure PanelValgAClick(Sender: TObject);    procedure PanelValgAClick(Sender: TObject);
181    procedure PanelValg1Click(Sender: TObject);    procedure PanelValg1Click(Sender: TObject);
182    procedure PanelValg2Click(Sender: TObject);    procedure PanelValg2Click(Sender: TObject);
# Line 172  type Line 184  type
184    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
185    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
186    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
187      procedure PanelValg7Click(Sender: TObject);
188    
189    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
190    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
191    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
192    procedure TjekkerUrls();    procedure TjekkerUrls();
193  // 20150310: start    procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
194    procedure RoundCornerOf(Control: TWinControl);  
195      procedure menuIndleveringClick(Sender: TObject);
196    
197    
198    
199      //Nedarvet fra IParentForm
200      procedure Msg( msg : string);
201      procedure LogMessage( msg : string);
202      procedure SetPrinterstatusText( txt: string; alert: boolean);
203      function GetFormObject() : TForm;
204    
205    
     procedure PanelValg7Click(Sender: TObject);  
 // 20150310: slut  
206    
207    private    private
208      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 210  type
210      SkrivLog : String;      SkrivLog : String;
211      Sted : String;      Sted : String;
212      StedNavn : String;      StedNavn : String;
213      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering,
214  // 29150330: start              UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,
215                UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel, URLOmdirigerTilPakkeshop : String;
216    
217      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
218  // 20150330: slut  
219      UrlFindPakketype, UrlSendPrograminfo: String;      UrlFindPakketype, UrlSendPrograminfo: String;
220      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
221      ScanTjekkode : String;      ScanTjekkode : String;
222      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
223      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;  
224      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop,
225      LabelType : integer;            FarveIndlevering : String;
226    
227        Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop,
228              TitelIndlevering : String;
229    
230      AlarmLyd : String;      AlarmLyd : String;
231      ScannetOkLyd : String;      ScannetOkLyd : String;
232      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
233  // 20150317: start  
234      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
235  // 20150317: slut  
236      PrinterNavn : String;      PrinterNavn : String;
237      TjekPrinter : String;      TjekPrinter : String;
238      XPosRute : integer;  
     YPosRute : integer;  
     FontSizeRute : integer;  
     FontSizeRuteLille : integer;  
     XPosKommentar : integer;  
     YPosKommentar : integer;  
     FontSizeKommentar : integer;  
     XPosBoghandler : integer;  
     YPosBoghandler : integer;  
     FontSizeBoghandler : integer;  
     XPosKoreliste : integer;  
     YPosKoreliste : integer;  
     FontSizeKoreliste : integer;  
     FontSizeKorelisteLille : integer;  
     XPosSorteringsfelt1 : integer;  
     YPosSorteringsfelt1 : integer;  
     FontSizeSorteringsfelt1 : integer;  
     XPosSorteringsfelt2 : integer;  
     YPosSorteringsfelt2 : integer;  
     FontSizeSorteringsfelt2 : integer;  
     XPosSmskode : integer;  
     YPosSmskode : integer;  
     FontSizeSmskode : integer;  
239      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
240      BladhusSted : Integer;      BladhusSted : Integer;
241      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 242  type Line 248  type
248      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
249      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
250      TjekUrls : String;      TjekUrls : String;
251        Config : TConfiguration;
252    
253            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }  
254        LabelPrint: TLabelPrint;
255    
256      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
257      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
258      procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');      procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');
259      procedure CheckCode();      procedure CheckCode();
260      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanninger();
# Line 255  type Line 263  type
263      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
264      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
265      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
266        procedure VisAlarmSkaerm(strMessage: string);
267        function InjectURL(Url : String) : String;
268    
269    public    public
270      { Public declarations }      { Public declarations }
271    end;    end;
272    
273    
274  var  var
275    MainForm: TMainForm;    MainForm: TMainForm;
276    
# Line 273  var Line 284  var
284  implementation  implementation
285  {$R *.dfm}  {$R *.dfm}
286    
287  function TMainForm.TColorToHex(Color : TColor) : string;  
288  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;  
289    
290  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
291  begin  begin
292    
293  // 20150309: startr      IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect
294        IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read
295    
296    
297    
298    
299      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
300  // 20150309: slut  
301    
302      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
303      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 340  begin Line 341  begin
341        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
342      end;      end;
343    
344      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
345    
346      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
347      begin      begin
# Line 368  begin Line 369  begin
369        else if (Sted = 'BR') then        else if (Sted = 'BR') then
370          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
371        else if (Sted = 'BK') then        else if (Sted = 'BK') then
372          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
373          else if (Sted = 'TK') then
374            begin StedNavn := 'BK/Trykkompagniet: '; end
375        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
376          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
377        else if (Sted = '1') then        else if (Sted = '1') then
378          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
379        else if (Sted = '2') then        else if (Sted = '2') then
# Line 394  begin Line 397  begin
397    
398      StartScreen();      StartScreen();
399      MainForm.Caption := Titel;      MainForm.Caption := Titel;
400      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
401      MainForm.Farve := Farve;      MainForm.Farve := Farve;
402      MainForm.Titel := Titel;      MainForm.Titel := Titel;
403      MainForm.Url := Url;      MainForm.Url := Url;
# Line 404  begin Line 407  begin
407        PrinterstatusStaticText1.Color := MainForm.Color;        PrinterstatusStaticText1.Color := MainForm.Color;
408      end;      end;
409    
410      if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      if menuPakkeshop1.Checked or menuNatXpress1.Checked then
411        PakkeshopText1.Visible := true        PakkeshopText1.Visible := true
412      else      else
413        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
414    
415      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
416      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
417      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
418    
419      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
420      begin      begin
421        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
422        begin        begin
423          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
424          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
425          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
426        end        end
427        else        else
428        begin        begin
429          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
430          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
431          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
432        end;        end;
433      end;      end;
434    
435      if Automatisktjekkodestyring1.Checked then      if menuAutomatiskTjekkodeStyring.Checked then
436      begin      begin
437        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
438        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
439      end;      end;
440    
# Line 454  begin Line 457  begin
457          end          end
458          else          else
459          begin          begin
460            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
461          end;          end;
462          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
463        end        end
464        else        else
465        begin        begin
466          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
467          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
468        end;        end;
469      end;      end;
470    
471    
472  end;  end;
473    
474  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 472  begin Line 476  begin
476    
477    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
478    begin    begin
479       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
480    end    end
481    else    else
482    begin    begin
483       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
484    end;    end;
485    
486  end;  end;
# Line 486  begin Line 490  begin
490    StregkodeST.Caption := Stregkode;    StregkodeST.Caption := Stregkode;
491  end;  end;
492    
493  procedure TMainForm.Automatisktjekkodestyring1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskTjekkodeStyringClick(Sender: TObject);
494  begin  begin
495    if Automatisktjekkodestyring1.Checked then    if menuAutomatiskTjekkodeStyring.Checked then
496    begin    begin
497       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
498       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
499    end    end
500    else    else
501    begin    begin
502       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
503       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
504    end;    end;
505    
506  end;  end;
507    
508  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskvalg1Click(Sender: TObject);
509  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;  
 *)  
510  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
511  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
512       AutomatiskValg1.Checked := true;       menuAutomatiskvalg1.Checked := true;
513       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
514       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
515  end;  end;
516    
517    function TMainForm.InjectURL(Url : String) : String;
518    begin
519    
520      Url := Url + '&ver=' + TUtils.URLEncode( TUtils.Sto_GetFmtFileVersion(''));
521      Url := Url + '&host=' + TUtils.URLEncode( TUtils.GetComputerNameHelper());
522      Url := Url + '&user=' + TUtils.URLEncode( TUtils.GetCurrentUserName());
523    
524      Result := Url;
525    end;
526    
527    //InitForm kaldes før FormCreate
528  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
529  const  const
530    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
531  var  var
   printerInd : integer;  
   i : Integer;  
 // 20150310: start  
532    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
533    
534  begin  begin
535    
536    
537    // Initierer nogle variabler    // Initierer nogle variabler
538    BladhusSted := 00;    BladhusSted := 00;
539    Application.ShowHint := True;    Application.ShowHint := True;
540    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
541    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
542  // 20150306: start  
543    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
544  // 20150306: slut  
545  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
546    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
547    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
548    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
549    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
550    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
551    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
552    
553    // 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
554    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 565  begin Line 561  begin
561    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
562    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 750;
563    
564      Config := TConfiguration.Create();
565      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
566      Config.Sted := Sted;
567    
568    // Læser parametre fra ini filen    // Læser parametre fra ini filen
569    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
570    try    try
571    
572    
573      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
574      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
575      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
576    
577      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');
578        UrlFindPakketype := InjectURL(UrlFindPakketype);
579    
580      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');
581        UrlSendPrograminfo := InjectURL(UrlSendPrograminfo);
582    
583      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');
584        UrlNormal := InjectURL(UrlNormal);
585    
586      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');
587        UrlReturDAO := InjectURL(UrlReturDAO);
588    
589      UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');      UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');
590        UrlReturBoghandler := InjectURL(UrlReturBoghandler);
591    
592      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');
593        UrlBudlevering := InjectURL(UrlBudlevering);
594    
595      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');
596        UrlManglendeScanninger := InjectURL(UrlManglendeScanninger);
597    
598      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');
599  // 20150330: start      UrlEKLoverforsel := InjectURL(UrlEKLoverforsel);
600    
601      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');
602  // 20150330: slut      UrlEKLoverforselPakkeshop := InjectURL(UrlEKLoverforselPakkeshop);
603    
604      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');
605        UrlPakkeshoplevering := InjectURL(UrlPakkeshoplevering);
606    
607      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');
608        UrlReturPakkeshop := InjectURL(UrlReturPakkeshop);
609    
610      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');
611        UrlPakkeshopManglendeScanninger := InjectURL(UrlPakkeshopManglendeScanninger);
612    
613      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');
614      LabelType := ReadInteger('Settings','LabelType',1);      UrlPakkeshopManglendeReturScanninger := InjectURL(UrlPakkeshopManglendeReturScanninger);
615    
616        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
617        UrlIndleveringsPakke := InjectURL(UrlIndleveringsPakke);
618    
619        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
620        UrlIndleveringsPakkeManglendeScanninger := InjectURL(UrlIndleveringsPakkeManglendeScanninger);
621    
622        URLOmdirigerTilPakkeshop := ReadString('Settings', 'URLOmdirigerTilPakkeshop','http://omdeling.info/webservices/pakkeshop/PakkeKontrolOmdirigerTilPakkeshop.php?sted=%s&stregkode=%s');
623        URLOmdirigerTilPakkeshop := InjectURL(URLOmdirigerTilPakkeshop);
624    
625    
626    
627      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
628      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
629      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');
# Line 597  begin Line 634  begin
634      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
635      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
636      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
637    
638      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
639      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
640    
641        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
642        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
643    
644    
645      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
646      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
647      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 651  begin
651      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
652      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
653      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
654  // 20150317: start  
655      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
656  // 20150317: slut  
657      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
658      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
659      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
660    
661      if (SkrivLog = '1') then      if (SkrivLog = '1') then
662      begin      begin
663        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);
664        try        try
665          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
666          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
667          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
668          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
669          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
670          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 633  begin Line 676  begin
676    
677      if Scanningtype = 'A' then      if Scanningtype = 'A' then
678      begin      begin
679        Automatiskvalg1.Checked := true;        menuAutomatiskvalg1.Checked := true;
680        Scanningtype := '1';        Scanningtype := '1';
681        PanelValgA.Color := clGreen;        PanelValgA.Color := clGreen;
682        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
683      end;      end;
684    
685      if LabelType = 0 then  
     begin  
        XPosRute := ReadInteger('RuteBred','XPos',1);  
        YPosRute := ReadInteger('RuteBred','YPos',1);  
        FontSizeRute := ReadInteger('RuteBred','FontSize',72);  
        FontSizeRuteLille := ReadInteger('RuteBred','FontSizeLille',20);  
        XPosKommentar := ReadInteger('KommentarBred','XPos',1);  
        YPosKommentar := ReadInteger('KommentarBred','YPos',250);  
        FontSizeKommentar := ReadInteger('KommentarBred','FontSize',16);  
        XPosBoghandler := ReadInteger('BoghandlerBred','XPos',1);  
        YPosBoghandler := ReadInteger('BoghandlerBred','YPos',400);  
        FontSizeBoghandler := ReadInteger('BoghandlerBred','FontSize',16);  
        XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);  
        YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);  
        FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);  
        FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);  
        XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);  
        YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);  
        FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);  
        XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);  
        YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);  
        FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);  
        XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);  
        YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);  
        FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);  
     end  
     else  
     begin  
        XPosRute := ReadInteger('RuteSmal','XPos',1);  
        YPosRute := ReadInteger('RuteSmal','YPos',1);  
        FontSizeRute := ReadInteger('RuteSmal','FontSize',72);  
        FontSizeRuteLille := ReadInteger('RuteSmal','FontSizeLille',20);  
        XPosKommentar := ReadInteger('KommentarSmal','XPos',1);  
        YPosKommentar := ReadInteger('KommentarSmal','YPos',250);  
        FontSizeKommentar := ReadInteger('KommentarSmal','FontSize',16);  
        XPosBoghandler := ReadInteger('BoghandlerSmal','XPos',1);  
        YPosBoghandler := ReadInteger('BoghandlerSmal','YPos',400);  
        FontSizeBoghandler := ReadInteger('BoghandlerSmal','FontSize',16);  
        XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);  
        YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);  
        FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);  
        FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);  
        XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);  
        YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);  
        FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);  
        XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);  
        YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);  
        FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);  
        XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);  
        YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);  
        FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);  
        if LabelType = 2 then // test på alm. printer kræver at XY-positionerne ganges med 3  
        begin  
           XPosRute := XPosRute * 3;  
           YPosRute := YPosRute * 3;  
           XPosKommentar := XPosKommentar * 3;  
           YPosKommentar := YPosKommentar * 3;  
           XPosBoghandler := XPosBoghandler * 3;  
           YPosBoghandler := YPosBoghandler * 3;  
           XPosKoreliste := XPosKoreliste * 3;  
           YPosKoreliste := YPosKoreliste * 3;  
           XPosSorteringsfelt1 := XPosSorteringsfelt1 * 3;  
           YPosSorteringsfelt1 := YPosSorteringsfelt1 * 3;  
           XPosSorteringsfelt2 := XPosSorteringsfelt2 * 3;  
           YPosSorteringsfelt2 := YPosSorteringsfelt2 * 3;  
           XPosSmskode := XPosSmskode * 3;  
           YPosSmskode := YPosSmskode * 3;  
        end;  
     end;  
686    
687      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
688      begin      begin
689        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
690        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
691      end      end
692      else      else
693      begin      begin
694        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
695        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
696      end;      end;
697    
698      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
699      begin      begin
700        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
701        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
702      end      end
703      else      else
704      begin      begin
705        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
706        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
707      end;      end;
708    
709      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
710      begin      begin
711        Automatisktjekkodestyring1.Checked := true;        menuAutomatiskTjekkodeStyring.Checked := true;
712        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
713        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
714      end;      end;
715    
# Line 760  begin Line 735  begin
735      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
736      // *************************** //      // *************************** //
737    
738    {$IfDef STED_BK}
739        SpecialVersionSted := 'BK';
740    {$EndIf}
741    {$IfDef STED_TK}
742        SpecialVersionSted := 'TK';// BK-Trykkompagniet
743    {$EndIf}
744    {$IfDef STED_DBK}
745        SpecialVersionSted := 'DBK';
746    {$EndIf}
747    {$IfDef STED_FD}
748        SpecialVersionSted := 'FD';
749    {$EndIf}
750    {$IfDef STED_NS}
751        SpecialVersionSted := 'NS';
752    {$EndIf}
753    
754      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
755      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
756      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 766  begin
766      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
767      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
768    
 // 20150313: start  
769      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
770      begin      begin
771         SpecialVersionSted := '01';         //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg
772         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
773    
774          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
775          Sted := SpecialVersionSted;
776         // her skal vi også disable de knapper BK ikke kan bruge
777          PanelValg2.Enabled := false;
778          PanelValg2.Font.Color := clInactiveCaption;
779          PanelValg3.Enabled := false;
780          PanelValg3.Font.Color := clInactiveCaption;
781          //PanelValg6.Enabled := false;
782          //PanelValg6.Font.Color := clInactiveCaption;
783    
784         // her skal vi også disable de menupunkter FD ikke kan bruge
785          menuNatxpressReturDAO1.Enabled := false;
786          menuNatxpressReturfraKunde1.Enabled := false;
787    
788          //Returpakkerfrapakkeshop1.Enabled := false;
789      end;      end;
790    
791      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
792      begin      begin
793         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
794         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
795      end;  
 // 20150313: slut  
796    
     if SpecialVersionSted = 'BK' then  
     begin  
797        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
798        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
799       // her skal vi også disable de knapper BK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
# Line 797  begin Line 801  begin
801        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
802        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
803        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
804        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
805        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
806       // her skal vi også disable de menupunkter BK ikke kan bruge  
807        ReturpakkerfraDAO1.Enabled := false;       // her skal vi også disable de menupunkter FD ikke kan bruge
808        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
809        Returpakkerfrapakkeshop1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
810        if SpecialVersionScanningtype = 'A' then  
811        begin        //Returpakkerfrapakkeshop1.Enabled := false;
812           Scanningtype := '1';  
       end  
       else  
       begin  
         Scanningtype := SpecialVersionScanningtype;  
       end;  
813      end;      end;
814    
815      if SpecialVersionSted = 'DBK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
816      begin      begin
817        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
818        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
819        // her skal vi også disable de knapper DBK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
820        PanelValg2.Enabled := false;        PanelValg2.Enabled := false;
821        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
822        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
823        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
824        PanelValg5.Enabled := false;        //PanelValg6.Enabled := false;
825        PanelValg5.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
826        PanelValg6.Enabled := false;  
827        PanelValg6.Font.Color := clInactiveCaption;       // her skal vi også disable de menupunkter BK ikke kan bruge
828       // her skal vi også disable de menupunkter DBK ikke kan bruge        menuNatxpressReturDAO1.Enabled := false;
829        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
830        Returpakkerfraboghandler1.Enabled := false;  
831  // 20150317: start        //Returpakkerfrapakkeshop1.Enabled := false;
832        Pakkeshoplevering1.Enabled := false;  
       Returpakkerfrapakkeshop1.Enabled := false;  
 // 20150317: slut  
833        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
834        begin        begin
835           Scanningtype := '1';           Scanningtype := '1';
# Line 843  begin Line 840  begin
840        end;        end;
841      end;      end;
842    
843        if SpecialVersionSted = 'DBK' then
844        begin
845          Sted := SpecialVersionSted;
846        end;
847    
848      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
849      or (SpecialVersionSted = '02')      or (SpecialVersionSted = '02')
850      or (SpecialVersionSted = '03')      or (SpecialVersionSted = '03')
# Line 862  begin Line 864  begin
864        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
865        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
866        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
867          PanelValg7.Enabled := false;
868          PanelValg7.Font.Color := clInactiveCaption;
869       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge
870  // 20150317: start  
871        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
872  // 20150317: slut  
873        Pakkernormal1.Enabled := false;        menuNatXpress1.Enabled := false;
874        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
875        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
876        Budlevering1.Enabled := false;        menuDaoDirekte1.Enabled := false;
877        Pakkeshoplevering1.Enabled := false;        menuPakkeshop1.Enabled := false;
878        Returpakkerfrapakkeshop1.Enabled := false;        menuPakkeshopRetur1.Enabled := false;
879        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
880        begin        begin
881          Scanningtype := '4';          Scanningtype := '4';
882          Budlevering1.Enabled := true;          menuDaoDirekte1.Enabled := true;
883          PanelValg4.Font.Color := clWindowText;          PanelValg4.Font.Color := clWindowText;
884          PanelValg4.Enabled := true;          PanelValg4.Enabled := true;
885        end        end
# Line 884  begin Line 888  begin
888          Scanningtype := SpecialVersionScanningtype;          Scanningtype := SpecialVersionScanningtype;
889          PanelValgA.Enabled := false;          PanelValgA.Enabled := false;
890          PanelValgA.Font.Color := clInactiveCaption;          PanelValgA.Font.Color := clInactiveCaption;
891          AutomatiskValg1.Checked := false;          menuAutomatiskvalg1.Checked := false;
892          PanelValgA.Color := clBtnFace;          PanelValgA.Color := clBtnFace;
893          if Scanningtype = '1' then          if Scanningtype = '1' then
894          begin          begin
895            Pakkernormal1.Enabled := true;            menuNatXpress1.Enabled := true;
896            PanelValg1.Enabled := true;            PanelValg1.Enabled := true;
897            PanelValg1.Font.Color := clWindowText;            PanelValg1.Font.Color := clWindowText;
898          end;          end;
899          if Scanningtype = '2' then          if Scanningtype = '2' then
900          begin          begin
901            ReturpakkerfraDAO1.Enabled := true;            menuNatxpressReturDAO1.Enabled := true;
902            PanelValg2.Enabled := true;            PanelValg2.Enabled := true;
903            PanelValg2.Font.Color := clWindowText;            PanelValg2.Font.Color := clWindowText;
904          end;          end;
905          if Scanningtype = '3' then          if Scanningtype = '3' then
906          begin          begin
907            Returpakkerfraboghandler1.Enabled := true;            menuNatxpressReturfraKunde1.Enabled := true;
908            PanelValg3.Enabled := true;            PanelValg3.Enabled := true;
909            PanelValg3.Font.Color := clWindowText;            PanelValg3.Font.Color := clWindowText;
910          end;          end;
911          if Scanningtype = '4' then          if Scanningtype = '4' then
912          begin          begin
913            Budlevering1.Enabled := true;            menuDaoDirekte1.Enabled := true;
914            PanelValg4.Enabled := true;            PanelValg4.Enabled := true;
915            PanelValg4.Font.Color := clWindowText;            PanelValg4.Font.Color := clWindowText;
916          end;          end;
917          if Scanningtype = '5' then          if Scanningtype = '5' then
918          begin          begin
919            Pakkeshoplevering1.Enabled := true;            menuPakkeshop1.Enabled := true;
920            PanelValg5.Enabled := true;            PanelValg5.Enabled := true;
921            PanelValg5.Font.Color := clWindowText;            PanelValg5.Font.Color := clWindowText;
922          end;          end;
923          if Scanningtype = '6' then          if Scanningtype = '6' then
924          begin          begin
925            Returpakkerfrapakkeshop1.Enabled := true;            menuPakkeshopRetur1.Enabled := true;
926            PanelValg6.Enabled := true;            PanelValg6.Enabled := true;
927            PanelValg6.Font.Color := clWindowText;            PanelValg6.Font.Color := clWindowText;
928          end;          end;
# Line 957  begin Line 961  begin
961             RutenummerST.Caption := '';             RutenummerST.Caption := '';
962             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
963             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
964             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
965             exit;             exit;
966          end;          end;
967      end      end
# Line 999  begin Line 1003  begin
1003    
1004      if Pakketype = '1' then      if Pakketype = '1' then
1005      begin      begin
1006        Storepakker1.Checked := true;        menuStorePakker.Checked := true;
1007        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
1008      end      end
1009      else      else
1010      begin      begin
1011        Smpakker1.Checked := true;        menuSmaaPakker.Checked := true;
1012        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
1013      end;      end;
1014    
1015      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 1049  begin
1049        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
1050      end;      end;
1051    
1052  // 20150317: start  
1053      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
1054      begin      begin
1055        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
1056      end;      end;
 // 20150317: slut  
1057    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
1058    
1059      CheckPrintQue('Opstart');  
1060    
1061        LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
1062        LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
1063    
1064    finally    finally
1065      Free;      Free;
# Line 1068  begin Line 1068  begin
1068      // UBD skal p.t. ikke have adgang til flg. funktioner      // UBD skal p.t. ikke have adgang til flg. funktioner
1069      if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then      if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
1070      begin      begin
1071        ReturpakkerfraDAO1.Visible := false;        menuNatxpressReturDAO1.Visible := false;
1072        Returpakkerfraboghandler1.Visible := false;        menuNatxpressReturfraKunde1.Visible := false;
1073        Budlevering1.Visible := false;        menuDaoDirekte1.Visible := false;
1074        Storepakker1.Visible := false;        menuStorePakker.Visible := false;
1075        Smpakker1.Visible := false;        menuSmaaPakker.Visible := false;
1076        Testprinter1.Visible := false;        Testprinter1.Visible := false;
1077        Pakkeshoplevering1.Visible := false;        menuPakkeshop1.Visible := false;
1078        Returpakkerfrapakkeshop1.Visible := false;        menuPakkeshopRetur1.Visible := false;
1079      end;      end;
1080    
1081      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
# Line 1083  begin Line 1083  begin
1083          InitBladhus();          InitBladhus();
1084        end;        end;
1085    
1086  // 20150310: start  
1087      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1088      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1089    
# Line 1124  begin Line 1124  begin
1124      end;      end;
1125    
1126      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1127    
1128      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1129      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1130    
1131  end;  end;
1132    
# Line 1145  var Line 1144  var
1144    BoghandlerNavn : String;    BoghandlerNavn : String;
1145    Koreliste : String;    Koreliste : String;
1146    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1147    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1148    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1149    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1168  begin
1168      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1169      numberString := ClipboardData;      numberString := ClipboardData;
1170      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1171  // 20150311: start  
1172  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1173      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1174      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1175      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1185  begin Line 1183  begin
1183      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1184      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1185      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1186        or (NumberString = 'DAO PAKKESHOP')
1187        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1188            or (LowerCase(NumberString) = 'for stor daodirekte' )
1189      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1190  // 20150311: slut  
1191      begin      begin
1192        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1193        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1195  begin Line 1196  begin
1196      begin      begin
1197        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1198      end;      end;
1199    end;    end;  // Slut ctrl-v
1200    
1201    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1202    begin    begin
1203  // 20150306: start  
1204      if (Length(Trim(Stregkode)) = 0) then      // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1205        Stregkode := Trim(Stregkode);
1206    
1207        if (Length(Stregkode) = 0) then
1208      begin      begin
1209        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1210        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;  
1211        exit;        exit;
1212      end;      end;
 // 20150306: slut  
1213    
 // 20150311: start  
1214      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1215      begin      begin
1216         PakkeshopNulstil.Click();         btnNulstil.Click();
1217         exit;         exit;
1218      end;      end;
1219    
1220      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1221      begin      begin
1222         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1223  // 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  
1224         exit;         exit;
1225      end;      end;
1226    
1227      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1228      begin      begin
1229         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1230         begin         begin
1231            InitLillePakke();            InitLillePakke();
1232         end         end
1233         else         else
1234         begin         begin
1235          //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;  
1236         end;         end;
1237         Stregkode := '';         Stregkode := '';
1238         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1241  begin
1241    
1242      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1243      begin      begin
1244         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1245         begin         begin
1246            InitStorPakke();            InitStorPakke();
1247         end         end
1248         else         else
1249         begin         begin
1250          //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;  
1251         end;         end;
1252         Stregkode := '';         Stregkode := '';
1253         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1254         exit;         exit;
1255      end;      end;
1256    
1257        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1258        begin
1259          if chkForstorTilDirekte.Enabled then
1260          begin
1261            chkForstorTilDirekte.Checked := true;
1262          end
1263          else
1264          begin
1265             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1266          end;
1267          Stregkode := '';
1268          StregkodeST.Caption := StregKode;
1269          exit;
1270        end;
1271    
1272    
1273      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1274      begin      begin
1275         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1276         begin         begin
1277           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1278           begin           begin
1279            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1280           end           end
1281           else           else
1282           begin           begin
1283            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1284           end;           end;
1285         end         end
1286         else         else
1287         begin         begin
1288          //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;  
1289         end;         end;
1290         Stregkode := '';         Stregkode := '';
1291         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1294  begin
1294    
1295      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
1296      begin      begin
1297        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1298        begin        begin
1299           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1300           begin           begin
1301            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1302           end           end
1303           else           else
1304           begin           begin
1305            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1306           end;           end;
1307        end        end
1308        else        else
1309        begin        begin
1310          //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;  
1311        end;        end;
1312        Stregkode := '';        Stregkode := '';
1313        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1322  begin
1322         end         end
1323         else         else
1324         begin         begin
1325          //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;  
1326         end;         end;
1327         Stregkode := '';         Stregkode := '';
1328         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1329         exit;         exit;
1330      end;      end;
1331    
1332  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1333      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  
1334      begin      begin
1335         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1336         begin         begin
# Line 1395  begin Line 1338  begin
1338         end         end
1339         else         else
1340         begin         begin
1341          //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;  
1342         end;         end;
1343         Stregkode := '';         Stregkode := '';
1344         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1353  begin
1353         end         end
1354         else         else
1355         begin         begin
1356          //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;  
1357         end;         end;
1358         Stregkode := '';         Stregkode := '';
1359         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1368  begin
1368         end         end
1369         else         else
1370         begin         begin
1371          //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;  
1372         end;         end;
1373         Stregkode := '';         Stregkode := '';
1374         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1383  begin
1383         end         end
1384         else         else
1385         begin         begin
1386          //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;  
1387         end;         end;
1388         Stregkode := '';         Stregkode := '';
1389         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1398  begin
1398         end         end
1399         else         else
1400         begin         begin
1401          //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;  
1402         end;         end;
1403         Stregkode := '';         Stregkode := '';
1404         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1413  begin
1413         end         end
1414         else         else
1415         begin         begin
1416          //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;  
1417         end;         end;
1418         Stregkode := '';         Stregkode := '';
1419         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1420         exit;         exit;
1421      end;      end;
1422  // 20150311: slut  
1423    
1424      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1425      begin      begin
# Line 1590  begin Line 1467  begin
1467        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1468      end;      end;
1469    
1470      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1471          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1472          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1473          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1474          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1475          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1476      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1477         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1478         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  
1479         exit;         exit;
1480      end;      end;
1481    
1482      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (menuAutomatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1483      begin      begin
1484        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1485        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1626  begin Line 1491  begin
1491              end;              end;
1492            end            end
1493        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1494  (*  
       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  
 *)  
1495        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1496            begin            begin
1497              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1660  begin Line 1508  begin
1508                InitPakkeshoplevering();                InitPakkeshoplevering();
1509              end;              end;
1510            end            end
1511        // Retur kan ikke scannes med 'Automatisk valg'       else if Pakketype = 'PakkeshopRetur' then
 (*  
       else if Pakketype = 'PakkeshopRetur' then  
1512            begin            begin
1513              if Scanningtype <> '6' then              if Scanningtype <> '6' then
1514              begin              begin
1515                Scanningtype := '6';               VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' );
1516                InitReturFraPakkeshop();  
1517                 exit;
1518              end;              end;
1519            end            end
1520  *)  
1521    
1522        else        else
1523            begin   // Her skal komme en alarm og rød skærm            begin
1524               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1525               List1msg := 'Pakken kan ikke scannes med automatisk valg';              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1526               ListBox1.Items.Insert(0,List1Msg);               VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1527               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  
1528               exit;               exit;
1529            end;            end;
1530        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1531      end      end
1532      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if menuAutomatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1533      begin      begin
1534        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1535        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  
1536        exit;        exit;
1537      end;      end;
1538    
1539      if not Automatiskvalg1.Checked then      if not menuAutomatiskvalg1.Checked then
1540      begin      begin
1541        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1542        begin        begin
         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;  
   
     if PakkeshopNulstil.Visible then  
     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;  
   
     if StregKode = 'Lille pakke' then  
     begin  
        InitLillePakke();  
        exit;  
     end;  
1543    
1544      if StregKode = 'Stor pakke' then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        InitStorPakke();  
        exit;  
     end;  
1545    
1546      if StregKode = 'Indtast kundenummer' then          exit;
1547      begin        end;
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
1548      end;      end;
1549    
     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  
1550    
1551    
1552      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and menuAutomatiskTjekkodeStyring.Checked then
1553      begin      begin
1554        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1555        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1556        begin        begin
1557          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1558          begin          begin
1559              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1560              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1561          end;          end;
1562        end;        end;
1563      end;      end;
1564    
1565      if Pakkernormal1.Checked and not Scanogstjekkoden1.Checked then      if menuNatXpress1.Checked and not Scanogstjekkoden1.Checked then
1566        begin        begin
1567          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1568             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1569             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1570             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1571             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1572             Stregkode := '';             Stregkode := '';
1573             InitScreen();             InitScreen();
1574        end        end
1575      else if (PakkeshopLevering1.Checked or Pakkernormal1.Checked) and not Scanogstjekkoden1.Checked then      else if (menuPakkeshop1.Checked or menuNatXpress1.Checked) and not Scanogstjekkoden1.Checked then
1576        begin        begin
1577          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1578             PakkeshopStregkode := Stregkode;             PakkeshopStregkode := Stregkode;
# Line 1824  begin Line 1580  begin
1580             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1581             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1582             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1583             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1584             Stregkode := '';             Stregkode := '';
1585             InitScreen();             InitScreen();
1586        end        end
1587      else if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      else if menuPakkeshop1.Checked or menuNatXpress1.Checked then
1588        if PakkeshopText1.Caption = 'Stregkode' then        if PakkeshopText1.Caption = 'Stregkode' then
1589         begin         begin
1590            if length(Stregkode) > 5 then            if length(Stregkode) > 5 then
# Line 1836  begin Line 1592  begin
1592              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1593              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1594              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1595  // 20150317: start  
1596              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1597  // 20150317: slut  
1598             end             end
1599            else            else
1600             begin             begin
1601                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;  
1602             end;             end;
1603            Stregkode := '';            Stregkode := '';
1604            InitScreen();            InitScreen();
# Line 1860  begin Line 1610  begin
1610             PakkeshopTjekkode := Stregkode;             PakkeshopTjekkode := Stregkode;
1611             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1612             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1613             if (PakkeshopLevering1.Checked) then             if (menuPakkeshop1.Checked) then
1614                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1615             if (Pakkernormal1.Checked) then             if (menuNatXpress1.Checked) then
1616                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1617             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1618           end           end
1619          else          else
1620           begin           begin
1621                if (PakkeshopLevering1.Checked) then                if (menuPakkeshop1.Checked) then
1622                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1623                if (Pakkernormal1.Checked) then                if (menuNatXpress1.Checked) then
1624                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1625                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  
1626                StregKode := '';                StregKode := '';
1627                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1628  // 20150323: slut  
1629                exit;                exit;
1630           end;           end;
1631          Stregkode := '';          Stregkode := '';
1632          InitScreen();          InitScreen();
1633       end;       end;
1634    
1635      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then      if not menuPakkeshop1.Checked and not menuNatXpress1.Checked or (menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (menuNatXpress1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then
1636      begin      begin
1637         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then  
1638           if menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1639            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1640         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if menuNatXpress1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
1641            StregKode := BoghandlerStregkode;            StregKode := BoghandlerStregkode;
1642         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1643         try         try
# Line 1903  begin Line 1647  begin
1647            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1648            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1649            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1650               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1651               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1652              exit;              exit;
1653            end;            end;
1654            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then
1655            begin            begin
1656              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);
1657              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 1928  begin Line 1668  begin
1668              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1669              begin              begin
1670                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1671                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1672                MainForm.Color := clRed;                MainForm.Color := clRed;
1673              end;              end;
1674           end;           end;
1675            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then            if ( menuNatXpress1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then
1676            begin            begin
1677              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1678              if Storepakker1.Checked then              if menuStorePakker.Checked then
1679              begin              begin
1680                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1681              end              end
# Line 1943  begin Line 1683  begin
1683              begin              begin
1684                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1685              end;              end;
1686              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1687            end            end
1688            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked) then
1689            begin            begin
1690              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1691              if Storepakker1.Checked then              if menuStorePakker.Checked then
1692              begin              begin
1693                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1694              end              end
# Line 1956  begin Line 1696  begin
1696              begin              begin
1697                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1698              end;              end;
1699              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1700            end            end
1701            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1702            begin            begin
1703              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;  
1704            end            end
1705            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1706            begin            begin
1707            end            end
1708            else            else
1709            begin            begin
1710              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1711            end;            end;
1712           if not PakkeshopNulstil.Visible then  
1713             if not btnNulstil.Visible then
1714            begin            begin
1715  // 20150310: start  
1716  //            SletStregkodelinieFraListboks2(StregKode);              If (menuDaoDirekte1.Checked) then
 // 20150310: slut  
             If (Budlevering1.Checked) then  
1717              begin              begin
1718                if Storepakker1.Checked then                if menuStorePakker.Checked then
1719                begin                begin
1720                  PlaySound(PWideChar(ScannetOkStorLyd));                  PlaySound(PWideChar(ScannetOkStorLyd));
1721                end                end
# Line 1993  begin Line 1726  begin
1726                InitLillePakke();                InitLillePakke();
1727              end;              end;
1728            end;            end;
1729  // 20150310: start  
1730            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1731  // 20150310: slut  
1732            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1733            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1734            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1759  begin
1759    
1760    Key := #0;    Key := #0;
1761    
1762  end;  
1763    
1764    
1765    
1766    
1767    end; //End of OnKeyPress
1768    
1769    
1770    
1771  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1772  const  const
# Line 2063  end; Line 1803  end;
1803    
1804  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1805  var  var
 // 20150309: start  
 //  i:integer;  
1806    i : Integer;    i : Integer;
1807    wrkAntal : String;    wrkAntal : String;
1808    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1809  // 20150309: slut  
1810    
1811  begin  begin
1812      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if menuDaoDirekte1.Checked or menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked or menuNatXpress1.Checked or menuIndlevering.Checked then
1813      begin      begin
1814        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1815          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1816          begin          begin
1817  // 20150309: start            wrkAntalSenere := 0;//initial Value
1818    
1819            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1820            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1821            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1822            begin            begin
1823              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1824              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1825  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1826  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1827  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1828              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1829            end            end
1830            else     // kun idag            else     // kun idag
1831            begin            begin
# Line 2112  begin Line 1851  begin
1851            begin            begin
1852              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1853            end;            end;
 // 20150309: slut  
1854    
 // 20150310: start  
1855            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1856            begin            begin
1857              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2192  begin Line 1929  begin
1929                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1930              end;              end;
1931            end;            end;
1932  // 20150310: slut  
1933            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1934          end;          end;
1935      end;      end;
# Line 2219  begin Line 1956  begin
1956  end;  end;
1957    
1958  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1959    
1960  begin  begin
1961    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
1962    Pakkernormal1.Visible := false;    menuNatXpress1.Visible := false;
1963    ReturpakkerfraDAO1.Visible := false;    menuNatxpressReturDAO1.Visible := false;
1964    Returpakkerfraboghandler1.Visible := false;    menuNatxpressReturfraKunde1.Visible := false;
1965    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1966    ListBox1.Visible := true;    ListBox1.Visible := true;
1967  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1968  // 20150317: start  
1969  (*    if menuDaoDirekte1.Checked then
   if TestFunktionen = '1' then  
     begin  
       Testforbindelsen1.Visible := true;  
       Testprinter1.Visible := true;  
       Testlyd1.Visible := true;  
       Testlyd2.Visible := true;  
     end  
   else if TestFunktionen = '2' then  
     begin  
       Testforbindelsen1.Enabled := false;  
       Testprinter1.Enabled := false;  
       Testlyd1.Enabled := false;  
       Testlyd2.Enabled := false;  
     end  
   else  
     begin  
       Testforbindelsen1.Visible := false;  
       Testprinter1.Visible := false;  
       Testlyd1.Visible := false;  
       Testlyd2.Visible := false;  
     end;  
   Testprinter1.Visible := false;  
   AlarmLyd := 'Sounds\Alarm.wav';  
   if not FileExists(AlarmLyd) then  
     begin  
       AlarmLyd := '';  
     end;  
   ScannetOkLyd := 'Sounds\Ok.wav';  
   if not FileExists(ScannetOkLyd) then  
     begin  
       ScannetOkLyd := '';  
     end;  
   ScannetOkStorLyd := 'Sounds\Ok_stor.wav';  
   if not FileExists(ScannetOkStorLyd) then  
     begin  
       ScannetOkStorLyd := '';  
     end;  
 *)  
 // 20150317: slut  
   if Budlevering1.Checked then  
1970    begin    begin
1971      IndlesScanningLogFil();      IndlesScanningLogFil();
1972    end;    end;
# Line 2283  begin Line 1978  begin
1978      01 :      01 :
1979            begin;      // NS            begin;      // NS
1980              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1981              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1982              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1983              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1984              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1985              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2295  begin Line 1990  begin
1990      02 :      02 :
1991            begin;    // BK            begin;    // BK
1992              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1993              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1994              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1995              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1996              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1997              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1998              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1999              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2000              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2001              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 2005  begin
2005              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2006             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
2007              begin              begin
2008                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2009              end              end
2010              else              else
2011              begin              begin
2012                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2013              end;              end;
2014              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2015              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2016              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2017              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2018              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2333  begin Line 2028  begin
2028            end;            end;
2029      04 :  begin;           // DBK      04 :  begin;           // DBK
2030              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2031              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
2032              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
2033              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
2034              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
2035              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
2036              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2037              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2038              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2039            end;            end;
# Line 2354  var Line 2049  var
2049    URLStr : String;    URLStr : String;
2050    pakkestorrelse : String;    pakkestorrelse : String;
2051    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2052    
2053      PakkeshopLabel: TPakkeshopLabel;
2054  begin  begin
2055    if RadioButton1.Checked then    if radioStorPakke.Checked then
2056    begin    begin
2057      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
2058    end;    end;
2059    if RadioButton2.Checked then    if radioLillePakke.Checked then
2060    begin    begin
2061      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2062    end;    end;
2063    if Pakkernormal1.Checked then  
2064    
2065      if menuNatXpress1.Checked then
2066    begin    begin
2067       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
2068       begin       begin
# Line 2371  begin Line 2070  begin
2070       end;       end;
2071       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);
2072    end    end
2073    else if ReturpakkerfraDAO1.Checked then    else if menuNatxpressReturDAO1.Checked then
2074    begin    begin
2075       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);
2076    end    end
2077    else if Returpakkerfraboghandler1.Checked then    else if menuNatxpressReturfraKunde1.Checked then
2078    begin    begin
2079       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);
2080    end    end
2081    else if Budlevering1.Checked then    else if menuDaoDirekte1.Checked then
2082    begin    begin
2083       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);
2084    end    end
2085    else if Pakkeshoplevering1.Checked then    else if menuPakkeshop1.Checked then
2086    begin    begin
2087       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);
2088    end    end
2089    else if Returpakkerfrapakkeshop1.Checked then    else if menuPakkeshopRetur1.Checked then
2090    begin    begin
2091       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2092    end    end
2093      else if menuIndlevering.Checked then
2094      begin
2095        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2096      end
2097    else    else
2098    begin    begin
2099      exit;      exit;
2100    end;    end;
2101    
2102      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2103      begin
2104        URLStr := Format(URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2105      end;
2106    
2107    try    try
2108      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2109      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2416  begin Line 2125  begin
2125          end;          end;
2126      end;      end;
2127    end;    end;
2128    
2129    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2130    try    try
2131      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked then
2132       begin       begin
2133        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;
2134        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2135        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2136        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2137        PrintNyLabel := False;        PrintNyLabel := False;
2138  // 20150310: start  
2139        if Pakkeshoplevering1.Checked then        if menuPakkeshop1.Checked then
2140        begin        begin
 // 20150310: slut  
2141          try          try
2142            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2143          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2147  begin
2147          begin          begin
2148            PrintNyLabel := True;            PrintNyLabel := True;
2149          end;          end;
 // 20150310: start  
2150        end;        end;
 // 20150310: slut  
2151       end       end
2152        else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2153        begin
2154    
2155    
2156    
2157    
2158         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2159         if (Kommentar = 'Ok') then
2160         begin
2161           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2162           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2163           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2164           Stregkode := PakkeshopLabel.Stregkode;
2165    
2166           LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2167           chkForstorTilDirekte.Checked := false;
2168    
2169         end;
2170    
2171    
2172        end
2173      else      else
2174       begin       begin
2175        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2449  begin Line 2177  begin
2177        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2178        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2179        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2180        if Budlevering1.Checked then        if menuDaoDirekte1.Checked then
2181          begin          begin
2182          try          try
2183            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
# Line 2474  begin Line 2202  begin
2202          PrintNyLabel := True;          PrintNyLabel := True;
2203        end;        end;
2204      end;      end;
2205    
2206    
2207      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2208      begin      begin
2209        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
2210        begin        begin
2211            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2212            PrintNyLabel := False;            PrintNyLabel := False;
2213        end;        end;
2214      end      end
2215      else if (Budlevering1.Checked) and (Leveringssted <> Sted) then      else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) And (Leveringssted <> '') then
2216      begin      begin
2217         if (Leveringssted = 'E') and (Sted = 'DBK') then         if (Leveringssted = 'E') and (Sted = 'DBK') then
2218         begin         begin
# Line 2490  begin Line 2220  begin
2220         end         end
2221         else         else
2222         begin         begin
2223            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2224            PrintNyLabel := False;            PrintNyLabel := False;
2225         end;         end;
2226      end;      end;
# Line 2511  begin Line 2241  begin
2241    //Label1.Caption := Kommentar;   // bruges hvis der skal vises linieskift - det kan man ikke i en staticText    //Label1.Caption := Kommentar;   // bruges hvis der skal vises linieskift - det kan man ikke i en staticText
2242    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2243    List1msg := TimeToStr(now) + '; ';    List1msg := TimeToStr(now) + '; ';
2244    if Pakkeshoplevering1.Checked then    if menuPakkeshop1.Checked then
2245      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2246    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2247    if RadioButton1.Checked then    if radioStorPakke.Checked then
2248    begin    begin
2249      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2250    end;    end;
2251    if RadioButton2.Checked then    if radioLillePakke.Checked then
2252    begin    begin
2253      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2254    end;    end;
2255    List1msg := List1msg + BoghandlerNavn + '; ';    List1msg := List1msg + BoghandlerNavn + '; ';
2256    if ReturpakkerfraDAO1.Checked then    if menuNatxpressReturDAO1.Checked then
2257    begin    begin
2258      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2259    end;    end;
2260    if Returpakkerfraboghandler1.Checked then    if menuNatxpressReturfraKunde1.Checked then
2261    begin    begin
2262      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2263    end;    end;
2264    if ReturpakkerfraDAO1.Checked or Returpakkerfraboghandler1.Checked then    if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then
2265       List1msg := List1msg + '; ' + List1Pakkestorrelse;       List1msg := List1msg + '; ' + List1Pakkestorrelse;
2266    if length(BoghNr) > 0 then    if length(BoghNr) > 0 then
2267    begin    begin
2268      List1Msg := List1Msg + '; Indtastet ' + BoghNr;      List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2269    end;    end;
2270    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2271    begin    begin
2272       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2273        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2274        begin        begin
2275          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2276        end;        end;
2277        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2278        begin        begin
2279          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2280        end;        end;
2281    end;    end;
2282    if Returpakkerfrapakkeshop1.Checked then    if menuPakkeshopRetur1.Checked then
2283    begin    begin
2284      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2285    end;    end;
2286    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
2287    begin    begin
2288      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen
2289      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen
# Line 2566  begin Line 2296  begin
2296        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2297      end;      end;
2298    end;    end;
2299      if menuIndlevering.Checked then
2300      begin
2301        List1Msg := Stregkode;
2302      end;
2303    
2304    
2305    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2306    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2307    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2308  end;  end;
2309    
2310  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2311  begin  begin
2312    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2313    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2587  pakkeForkertSted : Integer; Line 2323  pakkeForkertSted : Integer;
2323    kontrolKoreliste : string;    kontrolKoreliste : string;
2324    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2325  begin  begin
2326    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2327       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2328    
2329    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2330    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2337  begin
2337    end;    end;
2338    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2339    
2340  // 20150306: start  
2341  //  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
2342    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  
2343    begin    begin
2344        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2345        begin        begin
# Line 2626  begin Line 2361  begin
2361        end;        end;
2362    end    end
2363    else    else
2364    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2365    begin    begin
2366       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2367       begin       begin
2368          PrintNyLabel := false;          PrintNyLabel := false;
2369  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2370          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2371          MainForm.Color := clRed;          MainForm.Color := clRed;
2372          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2373  // 20150306: slut  
2374       end       end
2375       else       else
2376       begin       begin
# Line 2646  begin Line 2380  begin
2380            PrintNyLabel := true;            PrintNyLabel := true;
2381            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2382            nyFarve := Farve;            nyFarve := Farve;
2383            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2384            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2385            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2386            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2387            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2388            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2389  // 20150213: start  
2390            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2391            begin            begin
2392               PrintNyLabel := false;               PrintNyLabel := false;
2393            end;            end;
2394  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2395            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
2396            begin            begin
2397              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2398              MainForm.Color := clRed;              MainForm.Color := clRed;
2399              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2400            end;            end;
2401  // 20150306: slut  
2402         end;         end;
2403         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2404         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2417  begin
2417            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2418            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2419            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2420  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2421            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
2422            begin            begin
2423              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2424              MainForm.Color := clRed;              MainForm.Color := clRed;
2425              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2426            end;            end;
2427  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2428         end;         end;
2429       end;       end;
2430    
2431    end;    end;
2432    
2433    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2434    begin    begin
2435      case BladhusSted of      case BladhusSted of
2436        00 :  begin;        00 :  begin;
# Line 2715  begin Line 2442  begin
2442               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2443  // 20150304: slut  // 20150304: slut
2444                begin                begin
2445                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2446                end;                end;
2447              end;              end;
2448        01 :  begin;        01 :  begin;
2449               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2450                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2451                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2452                begin                begin
2453                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2454                end;                end;
2455              end;              end;
2456        02 :  begin;        02 :  begin;
2457                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2458                begin                begin
2459                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2460                end;                end;
2461              end;              end;
2462        03 :  begin;        03 :  begin;
2463               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2464                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2465                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2466               begin               begin
2467                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2468               end;               end;
2469              end;              end;
2470        04 :  begin;        04 :  begin;
2471                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2472                begin                begin
2473                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2474                end;                end;
2475              end;              end;
2476        else        else
# Line 2752  begin Line 2479  begin
2479    end;    end;
2480    
2481  // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her  // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her
2482    if Pakkernormal1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then    if menuNatXpress1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
2483    begin    begin
2484      exit;      exit;
2485    end;    end;
2486    
2487    if Budlevering1.Checked or ( Sprgefterboghandlernummer1.Enabled and CheckBox1.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then    if menuDaoDirekte1.Checked or ( Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then
2488    begin    begin
2489    end    end
2490    else    else
2491    begin    begin
2492      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
2493      begin      begin
2494        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2495        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2496        begin        begin
2497          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2498        end        end
# Line 2779  begin Line 2506  begin
2506        end;        end;
2507        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2508        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2509        with Printer do  
2510        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2511          BeginDoc;        
         Canvas.Font.Size := FontSizeRute;  
         if (Length(RuteNummer) > 7) then  
         begin  
           Canvas.Font.Size := FontSizeRuteLille;  
         end;  
         Canvas.TextOut(XPosRute,YPosRute, RuteNummer);  
         Canvas.Font.Size := FontSizeKommentar;  
         Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);  
         if (Kommentar = 'Ok') or (Kommentar = 'ALLEREDE SCANNET') then  
         begin  
           Kommentar := '';  
         end;  
         if (BoghandlerNavn = 'PAKKE ER SCANNET') then  
         begin  
           BoghandlerNavn := '';  
         end;  
         Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)  
         Canvas.Font.Size := FontSizeBoghandler;  
         Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);  
         EndDoc;  
       end;  
2512      end;      end;
2513    end;    end;
2514    
2515  end;  end;
2516    
 procedure TMainForm.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
 begin  
     with Printer do  
     begin  
       BeginDoc;  
       Canvas.Font.Size := FontSizeRuteLille;  
       if (kontrolKoreliste <> '') then  
       begin  
         Canvas.TextOut(XPosRute,YPosRute, kontrolKoreliste);  
       end  
       else  
       begin  
         Canvas.TextOut(XPosRute,YPosRute, RuteNummer);  
       end;  
       Canvas.Font.Size := FontSizeKorelisteLille;  
       Canvas.TextOut(XPosKoreliste,YPosKoreliste, Koreliste);  
       if (Sted = 'DBK') or (Sted = '04') then  
       begin  
         Canvas.Font.Size := FontSizeSorteringsfelt1;  
         Canvas.TextOut(XPosSorteringsfelt1,YPosSorteringsfelt1, DBKbane);   // sorteringsoplysning 1  
         Canvas.Font.Size := FontSizeSorteringsfelt1;  
         Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2  
       end;  
       Canvas.Font.Size := FontSizeKommentar;  
       Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);  
 // 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;  
2517    
2518    
2519  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2520  begin  begin
2521      Storepakker1.Checked := true;      menuStorePakker.Checked := true;
2522      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2523  end;  end;
2524    
2525  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2526  begin  begin
2527      Smpakker1.Checked := true;      menuSmaaPakker.Checked := true;
2528      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2529  end;  end;
2530    
2531    
2532  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2533  begin  begin
2534    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2535    begin    begin
2536       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2537    end    end
# Line 2875  begin Line 2542  begin
2542  end;  end;
2543    
2544    
2545  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2546  begin  begin
2547    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2548    begin    begin
2549       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2550    end    end
# Line 2888  begin Line 2555  begin
2555    
2556  end;  end;
2557    
2558  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2559  begin  begin
2560    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2561    begin    begin
2562       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2563    end    end
# Line 2900  begin Line 2567  begin
2567    end;    end;
2568  end;  end;
2569    
2570  procedure TMainForm.Pakkeshoplevering1Click(Sender: TObject);  procedure TMainForm.menuPakkeshop1Click(Sender: TObject);
2571  begin  begin
2572        Scanningtype := '5';        Scanningtype := '5';
2573        InitPakkeshoplevering();        InitPakkeshoplevering();
# Line 2909  end; Line 2576  end;
2576    
2577  procedure TMainForm.NulstilAutomatiskValg();  procedure TMainForm.NulstilAutomatiskValg();
2578  begin  begin
2579      Automatiskvalg1.Checked := false;      menuAutomatiskvalg1.Checked := false;
2580      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2581      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2582  // 20150317: start  
2583      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2584      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2585      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2586      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2587      begin      begin
2588        // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)        // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)
2589        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
2590        PanelValgA.Font.Color := clInactiveCaption;        PanelValgA.Font.Color := clInactiveCaption;
2591        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
2592      end;      end;
2593  // 20150317: slut  // 20150317: slut
2594  end;  end;
# Line 2936  begin Line 2603  begin
2603    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2604    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2605    
2606          // Tjekker urls    try
2607          logTekst := 'Tjekker urls.';      // Tjekker urls
2608          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2609          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2610        SkrivScanningLogFil(logTekst);
2611    
         // Tjekker UrlNormal  
         if PanelValg1.Enabled = true then  
         begin  
           if CheckUrl(UrlNormal) then  
           begin  
             logTekst := 'UrlNormal accepteret: ' + UrlNormal;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlNormal svarer ikke: ' + UrlNormal;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               TjekUrls := '-';   // markerer at der var fejl  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2612    
         // Tjekker UrlReturDAO  
         if PanelValg2.Enabled = true then  
         begin  
           if CheckUrl(UrlReturDAO) then  
           begin  
             logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2613    
2614          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2615          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2616          begin      begin
2617            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2618            begin      end;
             logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2619    
2620          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2621          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2622          begin      begin
2623            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2624            begin      end;
             logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlBudlevering svarer ikke: ' + UrlBudlevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2625    
2626          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2627          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2628          begin      begin
2629            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2630            begin      end;
             logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshoplevering svarer ikke: ' + UrlPakkeshoplevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2631    
2632          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2633          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2634          begin      begin
2635            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2636            begin      end;
             logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturPakkeshop svarer ikke: ' + UrlReturPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2637    
2638          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2639          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2640          or (PanelValg4.Enabled = true) then      begin
2641          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2642            if CheckUrl(UrlManglendeScanninger) then      end;
           begin  
             logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlManglendeScanninger svarer ikke: ' + UrlManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2643    
2644          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2645          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2646          begin      begin
2647            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2648            begin      end;
             logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeScanninger svarer ikke: ' + UrlPakkeshopManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2649    
2650          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2651          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2652          begin      begin
2653            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2654            begin      end;
             logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeReturScanninger svarer ikke: ' + UrlPakkeshopManglendeReturScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2655    
2656          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2657          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2658          begin      begin
2659            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2660            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;  
2661    
2662  // 20150330: start      // Tjekker UrlPakkeshopManglendeReturScanninger
2663          // Tjekker UrlEKLoverforselPakkeshop      if PanelValg6.Enabled = true then
2664          if PanelValg5.Enabled = true then      begin
2665          begin        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2666            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  
2667    
2668          // Tjekker UrlFindPakketype     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2669          if CheckUrl(UrlFindPakketype) then      if PanelValg7.Enabled = true then
2670          begin      begin
2671            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2672            SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2673          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;  
2674    
2675          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforsel
2676          if CheckUrl(UrlSendPrograminfo) then      if PanelValg1.Enabled = true then
2677          begin      begin
2678            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2679            SkrivScanningLogFil(logTekst);      end;
         end  
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2680    
         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;  
2681    
2682        // Tjekker UrlEKLoverforselPakkeshop
2683        if PanelValg5.Enabled = true then
2684        begin
2685          TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2686        end;
2687    
2688    
2689        // Tjekker UrlFindPakketype
2690        TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2691    
2692        // Tjekker UrlSendPrograminfo
2693        TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2694    
2695    
2696    
2697        logTekst := 'urls er ok';
2698        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2699        SkrivScanningLogFil(logTekst);
2700    
2701      Except
2702        TjekUrls := '-';   // markerer at der var fejl
2703    
2704      end;
2705  end;  end;
2706    
2707  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2708  var  const
2709     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2710  begin  begin
2711     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2712     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2713     Result := SystemTimeToDateTime(SystemTime) ;    begin
2714        logTekst := UrlNavn + ' accepteret: ' + Url;
2715        SkrivScanningLogFil(logTekst);
2716      end
2717      else
2718      begin
2719        inc(urlFejl);   // Optæller antal fejl
2720        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2721        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2722        if TjekUrls = '1' then
2723        begin
2724          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2725        end;
2726    
2727        SkrivScanningLogFil(logTekst);
2728    
2729        if TjekUrls = '1' then
2730        begin
2731          ShowMessage(logTekst);
2732          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2733          Application.Terminate;
2734    
2735          raise Exception.Create('UrlFejl');
2736    
2737        end;
2738      end;
2739    
2740  end;  end;
2741    
2742    
2743    
2744  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2745  var  var
2746    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 2757  begin
2757      repeat      repeat
2758        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2759        begin        begin
2760    
2761          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2762          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2763          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2764          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2765          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2766          // (æ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 2797  begin
2797    end;    end;
2798  end;  end;
2799    
2800  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2801  begin  begin
2802    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2803    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2804    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2805    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2806    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2807    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 2819  begin
2819  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2820    if Farve <> '' then    if Farve <> '' then
2821    begin    begin
2822       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  
2823    end;    end;
2824    if (Budlevering1.Checked) then    if (menuDaoDirekte1.Checked) then
2825    begin    begin
2826       InitLillePakke();       InitLillePakke();
2827    end;    end;
# Line 3477  end; Line 2883  end;
2883    
2884  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2885  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;  
 *)  
2886  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2887  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2888       AutomatiskValg1.Checked := true;    menuAutomatiskvalg1.Checked := true;
2889       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2890       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2891  // 20150311: slut  
2892    
2893    
2894  end;  end;
2895    
2896  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.menuNatXpress1Click(Sender: TObject);
2897  begin  begin
2898        Scanningtype := '1';        Scanningtype := '1';
2899        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3514  var Line 2907  var
2907    BoghandlerNavn : String;    BoghandlerNavn : String;
2908    Koreliste : String;    Koreliste : String;
2909    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2910    SmsKode : String;    SmsKode : String;
2911    DBKbane : String;    DBKbane : String;
2912    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 2928  begin
2928      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2929      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2930      MainForm.Color := clRed;      MainForm.Color := clRed;
2931      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2932    end    end
2933    else    else
2934    begin    begin
2935      Falsk := False;      Falsk := False;
2936      Sand := True;  
2937      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2938      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2939      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 2953  var
2953    BoghandlerNavn : String;    BoghandlerNavn : String;
2954    Koreliste : String;    Koreliste : String;
2955    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2956    SmsKode : String;    SmsKode : String;
2957    DBKbane : String;    DBKbane : String;
2958    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 2961  begin
2961    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2962    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2963    Falsk := False;    Falsk := False;
   Sand := True;  
2964    
2965    if (Printer.Printers.Count = 0) then  
2966      if (LabelPrint.GetPrinterCount() = 0) then
2967    begin    begin
2968      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2969    end    end
# Line 3587  begin Line 2978  begin
2978      DBKbane := '999';      DBKbane := '999';
2979      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2980      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2981      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2982    end;    end;
2983    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2984  end;  end;
# Line 3596  procedure TMainForm.Timer1Timer(Sender: Line 2987  procedure TMainForm.Timer1Timer(Sender:
2987  begin  begin
2988    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
2989    begin    begin
2990      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2991    end    end
2992    else    else
2993    begin    begin
# Line 3605  begin Line 2996  begin
2996    end;    end;
2997  end;  end;
2998    
2999  {  
  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;  
3000    
3001  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3002  const  const
# Line 3643  var Line 3005  var
3005   tekst, filversion : String;   tekst, filversion : String;
3006  begin  begin
3007    
3008    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
3009    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';
3010    
3011    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 3027  begin
3027          end          end
3028          else          else
3029          begin          begin
3030            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3031          end;          end;
3032      end      end
3033      else      else
3034      begin      begin
3035        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3036      end;      end;
3037    end;    end;
3038    
# Line 3686  begin Line 3048  begin
3048    
3049  end;  end;
3050    
3051    
3052  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
3053    Rect: TRect; State: TOwnerDrawState);    Rect: TRect; State: TOwnerDrawState);
3054  var  var
# Line 3738  begin Line 3101  begin
3101    
3102    if FileExists(fileName) then    if FileExists(fileName) then
3103    begin    begin
3104      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3105      begin      begin
3106        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3107        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3125  begin
3125    
3126    if FileExists(fileName) then    if FileExists(fileName) then
3127    begin    begin
3128      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3129      begin      begin
3130        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3131        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3132      end      end
3133      else      else
3134      begin      begin
3135        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3136      end;      end;
3137    end    end
3138    else    else
# Line 3778  begin Line 3141  begin
3141    end;    end;
3142  end;  end;
3143    
3144    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3145    begin
3146      Scanningtype := '7';
3147      NulstilAutomatiskValg();
3148      InitIndleveringskode();
3149    end;
3150    
3151  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3152  begin  begin
3153    
3154    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3155    begin    begin
3156       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3157    end    end
3158    else    else
3159    begin    begin
3160       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3161    end;    end;
3162    
3163    
3164  end;  end;
3165    
3166  procedure TMainForm.ReturpakkerfraDAO1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject);
3167  begin  begin
3168        Scanningtype := '2';        Scanningtype := '2';
3169        NulstilAutomatiskValg();        NulstilAutomatiskValg();
3170        InitReturFraDao();        InitReturFraDao();
3171  end;  end;
3172    
3173  procedure TMainForm.Returpakkerfrapakkeshop1Click(Sender: TObject);  procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject);
3174  begin  begin
3175        Scanningtype := '6';        Scanningtype := '6';
3176        InitReturFraPakkeshop();        InitReturFraPakkeshop();
# Line 3809  end; Line 3179  end;
3179    
3180  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3181  begin  begin
3182        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3183        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3184        Pakkernormal1.Checked := true;        menuNatXpress1.Checked := true;
3185        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3186        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3187        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3188        CheckBox1.Enabled := true;  
3189        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3190        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3191        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3192        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3193        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3194        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3195        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3196        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3197        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3198        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3199        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3200        ListBox1.Visible := true;        ListBox1.Visible := true;
3201        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3202        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3203        InitLillePakke();        InitLillePakke();
3204        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3205    
3206          chkForstorTilDirekte.Checked := false;
3207          chkForstorTilDirekte.Enabled := false;
3208    
3209        if BladhusSted = 0 then        if BladhusSted = 0 then
3210        begin        begin
3211          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3841  end; Line 3215  end;
3215    
3216  procedure TMainForm.InitReturFraDao();  procedure TMainForm.InitReturFraDao();
3217  begin  begin
3218        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3219        ReturpakkerfraDAO1.Checked := true;        menuNatxpressReturDAO1.Checked := true;
3220        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3221        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3222        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3223        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3224        CheckBox1.Enabled := false;  
3225        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3226        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3227        CheckBox2.Checked := false;  
3228        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3229        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3230        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3231        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3232        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3233        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3234        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3235        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3236        ListBox1.Visible := true;        ListBox1.Visible := true;
3237        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3238        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3239        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3240    
3241          chkForstorTilDirekte.Checked := false;
3242          chkForstorTilDirekte.Enabled := false;
3243    
3244        InitLillePakke();        InitLillePakke();
3245  end;  end;
3246    
3247  procedure TMainForm.InitReturFraKunde();  procedure TMainForm.InitReturFraKunde();
3248  begin  begin
3249        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3250        Returpakkerfraboghandler1.Checked := true;        menuNatxpressReturfraKunde1.Checked := true;
3251        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3252        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3253        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3254        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3255        CheckBox1.Enabled := false;  
3256        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3257        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3258        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3259        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3260        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3261        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3262        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3263        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3264        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3265        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3266        ListBox1.Visible := true;        ListBox1.Visible := true;
3267        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3268        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3269        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3270    
3271          chkForstorTilDirekte.Checked := false;
3272          chkForstorTilDirekte.Enabled := false;
3273    
3274        InitLillePakke();        InitLillePakke();
3275  end;  end;
3276    
3277  procedure TMainForm.InitDirektelevering();  procedure TMainForm.InitDirektelevering();
3278  begin  begin
3279        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3280        Budlevering1.Checked := true;        menuDaoDirekte1.Checked := true;
3281        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3282        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3283        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3284        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3285        CheckBox1.Enabled := false;  
3286        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3287        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3288        CheckBox2.Checked := false;  
3289        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3290        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3291        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3292        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3293        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3294        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3295        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3296        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3297        ListBox1.Visible := true;        ListBox1.Visible := true;
3298        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3299        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3300        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3301        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3302        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3303        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3304        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3305    
3306          chkForstorTilDirekte.Checked := false;
3307          chkForstorTilDirekte.Enabled := true;
3308    
3309        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3310        begin        begin
3311            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3931  end; Line 3316  end;
3316    
3317  procedure TMainForm.InitPakkeshoplevering();  procedure TMainForm.InitPakkeshoplevering();
3318  begin  begin
3319        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3320        Pakkeshoplevering1.Checked := true;        menuPakkeshop1.Checked := true;
3321        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3322        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3323        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3324        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3325        CheckBox1.Enabled := false;  
3326        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3327        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3328        CheckBox2.Checked := false;  
3329        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3330        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3331        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3332        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3333        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3334        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3335        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3336        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3337        ListBox1.Visible := true;        ListBox1.Visible := true;
3338        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3339        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3340        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3341  // 20150330: start  
3342  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3343        EKLoverforsel.Enabled := true;  
3344  // 20150330: slut        chkForstorTilDirekte.Checked := false;
3345          chkForstorTilDirekte.Enabled := true;
3346    
3347        InitLillePakke();        InitLillePakke();
3348        IndlesScanningLogFil();        IndlesScanningLogFil();
3349        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3969  end; Line 3356  end;
3356    
3357  procedure TMainForm.InitReturFraPakkeshop();  procedure TMainForm.InitReturFraPakkeshop();
3358  begin  begin
3359        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3360        Returpakkerfrapakkeshop1.Checked := true;        menuPakkeshopRetur1.Checked := true;
3361        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3362        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3363        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3364        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3365        CheckBox1.Enabled := false;  
3366        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3367        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3368        CheckBox2.Checked := false;  
3369        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3370        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3371        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3372        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3373        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3374        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3375        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3376        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3377        ListBox1.Visible := true;        ListBox1.Visible := true;
3378        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3379        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3380        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3381        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3382    
3383          chkForstorTilDirekte.Checked := false;
3384          chkForstorTilDirekte.Enabled := false;
3385    
3386    
3387        InitLillePakke();        InitLillePakke();
3388        IndlesScanningLogFil();        IndlesScanningLogFil();
3389        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4002  begin Line 3394  begin
3394        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3395  end;  end;
3396    
3397  procedure TMainForm.Returpakkerfraboghandler1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject);
3398  begin  begin
3399        Scanningtype := '3';        Scanningtype := '3';
3400        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 4011  end; Line 3403  end;
3403    
3404  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3405  begin  begin
3406        AutomatiskTjekkodeStyring1.Enabled := false;        menuIndlevering.Checked := true;
3407        Returpakkerfrapakkeshop1.Checked := true;        menuAutomatiskTjekkodeStyring.Enabled := false;
3408        PakkeshopNulstil.Visible := false;  
3409        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        btnNulstil.Visible := false;
3410          InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3411        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3412        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3413        CheckBox1.Enabled := false;  
3414        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3415        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3416        CheckBox2.Checked := false;  
3417        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3418        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3419        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3420        Smpakker1.Enabled := false;        chkSporgEfterKunde.Checked := false;
3421        Storepakker1.Enabled := false;  
3422        RadioButton1.Enabled := false;  
3423        RadioButton2.Enabled := false;  
3424          menuSmaaPakker.Enabled := false;
3425          menuStorePakker.Enabled := false;
3426          radioStorPakke.Enabled := false;
3427          radioLillePakke.Enabled := false;
3428        ListBox1.Visible := true;        ListBox1.Visible := true;
3429        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3430        DownloadButton01.Enabled := false;  
3431        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3432        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3433          BtnEKLoverforsel.Enabled := false;
3434    
3435          chkForstorTilDirekte.Checked := false;
3436          chkForstorTilDirekte.Enabled := false;
3437    
3438    
3439        InitLillePakke();        InitLillePakke();
3440        IndlesScanningLogFil();        IndlesScanningLogFil();
3441        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4045  begin Line 3447  begin
3447  end;  end;
3448    
3449    
3450  procedure TMainForm.Storepakker1Click(Sender: TObject);  procedure TMainForm.menuStorePakkerClick(Sender: TObject);
3451  begin  begin
3452    InitStorPakke();    InitStorPakke();
3453  end;  end;
3454    
3455  procedure TMainForm.Smpakker1Click(Sender: TObject);  procedure TMainForm.menuSmaaPakkerClick(Sender: TObject);
3456  begin  begin
3457    InitLillePakke();    InitLillePakke();
3458  end;  end;
3459    
3460  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3461  begin  begin
3462    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3463    Smpakker1.Checked := true;    menuSmaaPakker.Checked := true;
 // 20150310: start  
3464  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3465  end;  end;
3466    
3467  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3468  begin  begin
3469    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3470    Storepakker1.Checked := true;    menuStorePakker.Checked := true;
3471  // 20150310: start  // 20150310: start
3472  //  Stregkode := '';  //  Stregkode := '';
3473  // 20150310: slut  // 20150310: slut
3474  end;  end;
3475    
 /// <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]]);  
3476    
     // 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;  
3477    
3478  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3479  begin  begin
# Line 4163  end; Line 3498  end;
3498    
3499  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3500  begin  begin
 // 20150317: start  
3501    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3502    begin    begin
3503       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3510  begin
3510       end;       end;
3511       exit;       exit;
3512    end;    end;
 // 20150317: slut  
3513    
3514    if Smpakker1.Checked then    if menuSmaaPakker.Checked then
3515       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
3516       begin       begin
3517         PlaySound(PWideChar(ScannetOkLyd));         PlaySound(PWideChar(ScannetOkLyd));
3518       end       end
3519       else       else
3520       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3521         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3522       end;       end;
3523    if Storepakker1.Checked then    if menuStorePakker.Checked then
3524       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
3525       begin       begin
3526         PlaySound(PWideChar(ScannetOkStorLyd));         PlaySound(PWideChar(ScannetOkStorLyd));
3527       end       end
3528       else       else
3529       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3530         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3531       end;       end;
3532  end;  end;
3533    
3534    
3535  procedure TMainForm.Budlevering1Click(Sender: TObject);  procedure TMainForm.menuDaoDirekte1Click(Sender: TObject);
3536  begin  begin
3537        Scanningtype := '4';        Scanningtype := '4';
3538        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 4217  begin; Line 3544  begin;
3544    CheckCode();    CheckCode();
3545  end;  end;
3546    
3547  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3548  var  var
3549    WebSvar : String;    WebSvar : String;
3550    URLStr : String;    URLStr : String;
# Line 4227  var Line 3554  var
3554    status, kommentar : String;    status, kommentar : String;
3555    
3556  begin  begin
3557      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3558    
3559      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');
3560      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3561      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3562      StedKode := Sted;      StedKode := Sted;
3563      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3564  // 20150330: start  
3565      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3566      begin      begin
3567        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3568      end;      end;
3569  // 20150330: slut  
3570    
3571      try      try
3572      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4290  begin Line 3617  begin
3617        end;        end;
3618      end;      end;
3619    
3620      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3621    
3622      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
3623    
# Line 4307  begin Line 3634  begin
3634           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3635         end;         end;
3636         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3637         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3638      end;      end;
3639    
3640  end;  end;
# Line 4331  begin Line 3658  begin
3658    else    else
3659      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3660  }  }
3661    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3662    
3663    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3664    CheckCode();    CheckCode();
# Line 4339  end; Line 3666  end;
3666    
3667  end;  end;
3668    
 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;  
3669    
3670  //  //
3671  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 4143  begin
4143    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
4144  end;  end;
4145    
4146  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4147  begin  begin
4148      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4149      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4150  end;  end;
4151    
4152  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4153  const  const
4154    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4155    
# Line 4870  begin Line 4158  begin
4158      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4159  end;  end;
4160    
4161  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4162  begin  begin
4163      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4164      begin      begin
# Line 4879  begin Line 4167  begin
4167      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
4168  end;  end;
4169    
4170  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;  
4171    
4172  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4173  var  var
# Line 4902  var Line 4178  var
4178    I: Integer;    I: Integer;
4179    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4180    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4181    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    antalLiniefelter, antalFelterFundet, linienr : Integer;
4182    pakketyper : TStrings;    //pakketyper : TStrings;
4183      pakketyper : TDictionary<String, Integer>;
4184      tmpAntal : Integer;
4185    
4186    
4187    
4188    antlin : Integer;    antlin : Integer;
4189  // 20150306: start  
4190    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4191  // 20150306: slut  
4192    XmlFelter : TStrings;    //XmlFelter : TStrings;
4193      XmlFelter : TDictionary<String, Integer>;
4194    
4195   begin   begin
4196      XmlFelter := TStringList.Create;  
4197      pakketyper := TStringList.Create;  
4198        XmlFelter := TDictionary<String, Integer>.Create;
4199        pakketyper := TDictionary<String, Integer>.Create;
4200    
4201      linienr := 0;      linienr := 0;
4202      ListBox2.Clear;      ListBox2.Clear;
4203      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
# Line 4927  var Line 4212  var
4212          StedKode := Sted;          StedKode := Sted;
4213        end;        end;
4214    
4215  // 20150310: start        Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4216  (*  
4217      if Returpakkerfrapakkeshop1.Checked then  
4218       begin  
4219        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);      if (Scanningtype = '7') then
      end  
     else if Pakkeshoplevering1.Checked then  
4220       begin       begin
4221        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4222       end       end
4223      else if Pakkernormal1.Checked then      else if (Scanningtype = '6') then
4224       begin       begin
4225        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
      end  
     else  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
4226       end       end
4227      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4228       begin       begin
4229        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4230       end       end
4231      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4232       begin       begin
# Line 4977  var Line 4251  var
4251        begin        begin
4252          // Her skal vi ikke gøre noget - men vi skal forespørge igen          // Her skal vi ikke gøre noget - men vi skal forespørge igen
4253          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
4254    
4255    
4256    
4257        end;        end;
4258        on e:exception do        on e:exception do
4259        begin        begin
# Line 4989  var Line 4266  var
4266      try      try
4267        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4268    
4269  // 20150206: start  
4270        antlin := 0;        antlin := 0;
4271        antlinIdag := 0;        antlinIdag := 0;
4272        antlinSenere := 0;        antlinSenere := 0;
4273  // 20150306: slut  
       antalFelterFundet := 0;  
4274        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4275            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4276            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4277              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4278              begin              begin
4279                 antlin := antlin + 1;                 Inc(antlin);
4280                 // 20150306: start                 // 20150306: start
4281                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4282                begin                begin
4283                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4284                   begin                   begin
4285                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4286                   end                   end
4287                   else                   else
4288                   begin                   begin
4289                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4290                   end;                   end;
4291                end;                end;
4292                 // 20150306: slut                 // 20150306: slut
4293              end;              end;
4294            end;            end;
4295            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4296                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4297                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4298                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4299                  end
4300                else                else
4301                  XmlFelter.values[Node.NodeName] := '1';                begin
4302                    XmlFelter.Add(Node.NodeName, 1);
4303                  end;
4304    
4305        end;        end;
4306        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
4307        antalFelterFundet := 0;        antalFelterFundet := 0;
4308        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4309        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4310  // 20150206: start  
4311  //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4312          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4313    
4314        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4315        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4316        begin        begin
4317          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4318        end;        end;
4319        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4320  // 20150306: slut  
4321        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4322    
4323    
4324        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4325            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4326            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5043  var Line 4328  var
4328                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4329                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4330                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4331              end;              end
4332              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4333                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4334                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4335                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4336              end;              end
4337              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4338                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4339                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4340                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4341              end;              end
4342              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4343                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4344                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4345                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4346              end;              end
4347              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4348                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4349                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4350                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4351                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4352                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4353                    pakketyper.TryGetValue(pakketype, tmpAntal);
4354                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4355                  end
4356                else                else
4357                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4358              end;              end
4359              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4360                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4361                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4362                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4363                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4364                  begin                  begin
4365  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4366                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4367                    begin                    begin
4368                      stregkoderMedTjekkodeArray[linienr] := 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
4369                    end                    end
4370                    else                    else
4371                    begin                    begin
4372                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4373                    end;                    end;
4374  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4375                  end;                  end;
4376              end;              end;
4377    
4378    
4379              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4380              begin              begin
4381                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 5103  var Line 4391  var
4391              end;              end;
4392            end;            end;
4393        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4394    
4395          // Free up the list object  
4396          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4397    
4398    
4399          for pakketype in pakketyper.Keys do
4400          begin
4401            pakketyper.TryGetValue(pakketype, tmpAntal);
4402            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4403          end;
4404    
4405            // Free up the dictionary object
4406        pakketyper.Free;        pakketyper.Free;
4407  // 20150306: start  
4408    
4409    
4410  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');
4411        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4412        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4415  var
4415        end;        end;
4416        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4417        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4418        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4419        begin        begin
4420          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4423  var
4423        begin        begin
4424          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4425        end;        end;
 // 20150309: slut  
4426    
 // 20150310: start  
4427        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4428        begin        begin
4429          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4502  var
4502            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4503          end;          end;
4504        end;        end;
 // 20150310: slut  
4505    
4506      except on e:exception do      except on e:exception do
4507        begin        begin
# Line 5272  end; Line 4563  end;
4563  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4564  var  var
4565     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4566     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4567     imorgenYmd : string;     imorgenYmd : string;
4568     logFilnavn : string;     logFilnavn : string;
4569      error : Integer;     //error : Integer;
4570    
4571  begin  begin
4572    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 4658  begin
4658          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4659          S := buffer;          S := buffer;
4660          SetLength(A,0);          SetLength(A,0);
4661          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4662          if (length(A) < 2) then          if (length(A) < 2) then
4663          begin          begin
4664            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4665          end;          end;
4666            if (length(A) > 1) then            if (length(A) > 1) then
4667            begin            begin
# Line 5446  begin Line 4735  begin
4735          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4736          S := buffer;          S := buffer;
4737          SetLength(A,0);          SetLength(A,0);
4738          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4739          if (length(A) < 3) then          if (length(A) < 3) then
4740          begin          begin
4741            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4742          end;          end;
4743          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4744          begin          begin
# Line 5541  begin Line 4830  begin
4830    result := svar;    result := svar;
4831  end;  end;
4832    
4833    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4834    begin
4835      //ShowMessage('Ændring ikke tilladt');
4836      // Her skal komme en 'rød skærm' alarm
4837      PlaySound(PWideChar(AlarmLyd));
4838      MainForm.Color := clRed;
4839    
4840    
4841      RuteNummerST.Caption := '';
4842      BoghandlerNavnST.Caption := '';
4843      btnNulstil.Visible := true;
4844    
4845      if (strMessage <> '') then
4846      begin
4847        ListBox1.Items.Insert(0, strMessage);
4848        KommentarST.Caption := strMessage;
4849      end;
4850    
4851      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4852    
4853    end;
4854    
4855  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
4856  var  var
4857     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5598  begin Line 4909  begin
4909    result := svar;    result := svar;
4910  end;  end;
4911    
 function TMainForm.GetCurrentPrinterHandle: THandle;  
 var  
   Device, Driver, Port: array[0..255] of Char;  
   hDeviceMode: THandle;  
 begin  
   Printer.GetPrinter(Device, Driver, Port, hDeviceMode);  
   if not OpenPrinter(@Device, Result, nil) then  
     RaiseLastWin32Error;  
 end;  
   
 function TMainForm.SavePChar(p: PChar): PChar;  
 const  
   error: PChar = 'Nil';  
 begin  
   if not Assigned(p) then  
     Result := error  
   else  
     Result := p;  
 end;  
4912    
4913  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4914  begin  begin
4915    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
4916    begin    begin
4917       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
4918    end    end
4919    else    else
4920    begin    begin
4921       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
4922    end;    end;
4923  end;  end;
4924    
4925  function TMainForm.AdobeReaderExists: Boolean;  
4926  var  //Nedarvet fra IParentForm
4927    AReg: TRegistry;  procedure TMainForm.Msg( msg : string);
4928  begin  begin
4929    result:= false;    ShowMessage(msg);
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
4930  end;  end;
4931    
4932  procedure TMainForm.CheckPrintQue(tjektype : string);  //Nedarvet fra IParentForm
4933  type  procedure TMainForm.LogMessage( msg : string);
   TJobs  = array [0..1000] of JOB_INFO_1;  
   PJobs = ^TJobs;  
 var  
   hPrinter: THandle;  
   bytesNeeded, numJobs, i: Cardinal;  
   pJ: PJobs;  
   printerTxt, statusTxt, dokumentTxt: String;  
4934  begin  begin
4935      ListBox1.Items.Insert(0, msg);
4936      SkrivScanningLogFil(msg);
4937    end;
4938    
 // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1  
 //            'Test'  skal vise alarmlinie, samt opdatere listbox1  
 //            'Timer' skal kun vise alarmlinie  
4939    
4940    if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  //Nedarvet fra IParentForm
4941    begin  procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4942      printerTxt := 'Der er fravalgt printer i dette program';  begin
4943      ListBox1.Items.Insert(0,printerTxt);  
4944      SkrivScanningLogFil(printerTxt);    PrinterstatusStaticText1.Caption := txt;
4945    end    if (alert) then
   else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
4946    begin    begin
4947      printerTxt := 'Der er ikke installeret en printer på denne PC';      PrinterstatusStaticText1.Font.Color := clBlack;
4948      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4949      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
4950    end    end
4951    else    else
4952    begin    begin
4953      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4954      try      PrinterstatusStaticText1.Color := clWhite;
4955        EnumJobs(hPrinter, 0, 1000, 1, nil, 0, bytesNeeded, numJobs);      PrinterstatusStaticText1.Transparent := true;
       pJ := AllocMem(bytesNeeded);  
       if not EnumJobs(hPrinter, 0, 1000, 1, pJ, bytesNeeded, bytesNeeded, numJobs) then  
         RaiseLastWin32Error;  
   
       if numJobs = 0 then  
       begin  
         if (tjektype = 'Test') then  
         begin  
           logTekst := printerTxt + ': Ingen dokumenter i kø';  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         PrinterstatusStaticText1.Caption := '';  
         PrinterstatusStaticText1.Color := MainForm.Color;  
       end  
       else   // så er der kø til printeren  
       begin  
         printerTxt := SavePChar(pJ^[0].pPrinterName);  
         if (tjektype = 'Opstart') or (tjektype = 'Test') then  
         begin  
           logTekst := IntToStr(numJobs) + ' dokument(er) i kø til printer: ' + printerTxt;  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         for i := 0 to Pred(numJobs) do  
         begin  
           printerTxt := SavePChar(pJ^[i].pPrinterName);  
           statusTxt := 'Ukendt';  
           if (IntToStr(pJ^[i].Status) = '0') then  
             statusTxt := 'Venter...';  
           if (IntToStr(pJ^[i].Status) = '4096') then  
             statusTxt := 'Printer...';  
           if (IntToStr(pJ^[i].Status) = '8210') then  
             statusTxt := 'Printerfejl';  
           if (IntToStr(pJ^[i].Status) = '8214') then  
             statusTxt := 'Sletter print...';  
   
           dokumentTxt := SavePChar(pJ^[i].pDocument);  
           if (dokumentTxt = '') then  
             dokumentTxt := 'Uden navn';  
   
           if (tjektype = 'Opstart') or (tjektype = 'Test') then  
           begin  
             logTekst := Format('Printer %s, Dokument %d: %s, Status (%d): %s',  
                                     [printerTxt, i+1, dokumentTxt, pJ^[i].Status, statusTxt]);  
             ListBox1.Items.Insert(0,logTekst);  
             SkrivScanningLogFil(logTekst);  
           end;  
   
           if (i = 0) then  
           begin  
             PrinterstatusStaticText1.Caption := printerTxt + ': ' + IntToStr(numJobs) + ' dokument(er) in kø. Dokument status: ' + statusTxt;  
             PrinterstatusStaticText1.Font.Color := clBlack;  
             PrinterstatusStaticText1.Color := MainForm.Color;  
             PrinterstatusStaticText1.Transparent := True;  
             if (numJobs > 3) then  
             begin  
               PrinterstatusStaticText1.Font.Color := clRed;  
               PrinterstatusStaticText1.Color := clWhite;  
               PrinterstatusStaticText1.Transparent := true;  
             end;  
           end;  
   
         end;  
       end  
       finally  
         ClosePrinter(hPrinter);  
     end;  
4956    end;    end;
4957  end;  end;
4958    
4959  function TMainForm.CheckUrl(url:string):boolean;  //Nedarvet fra IParentForm
4960  var  function TMainForm.GetFormObject() : TForm;
   hSession, hfile, hRequest: hInternet;  
   dwindex,dwcodelen :dword;  
   dwcode:array[1..20] of char;  
   res : pchar;  
 begin  
   if pos('http://',lowercase(url))=0 then  
     url := 'http://'+url;  
   Result := false;  
   hSession := InternetOpen('InetURL:/1.0',  
                             INTERNET_OPEN_TYPE_PRECONFIG,  
                             nil,  
                             nil,  
                             0);  
   if assigned(hsession) then  
   begin  
     hfile := InternetOpenUrl(hsession,  
                              pchar(url),  
                              nil,  
                              0,  
                              INTERNET_FLAG_RELOAD,  
                              0);  
     dwIndex := 0;  
     dwCodeLen := 10;  
     HttpQueryInfo(hfile,  
                   HTTP_QUERY_STATUS_CODE,  
                   @dwcode,  
                   dwcodeLen,  
                   dwIndex);  
     res := pchar(@dwcode);  
     result:= (res ='200') or (res ='302');  
     if assigned(hfile) then  
       InternetCloseHandle(hfile);  
     InternetCloseHandle(hsession);  
   end;  
   
 end;  
   
 // 20150310: start  
 procedure TMainForm.RoundCornerOf(Control: TWinControl);  
 var  
    R: TRect;  
    Rgn: HRGN;  
4961  begin  begin
4962     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;  
4963  end;  end;
 // 20150310: slut  
4964    
4965  end.  end.
4966    

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

  ViewVC Help
Powered by ViewVC 1.1.20