/[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 2780 by torben, Tue Nov 24 15:35:17 2015 UTC revision 3038 by torben, Tue May 31 11:50:42 2016 UTC
# Line 25  uses Line 25  uses
25    ParentForm,    ParentForm,
26    LabelPrint,    LabelPrint,
27    Configuration,    Configuration,
28    Vcl.Imaging.pngimage    Vcl.Imaging.pngimage,
29      Generics.Collections
30    
31    ;    ;
32    
# Line 104  type Line 105  type
105      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
106      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
107      menuIndlevering: TMenuItem;      menuIndlevering: TMenuItem;
108        chkForstorTilDirekte: TCheckBox;
109        chkEmballageRepareret: TCheckBox;
110    
111    
112    
# Line 192  type Line 195  type
195    
196    
197    
   
198    //Nedarvet fra IParentForm    //Nedarvet fra IParentForm
199      procedure Msg( msg : string);
200    procedure LogMessage( msg : string);    procedure LogMessage( msg : string);
201    procedure SetPrinterstatusText( txt: string; alert: boolean);    procedure SetPrinterstatusText( txt: string; alert: boolean);
202    function GetFormObject() : TForm;    function GetFormObject() : TForm;
# Line 205  type Line 208  type
208      SkrivLog : String;      SkrivLog : String;
209      Sted : String;      Sted : String;
210      StedNavn : String;      StedNavn : String;
211      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering,
212                UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,
213                UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel, URLOmdirigerTilPakkeshop : String;
214    
215      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
216    
# Line 213  type Line 218  type
218      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
219      ScanTjekkode : String;      ScanTjekkode : String;
220      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
221      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;  
222      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop,
223              FarveIndlevering : String;
224    
225        Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop,
226              TitelIndlevering : String;
227    
228      AlarmLyd : String;      AlarmLyd : String;
229      ScannetOkLyd : String;      ScannetOkLyd : String;
# Line 253  type Line 262  type
262      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
263      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
264      procedure VisAlarmSkaerm(strMessage: string);      procedure VisAlarmSkaerm(strMessage: string);
265        function InjectURL(Url : String) : String;
266    
267    public    public
268      { Public declarations }      { Public declarations }
# Line 351  begin Line 361  begin
361        else if (Sted = 'BR') then        else if (Sted = 'BR') then
362          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
363        else if (Sted = 'BK') then        else if (Sted = 'BK') then
364          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
365          else if (Sted = 'TK') then
366            begin StedNavn := 'BK/Trykkompagniet: '; end
367        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
368          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
369        else if (Sted = '1') then        else if (Sted = '1') then
370          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
371        else if (Sted = '2') then        else if (Sted = '2') then
# Line 494  begin Line 506  begin
506       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
507  end;  end;
508    
509    function TMainForm.InjectURL(Url : String) : String;
510    begin
511    
512      Url := Url + '&ver=' + TUtils.URLEncode( TUtils.Sto_GetFmtFileVersion(''));
513      Url := Url + '&host=' + TUtils.URLEncode( TUtils.GetComputerNameHelper());
514      Url := Url + '&user=' + TUtils.URLEncode( TUtils.GetCurrentUserName());
515    
516      Result := Url;
517    end;
518    
519  //InitForm kaldes før FormCreate  //InitForm kaldes før FormCreate
520  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
# Line 544  begin Line 565  begin
565      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
566      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
567      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
568    
569      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');
570        UrlFindPakketype := InjectURL(UrlFindPakketype);
571    
572      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');
573        UrlSendPrograminfo := InjectURL(UrlSendPrograminfo);
574    
575      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');
576        UrlNormal := InjectURL(UrlNormal);
577    
578      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');
579        UrlReturDAO := InjectURL(UrlReturDAO);
580    
581      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');
582        UrlReturBoghandler := InjectURL(UrlReturBoghandler);
583    
584      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');
585        UrlBudlevering := InjectURL(UrlBudlevering);
586    
587      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');
588        UrlManglendeScanninger := InjectURL(UrlManglendeScanninger);
589    
590      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');
591        UrlEKLoverforsel := InjectURL(UrlEKLoverforsel);
592    
593      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');
594        UrlEKLoverforselPakkeshop := InjectURL(UrlEKLoverforselPakkeshop);
595    
596      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');
597        UrlPakkeshoplevering := InjectURL(UrlPakkeshoplevering);
598    
599      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');
600        UrlReturPakkeshop := InjectURL(UrlReturPakkeshop);
601    
602      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');
603      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := InjectURL(UrlPakkeshopManglendeScanninger);
604    
605        UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
606        UrlPakkeshopManglendeReturScanninger := InjectURL(UrlPakkeshopManglendeReturScanninger);
607    
608      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
609        UrlIndleveringsPakke := InjectURL(UrlIndleveringsPakke);
610    
611      UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');      UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
612        UrlIndleveringsPakkeManglendeScanninger := InjectURL(UrlIndleveringsPakkeManglendeScanninger);
613    
614        URLOmdirigerTilPakkeshop := ReadString('Settings', 'URLOmdirigerTilPakkeshop','http://omdeling.info/webservices/pakkeshop/PakkeKontrolOmdirigerTilPakkeshop.php?sted=%s&stregkode=%s');
615        URLOmdirigerTilPakkeshop := InjectURL(URLOmdirigerTilPakkeshop);
616    
617    
618    
# Line 680  begin Line 730  begin
730  {$IfDef STED_BK}  {$IfDef STED_BK}
731      SpecialVersionSted := 'BK';      SpecialVersionSted := 'BK';
732  {$EndIf}  {$EndIf}
733    {$IfDef STED_TK}
734        SpecialVersionSted := 'TK';// BK-Trykkompagniet
735    {$EndIf}
736  {$IfDef STED_DBK}  {$IfDef STED_DBK}
737      SpecialVersionSted := 'DBK';      SpecialVersionSted := 'DBK';
738  {$EndIf}  {$EndIf}
# Line 711  begin Line 764  begin
764         SpecialVersionSted := '01';         SpecialVersionSted := '01';
765         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
766      end;      end;
767    
768      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
769      begin      begin
770         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
771         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
772    
773    
774          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
775          Sted := SpecialVersionSted;
776         // her skal vi også disable de knapper BK ikke kan bruge
777          PanelValg2.Enabled := false;
778          PanelValg2.Font.Color := clInactiveCaption;
779          PanelValg3.Enabled := false;
780          PanelValg3.Font.Color := clInactiveCaption;
781          //PanelValg6.Enabled := false;
782          //PanelValg6.Font.Color := clInactiveCaption;
783    
784         // her skal vi også disable de menupunkter FD ikke kan bruge
785          ReturpakkerfraDAO1.Enabled := false;
786          Returpakkerfraboghandler1.Enabled := false;
787    
788          //Returpakkerfrapakkeshop1.Enabled := false;
789    
790      end;      end;
791    
792      if SpecialVersionSted = 'BK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
793      begin      begin
794        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
795        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
# Line 758  begin Line 830  begin
830        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
831        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
832        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
833        PanelValg7.Enabled := false;  
       PanelValg7.Font.Color := clInactiveCaption;  
834    
835       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
836        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
# Line 1116  begin Line 1187  begin
1187      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1188      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1189      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1190        or (NumberString = 'DAO PAKKESHOP')
1191        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1192            or (LowerCase(NumberString) = 'for stor daodirekte' )
1193      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1194    
1195      begin      begin
# Line 1126  begin Line 1200  begin
1200      begin      begin
1201        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1202      end;      end;
1203    end;    end;  // Slut ctrl-v
1204    
1205    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1206    begin    begin
1207      if (Length(Trim(Stregkode)) = 0) then  
1208        // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1209        Stregkode := Trim(Stregkode);
1210    
1211        if (Length(Stregkode) = 0) then
1212      begin      begin
1213        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1214    
# Line 1180  begin Line 1258  begin
1258         exit;         exit;
1259      end;      end;
1260    
1261        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1262        begin
1263          if chkForstorTilDirekte.Enabled then
1264          begin
1265            chkForstorTilDirekte.Checked := true;
1266          end
1267          else
1268          begin
1269             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1270          end;
1271          Stregkode := '';
1272          StregkodeST.Caption := StregKode;
1273          exit;
1274        end;
1275    
1276    
1277      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1278      begin      begin
1279         if chkSporgEfterKunde.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
# Line 1660  begin Line 1754  begin
1754    
1755    Key := #0;    Key := #0;
1756    
1757    
1758    
1759    
1760    
1761    
1762  end; //End of OnKeyPress  end; //End of OnKeyPress
1763    
1764    
1765    
1766  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1767  const  const
1768    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
# Line 1991  begin Line 2092  begin
2092    begin    begin
2093      exit;      exit;
2094    end;    end;
2095    
2096      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2097      begin
2098        URLStr := Format(URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2099      end;
2100    
2101    try    try
2102      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2103      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2012  begin Line 2119  begin
2119          end;          end;
2120      end;      end;
2121    end;    end;
2122    
2123    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2124    try    try
2125      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then
# Line 2035  begin Line 2143  begin
2143          end;          end;
2144        end;        end;
2145       end       end
2146      else if menuIndlevering.Checked then      else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2147      begin      begin
2148    
2149    
# Line 2050  begin Line 2158  begin
2158         Stregkode := PakkeshopLabel.Stregkode;         Stregkode := PakkeshopLabel.Stregkode;
2159    
2160         LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );         LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2161           chkForstorTilDirekte.Checked := false;
2162    
2163       end;       end;
2164    
# Line 2862  begin Line 2971  begin
2971      SmsKode := '999999';      SmsKode := '999999';
2972      DBKbane := '999';      DBKbane := '999';
2973      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2974      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      LabelPrint.TestZpl();
2975        //PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2976      LabelPrint.CheckPrintQue('Test', PrinterNavn);      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2977    end;    end;
2978    FocusControl(StregkodeST);    FocusControl(StregkodeST);
# Line 3086  begin Line 3196  begin
3196        BtnEKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3197        InitLillePakke();        InitLillePakke();
3198        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3199    
3200          chkForstorTilDirekte.Checked := false;
3201          chkForstorTilDirekte.Enabled := false;
3202    
3203        if BladhusSted = 0 then        if BladhusSted = 0 then
3204        begin        begin
3205          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3117  begin Line 3231  begin
3231        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3232        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3233        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3234    
3235          chkForstorTilDirekte.Checked := false;
3236          chkForstorTilDirekte.Enabled := false;
3237    
3238        InitLillePakke();        InitLillePakke();
3239  end;  end;
3240    
# Line 3143  begin Line 3261  begin
3261        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3262        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3263        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3264    
3265          chkForstorTilDirekte.Checked := false;
3266          chkForstorTilDirekte.Enabled := false;
3267    
3268        InitLillePakke();        InitLillePakke();
3269  end;  end;
3270    
# Line 3174  begin Line 3296  begin
3296        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3297        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3298        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3299    
3300          chkForstorTilDirekte.Checked := false;
3301          chkForstorTilDirekte.Enabled := true;
3302    
3303        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3304        begin        begin
3305            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3209  begin Line 3335  begin
3335    
3336        BtnEKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3337    
3338          chkForstorTilDirekte.Checked := false;
3339          chkForstorTilDirekte.Enabled := true;
3340    
3341        InitLillePakke();        InitLillePakke();
3342        IndlesScanningLogFil();        IndlesScanningLogFil();
3343        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3244  begin Line 3373  begin
3373        BtnDownloadKontrolfil.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3374        BtnOpdaterListen.Enabled := true;        BtnOpdaterListen.Enabled := true;
3375        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3376    
3377          chkForstorTilDirekte.Checked := false;
3378          chkForstorTilDirekte.Enabled := false;
3379    
3380    
3381        InitLillePakke();        InitLillePakke();
3382        IndlesScanningLogFil();        IndlesScanningLogFil();
3383        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3291  begin Line 3425  begin
3425        BtnDownloadKontrolfil.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3426        BtnOpdaterListen.Enabled := true;        BtnOpdaterListen.Enabled := true;
3427        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3428    
3429          chkForstorTilDirekte.Checked := false;
3430          chkForstorTilDirekte.Enabled := false;
3431    
3432    
3433        InitLillePakke();        InitLillePakke();
3434        IndlesScanningLogFil();        IndlesScanningLogFil();
3435        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4034  var Line 4173  var
4173    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4174    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4175    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4176    pakketyper : TStrings;    //pakketyper : TStrings;
4177      pakketyper : TDictionary<String, Integer>;
4178      tmpAntal : Integer;
4179    
4180    
4181    
4182    antlin : Integer;    antlin : Integer;
4183    
4184    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4185    
4186    XmlFelter : TStrings;    //XmlFelter : TStrings;
4187      XmlFelter : TDictionary<String, Integer>;
4188    
4189   begin   begin
4190      XmlFelter := TStringList.Create;  
4191      pakketyper := TStringList.Create;  
4192        XmlFelter := TDictionary<String, Integer>.Create;
4193        pakketyper := TDictionary<String, Integer>.Create;
4194    
4195      linienr := 0;      linienr := 0;
4196      ListBox2.Clear;      ListBox2.Clear;
4197      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 4058  var Line 4206  var
4206          StedKode := Sted;          StedKode := Sted;
4207        end;        end;
4208    
4209          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4210    
4211    
4212    
4213      if (Scanningtype = '7') then      if (Scanningtype = '7') then
# Line 4117  var Line 4267  var
4267            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4268              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4269              begin              begin
4270                 antlin := antlin + 1;                 Inc(antlin);
4271                 // 20150306: start                 // 20150306: start
4272                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4273                begin                begin
4274                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4275                   begin                   begin
4276                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4277                   end                   end
4278                   else                   else
4279                   begin                   begin
4280                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4281                   end;                   end;
4282                end;                end;
4283                 // 20150306: slut                 // 20150306: slut
4284              end;              end;
4285            end;            end;
4286            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4287                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4288                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4289                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4290                  end
4291                else                else
4292                  XmlFelter.values[Node.NodeName] := '1';                begin
4293                    XmlFelter.Add(Node.NodeName, 1);
4294                  end;
4295    
4296        end;        end;
4297        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
# Line 4144  var Line 4299  var
4299        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4300        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4301    
4302    
4303          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4304    
4305        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4306        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4307        begin        begin
# Line 4152  var Line 4310  var
4310        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4311    
4312        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4313    
4314    
4315        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4316            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4317            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 4159  var Line 4319  var
4319                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4320                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4321                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4322              end;              end
4323              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4324                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4325                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4326                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4327              end;              end
4328              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4329                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4330                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4331                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4332              end;              end
4333              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4334                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4335                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4336                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4337              end;              end
4338              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4339                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4340                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4341                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4342                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4343                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4344                    pakketyper.TryGetValue(pakketype, tmpAntal);
4345                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4346                  end
4347                else                else
4348                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4349              end;              end
4350              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4351                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4352                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4353                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
# Line 4202  var Line 4365  var
4365                    linienr := linienr + 1;                    linienr := linienr + 1;
4366                  end;                  end;
4367              end;              end;
4368    
4369    
4370              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4371              begin              begin
4372                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 4217  var Line 4382  var
4382              end;              end;
4383            end;            end;
4384        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4385    
4386          // Free up the list object  
4387          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4388    
4389    
4390          for pakketype in pakketyper.Keys do
4391          begin
4392            pakketyper.TryGetValue(pakketype, tmpAntal);
4393            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4394          end;
4395    
4396            // Free up the dictionary object
4397        pakketyper.Free;        pakketyper.Free;
4398    
4399    
4400    
4401  //      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.');
4402        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4403        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 4665  begin Line 4839  begin
4839      KommentarST.Caption := strMessage;      KommentarST.Caption := strMessage;
4840    end;    end;
4841    
4842      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4843    
4844  end;  end;
4845    
4846  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
# Line 4738  begin Line 4914  begin
4914  end;  end;
4915    
4916    
4917    //Nedarvet fra IParentForm
4918    procedure TMainForm.Msg( msg : string);
4919    begin
4920      ShowMessage(msg);
4921    end;
4922    
4923  //Nedarvet fra IParentForm  //Nedarvet fra IParentForm
4924  procedure TMainForm.LogMessage( msg : string);  procedure TMainForm.LogMessage( msg : string);

Legend:
Removed from v.2780  
changed lines
  Added in v.3038

  ViewVC Help
Powered by ViewVC 1.1.20