--- dao/DelphiScanner/PakkeshopLabels.pas 2015/08/26 13:09:38 2677 +++ dao/DelphiScanner/LabelData.pas 2016/08/23 14:08:44 3107 @@ -1,4 +1,4 @@ -unit PakkeshopLabels; +unit LabelData; // Denne klasse bruges til at samle alle de parametre der skal bruges omkring indleveringspakker // Constructor'en har selv ansvaret for at pille de relevante data ud af XML dokumentet @@ -6,12 +6,16 @@ interface uses - XMLDoc; + XMLDoc, + Xml.XMLIntf, + SysUtils; type - TPakkeshopLabel = class + TLabelData = class public + LabelType : string; + Overskrift : string; Stregkode : string; @@ -38,42 +42,90 @@ Koreliste : string; +// Shop2Direkte : string; + + SimpelLinie1, SimpelLinie2, SimpelLinie3: String; + + ZPL : string; + constructor Create(xmlDoc : TXMLDocument); + function GetValue(ParentNode: Xml.XMLIntf.IXMLNode; NodeName: String) : String; + function GetOptionalValue(ParentNode: Xml.XMLIntf.IXMLNode; NodeName: String; DefaultValue: String) : String; + end; implementation - -constructor TPakkeshopLabel.Create(xmlDoc: TXMLDocument); +constructor TLabelData.Create(xmlDoc: TXMLDocument); +var + PakkeKontrolNode: Xml.XMLIntf.IXMLNode; begin + if xmlDoc = nil then + begin + exit; + end; + + PakkeKontrolNode := xmlDoc.ChildNodes.FindNode('PakkeKontrol'); // Cache opslaget der finder PakkeKontrol noden + + LabelType := GetOptionalValue(PakkeKontrolNode, 'LabelType', 'FuldLabel'); + LabelType := AnsiLowerCase(LabelType); + + Overskrift := GetValue( PakkeKontrolNode, 'Overskrift'); + + Stregkode := PakkeKontrolNode.ChildNodes.FindNode('Stregkode').Text; + Tjekkode := PakkeKontrolNode.ChildNodes.FindNode('Tjekkode').Text; - Overskrift := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Overskrift').Text; + Navn := PakkeKontrolNode.ChildNodes.FindNode('Navn').Text; + Vejnavn := PakkeKontrolNode.ChildNodes.FindNode('Vejnavn').Text; + Postnr := PakkeKontrolNode.ChildNodes.FindNode('Postnr').Text; - Stregkode := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkode').Text; - Tjekkode := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Tjekkode').Text; + AfsenderNavn := PakkeKontrolNode.ChildNodes.FindNode('AfsenderNavn').Text; + AfsenderAdresse := PakkeKontrolNode.ChildNodes.FindNode('AfsenderAdresse').Text; + AfsenderPostnr := PakkeKontrolNode.ChildNodes.FindNode('AfsenderPostnr').Text; - Navn := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Navn').Text; - Vejnavn := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Vejnavn').Text; - Postnr := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Postnr').Text; - AfsenderNavn := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('AfsenderNavn').Text; - AfsenderAdresse := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('AfsenderAdresse').Text; - AfsenderPostnr := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('AfsenderPostnr').Text; + PakkeshopNr := PakkeKontrolNode.ChildNodes.FindNode('PakkeshopNr').Text; + PakkeshopNavn := PakkeKontrolNode.ChildNodes.FindNode('PakkeshopNavn').Text; + PakkeshopAddr := PakkeKontrolNode.ChildNodes.FindNode('PakkeshopAddr').Text; + PakkeshopPostnr := PakkeKontrolNode.ChildNodes.FindNode('PakkeshopPostnr').Text; + PakkeshopTurid := PakkeKontrolNode.ChildNodes.FindNode('PakkeshopTurid').Text; + PakkeshopSted := PakkeKontrolNode.ChildNodes.FindNode('PakkeshopSted').Text; - PakkeshopNr := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text; - PakkeshopNavn := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text; - PakkeshopAddr := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopAddr').Text; - PakkeshopPostnr := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPostnr').Text; - PakkeshopTurid := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text; + Koreliste := PakkeKontrolNode.ChildNodes.FindNode('Koreliste').Text; - PakkeshopSted := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopSted').Text; - Koreliste := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Koreliste').Text; + + ZPL := GetOptionalValue(PakkeKontrolNode, 'ZPL', ''); + + SimpelLinie1 := GetOptionalValue(PakkeKontrolNode, 'SimpelLinie1', ''); + SimpelLinie2 := GetOptionalValue(PakkeKontrolNode, 'SimpelLinie2', ''); + SimpelLinie3 := GetOptionalValue(PakkeKontrolNode, 'SimpelLinie3', ''); + +end; + +function TLabelData.GetOptionalValue(ParentNode: Xml.XMLIntf.IXMLNode; NodeName: String; DefaultValue: String) : String; +var + TmpNode: Xml.XMLIntf.IXMLNode; +begin + TmpNode := ParentNode.ChildNodes.FindNode(NodeName); + if TmpNode <> nil then + begin + result := TmpNode.Text; + end + else + begin + result := DefaultValue; + end; +end; + +function TLabelData.GetValue(ParentNode: Xml.XMLIntf.IXMLNode; NodeName: String) : String; +begin + result := ParentNode.ChildNodes.FindNode(NodeName).Text; end;