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 interface uses XMLDoc, Xml.XMLIntf, SysUtils; type 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; implementation 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; 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; 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; 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; end.