--- dao/DelphiScanner/LabelData.pas 2016/08/19 14:35:39 3094 +++ dao/DelphiScanner/LabelData.pas 2016/08/21 20:51:45 3095 @@ -7,12 +7,15 @@ interface uses XMLDoc, - Xml.XMLIntf; + Xml.XMLIntf, + SysUtils; type TLabelData = class public + LabelType : string; + Overskrift : string; Stregkode : string; @@ -41,8 +44,15 @@ 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; @@ -53,11 +63,15 @@ constructor TLabelData.Create(xmlDoc: TXMLDocument); var PakkeKontrolNode: Xml.XMLIntf.IXMLNode; + TmpNode: Xml.XMLIntf.IXMLNode; begin PakkeKontrolNode := xmlDoc.ChildNodes.FindNode('PakkeKontrol'); // Cache opslaget der finder PakkeKontrol noden - Overskrift := PakkeKontrolNode.ChildNodes.FindNode('Overskrift').Text; + LabelType := GetOptionalValue(PakkeKontrolNode, 'LabelType', 'FuldLabel'); + LabelType := AnsiLowerCase(LabelType); + + Overskrift := GetValue( PakkeKontrolNode, 'Overskrift'); Stregkode := PakkeKontrolNode.ChildNodes.FindNode('Stregkode').Text; Tjekkode := PakkeKontrolNode.ChildNodes.FindNode('Tjekkode').Text; @@ -81,9 +95,35 @@ Koreliste := PakkeKontrolNode.ChildNodes.FindNode('Koreliste').Text; - Shop2Direkte := PakkeKontrolNode.ChildNodes.FindNode('Shop2Direkte').Text; + Shop2Direkte := GetOptionalValue(PakkeKontrolNode, 'Shop2Direkte', ''); + + 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;