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

Legend:
Removed from v.2654  
changed lines
  Added in v.3057

  ViewVC Help
Powered by ViewVC 1.1.20