--- dao/DelphiScanner/PakkeshopLabels.pas 2015/08/25 16:34:41 2668 +++ dao/DelphiScanner/LabelData.pas 2016/08/23 08:15:42 3104 @@ -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,28 +6,53 @@ interface uses - XMLDoc; + XMLDoc, + Xml.XMLIntf, + SysUtils; type - TPakkeshopLabel = class + TLabelData = class public + LabelType : string; + + Overskrift : string; + Stregkode : string; Tjekkode : string; + //Modtager Navn : string; Vejnavn : string; Postnr : string; + //Afsender + AfsenderNavn: string; + AfsenderAdresse: string; + AfsenderPostnr: string; + + PakkeshopNr : string; PakkeshopNavn : string; PakkeshopAddr : string; PakkeshopPostnr : string; + PakkeshopSted : string; PakkeshopTurid : string; + 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; @@ -35,23 +60,70 @@ implementation -constructor TPakkeshopLabel.Create(xmlDoc: TXMLDocument); +constructor TLabelData.Create(xmlDoc: TXMLDocument); +var + PakkeKontrolNode: Xml.XMLIntf.IXMLNode; + TmpNode: Xml.XMLIntf.IXMLNode; begin - Stregkode := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkode').Text; - Tjekkode := xmlDoc.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Tjekkode').Text; + 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; + + Navn := PakkeKontrolNode.ChildNodes.FindNode('Navn').Text; + Vejnavn := PakkeKontrolNode.ChildNodes.FindNode('Vejnavn').Text; + Postnr := PakkeKontrolNode.ChildNodes.FindNode('Postnr').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; + 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; - 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; + PakkeshopSted := PakkeKontrolNode.ChildNodes.FindNode('PakkeshopSted').Text; + Koreliste := PakkeKontrolNode.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;