--- dao/DelphiScanner/Main.pas 2016/08/21 22:34:01 3097 +++ dao/DelphiScanner/Main.pas 2016/10/19 06:59:57 3124 @@ -203,6 +203,8 @@ procedure SetPrinterstatusText( txt: string; alert: boolean); function GetFormObject() : TForm; function GetXMLDocument() : TXMLDocument; + procedure chkEmballageRepareretClick(Sender: TObject); + procedure chkUdenforSpecifikationClick(Sender: TObject); @@ -245,7 +247,8 @@ procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = ''); procedure CheckCode(); - procedure IndlesManglendeScanninger(); + procedure IndlesManglendeScanningerAntal(); + procedure IndlesManglendeScanningerListe(); procedure IndlesRuteskiftFil(var filnavn : string); procedure IndlesKontrolFil(var filnavn : string); procedure IndlesScanningLogFil(); @@ -970,41 +973,43 @@ // Opbygger PanelManglendePakker information gemScanningtype := Scanningtype; - if PanelValg6.Enabled then - begin - Scanningtype := '6'; - IndlesManglendeScanninger(); - end; - - if PanelValg5.Enabled then - begin - Scanningtype := '5'; - IndlesManglendeScanninger(); - end; - - if PanelValg4.Enabled then - begin - Scanningtype := '4'; - IndlesManglendeScanninger(); - end; - - if PanelValg3.Enabled then - begin - Scanningtype := '3'; - IndlesManglendeScanninger(); - end; - - if PanelValg2.Enabled then - begin - Scanningtype := '2'; - IndlesManglendeScanninger(); - end; + IndlesManglendeScanningerAntal(); - if PanelValg1.Enabled then - begin - Scanningtype := '1'; - IndlesManglendeScanninger(); - end; +// if PanelValg6.Enabled then +// begin +// Scanningtype := '6'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg5.Enabled then +// begin +// Scanningtype := '5'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg4.Enabled then +// begin +// Scanningtype := '4'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg3.Enabled then +// begin +// Scanningtype := '3'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg2.Enabled then +// begin +// Scanningtype := '2'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg1.Enabled then +// begin +// Scanningtype := '1'; +// IndlesManglendeScanningerAntal(); +// end; Scanningtype := gemScanningtype; @@ -1443,13 +1448,24 @@ if (chkUdenforSpecifikation.Checked = True) then begin URLStr := Format(Config.URLUdenforSpecifikation,[Sted,Stregkode]); - //ShowMessage( URLStr); + //InputBox( '1', '1', URLStr); - WebSvar := IdHTTP1.Get(Config.URLUdenforSpecifikation); - //ShowMessage( WebSvar ); + WebSvar := IdHTTP1.Get(URLStr); + //InputBox( '2', '2', WebSvar ); chkUdenforSpecifikation.Checked := False; LabelPrint.PrintLabel(Stregkode); + + StregkodeST.Caption := ''; + Stregkode := ''; + + RuteNummerST.Caption := ''; + BoghandlerNavnST.Caption := ''; + KommentarST.Caption := 'Retur til leverandør'; + + + + exit; //leave procedure end; @@ -1892,7 +1908,7 @@ BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt'; BladhusKontrolfil_lokal := 'RuteKontrol.txt'; DownloadBladhusKontrolfil(); - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; 02 : begin; // BK @@ -1905,7 +1921,7 @@ BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; 03 : begin; // FD @@ -1931,7 +1947,7 @@ BladhusKontrolfil_server := 'frafd/RuteKontrol.txt'; BladhusKontrolfil_lokal := 'RuteKontrol.txt'; DownloadBladhusKontrolfil(); - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; 04 : begin; // DBK Testprinter1.Visible := true; @@ -2070,8 +2086,10 @@ RuteNummer := PakkeshopLabel.Koreliste + ' -> ' + PakkeshopLabel.PakkeshopTurid; Stregkode := PakkeshopLabel.Stregkode; - LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel ); - chkForstorTilDirekte.Checked := false; + LabelPrint.PrintLabel(PakkeshopLabel.Stregkode); + +// LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel ); +// chkForstorTilDirekte.Checked := false; end; @@ -2223,6 +2241,13 @@ kontrolKoreliste : string; nytRuteNummer, nyFarve : String; begin +// if (PrintNyLabel = True OR chkAltidPrintLabel.Checked = True) then +// begin +// LabelPrint.PrintLabel( Stregkode ); +// end; +// +// exit; + if menuDaoDirekte1.Checked then RuteNummerST.Color := TUtils.HexToTColor(Farve); @@ -2287,10 +2312,10 @@ logTekst := RightStr(List1Msg, Length(List1Msg)-10); SkrivScanningLogFil(logTekst); - if (Config.PrinterNavn = 'Ingen') then - begin - PrintNyLabel := false; - end; +// if (Config.PrinterNavn = 'Ingen') then +// begin +// PrintNyLabel := false; +// end; if (PrintNyLabel = false) then // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm begin @@ -2342,7 +2367,8 @@ if PrintNyLabel or (RuteNummer = 'Rutenr') then // 20150304: slut begin - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; 01 : begin; @@ -2350,13 +2376,15 @@ // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr') begin - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; 02 : begin; if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test begin - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; 03 : begin; @@ -2364,13 +2392,15 @@ // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr') begin - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; 04 : begin; if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test begin - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; else @@ -2407,8 +2437,9 @@ logTekst := logTekst + ' for '+BoghandlerNavn; SkrivScanningLogFil(logTekst); - LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ; - + //LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ; + LabelPrint.PrintLabel( Stregkode ); + end; end; @@ -2442,6 +2473,22 @@ end; +procedure TMainForm.chkUdenforSpecifikationClick(Sender: TObject); +begin + if (chkUdenforSpecifikation.Checked = true) then + begin + chkEmballageRepareret.Checked := false; + end; +end; + +procedure TMainForm.chkEmballageRepareretClick(Sender: TObject); +begin + if (chkEmballageRepareret.Checked = true) then + begin + chkUdenforSpecifikation.Checked := false; + end; +end; + procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject); begin if chkAltidPrintLabel.Checked then @@ -2455,6 +2502,8 @@ end; + + procedure TMainForm.chkScanTjekkodeClick(Sender: TObject); begin if chkScanTjekkode.Checked then @@ -2839,6 +2888,8 @@ SmsKode := '999999'; DBKbane := '999'; Leveringssted := 'XXX'; + + PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk); FocusControl(StregkodeST); end; @@ -2856,6 +2907,7 @@ SmsKode : String; DBKbane : String; Leveringssted : String; + LabelData : TLabelData; begin RuteNummer := 'Rutenr'; Kommentar := '***** Kommentar *****'; @@ -2867,18 +2919,30 @@ begin ShowMessage('Der er ikke installeret en printer på denne PC.'); end - else if Config.PrinterNavn = 'Ingen' then - begin - ShowMessage('Der er fravalgt printer i dette program.'); - end +// else if Config.PrinterNavn = 'Ingen' then //Det giver ikke længere mening at kunne fravælge printer +// begin +// ShowMessage('Der er fravalgt printer i dette program.'); +// end else begin UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, ''); - SmsKode := '999999'; - DBKbane := '999'; - Leveringssted := 'XXX'; - PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk); +// SmsKode := '999999'; +// DBKbane := '999'; +// Leveringssted := 'XXX'; +// PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk); + + + LabelData := TLabelData.Create(nil); + LabelData.LabelType := 'simpel'; + LabelData.SimpelLinie1 := '999999'; + LabelData.SimpelLinie2 := '999'; + LabelData.SimpelLinie3 := 'xxx'; + LabelPrint.PrintLabelData(Labeldata); + LabelPrint.CheckPrintQue('Test', Config.PrinterNavn); + + LabelData.Free(); + end; FocusControl(StregkodeST); end; @@ -3109,7 +3173,7 @@ if BladhusSted = 0 then begin IndlesScanningLogFil(); - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; end; @@ -3209,7 +3273,7 @@ if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then begin IndlesScanningLogFil(); - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; end; @@ -3248,7 +3312,7 @@ IndlesScanningLogFil(); if BladhusSted = 0 then begin - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; @@ -3288,7 +3352,7 @@ IndlesScanningLogFil(); if BladhusSted = 0 then begin - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; @@ -3340,7 +3404,7 @@ IndlesScanningLogFil(); if BladhusSted = 0 then begin - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; @@ -4054,7 +4118,7 @@ crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed begin - IndlesManglendeScanninger(); + IndlesManglendeScanningerListe(); ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode end; @@ -4068,8 +4132,118 @@ end; +procedure TMainForm.IndlesManglendeScanningerAntal(); +var + Node: IXMLNode; + + URLStr : String; + StedKode : String; + WebSvar : String; + + i : Integer; + + PakkeType : String; + TotalAntal : String; + AntalProdDato : String; + + CurrentPanel : TPanel; + +begin + ListBox2.Clear(); + + if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then + begin + StedKode := BladhusStedKode[BladhusSted]; + end + else + begin + StedKode := Sted; + end; + + URLStr := Format(Config.UrlHentPakkeAntal, [StedKode]); + + + try + WebSvar := IdHTTP1.Get(URLStr); + except + on e:EIdConnClosedGracefully do + begin + // Her skal vi ikke gøre noget - men vi skal forespørge igen + WebSvar := IdHTTP1.Get(URLStr); + end; + on e:exception do + begin + ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message); + logTekst := 'Fejl i web forespørgsel: '+e.Message; + SkrivScanningLogFil(logTekst); + raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]); + end; + end; + + + + try + + XMLDocument1.LoadFromXML(WebSvar); + + for i:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin + Node:= XMLDocument1.DocumentElement.ChildNodes[I]; + + PakkeType := Node.ChildValues['PakkeType']; + TotalAntal := Node.ChildValues['TotalAntal']; + AntalProdDato := Node.ChildValues['AntalProdDato']; + + + CurrentPanel := nil; + + if (PakkeType = 'natxpress') then + begin + CurrentPanel := PanelManglendePakker1; + end; + + if (PakkeType = 'daodirekte') then + begin + CurrentPanel := PanelManglendePakker4; + end; + + if (PakkeType = 'pakkeshop') then + begin + CurrentPanel := PanelManglendePakker5; + end; + + if (CurrentPanel <> nil) then + begin + CurrentPanel.Caption := TotalAntal; + if ( StrToInt(TotalAntal) > 0) then + begin + CurrentPanel.Visible := true; + end + else + begin + CurrentPanel.Visible := false; + end; + end; + + + end; + + + except on e:exception do + begin + ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message); + logTekst := 'Fejl i XML-format: '+e.Message; + SkrivScanningLogFil(logTekst); + raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]); + end; + end; + + + + ListBox1.Items.Insert(0,'Pakkeantal indlæst - klar til scanning'); + +end; -procedure TMainForm.IndlesManglendeScanninger(); +procedure TMainForm.IndlesManglendeScanningerListe(); var WebSvar : String; URLStr : String; @@ -4232,6 +4406,7 @@ logTekst := logTekst + '.'; SkrivScanningLogFil(logTekst); + time.stop('Antal Linier2');//DEBUG for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin @@ -4292,7 +4467,7 @@ if antalFelterFundet = antalLiniefelter then begin if (ScanningType = '1') then - ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus) + ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus) else if (ScanningType = '4') then ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar) else if (ScanningType = '5') then