type TblPr = class(OpenXmlElement) public function Create();overload; function Create(_node: XmlNode);overload; function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function InitAttributes();override; function InitChildren();override; function InitNode(_node: XmlNode);override; function Copy(_obj: TblPr);override; public // Attributes // Children TblStyleRowBandSize: PureWVal; TblStyleColBandSize: PureWVal; Jc: PureWVal; TblStyle: PureWVal; TblW: TblW; TblInd: TblW; TblLayout: TblLayout; TblLook: TblLook; TblBorders: TblBorders; TblCellMar: TblCellMar; end; function TblPr.Create();overload; begin {self.}Create(nil, "w", "tblPr"); end; function TblPr.Create(_node: XmlNode);overload; begin class(OpenXmlElement).Create(_node: XmlNode); end; function TblPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin class(OpenXmlElement).Create(_parent, _prefix, _local_name); end; function TblPr.Init();override; begin {self.}TblStyleRowBandSize := new PureWVal(self, {self.}Prefix, "tblStyleRowBandSize"); {self.}TblStyleColBandSize := new PureWVal(self, {self.}Prefix, "tblStyleColBandSize"); {self.}Jc := new PureWVal(self, {self.}Prefix, "jc"); {self.}TblStyle := new PureWVal(self, {self.}Prefix, "tblStyle"); {self.}TblW := new TblW(self, {self.}Prefix, "tblW"); {self.}TblInd := new TblW(self, {self.}Prefix, "tblInd"); {self.}TblLayout := new TblLayout(self, {self.}Prefix, "tblLayout"); {self.}TblLook := new TblLook(self, {self.}Prefix, "tblLook"); {self.}TblBorders := new TblBorders(self, {self.}Prefix, "tblBorders"); {self.}TblCellMar := new TblCellMar(self, {self.}Prefix, "tblCellMar"); end; function TblPr.InitAttributes();override; begin attributes_ := array( ); end; function TblPr.InitChildren();override; begin child_elements_ := array( 0: {self.}TblStyleRowBandSize, 1: {self.}TblStyleColBandSize, 2: {self.}Jc, 3: {self.}TblStyle, 4: {self.}TblW, 5: {self.}TblInd, 6: {self.}TblLayout, 7: {self.}TblLook, 8: {self.}TblBorders, 9: {self.}TblCellMar, ); sorted_child_ := array( "": -1, {self.}TblStyleRowBandSize.ElementName: 0, {self.}TblStyleColBandSize.ElementName: 1, {self.}Jc.ElementName: 2, {self.}TblStyle.ElementName: 3, {self.}TblW.ElementName: 4, {self.}TblInd.ElementName: 5, {self.}TblLayout.ElementName: 6, {self.}TblLook.ElementName: 7, {self.}TblBorders.ElementName: 8, {self.}TblCellMar.ElementName: 9, ); end; function TblPr.InitNode(_node: XmlNode);override; begin if ifObj({self.}XmlNode) then for k,v in child_elements_ do v.InitNode(nil); {self.}XmlNode := ifObj(_node) ? _node : nil; node := ifObj(_node) ? _node.FirstChild() : nil; flag := false; if ifnil(child_elements_[0]) and length(child_elements_) > 0 then begin flag := true; arr := child_elements_; child_elements_ := array(); end pre := ifString({self.}Prefix) ? {self.}Prefix + ":" : ""; while ifObj(node) do begin node_name := node.GetName(); pos := sorted_child_[node_name]; if ifnil(pos) or pos = -1 then begin obj := nil; case node_name of end; if ifObj(obj) then obj.InitNode(node); end else if flag then begin obj := arr[pos]; obj.InitNode(node); child_elements_[length(child_elements_)] := obj; end else begin child_elements_[pos].InitNode(node); end node := node.NextElement(); end end; function TblPr.Copy(_obj: TblPr);override; begin {self.}TblStyleRowBandSize.Copy(_obj.TblStyleRowBandSize); {self.}TblStyleColBandSize.Copy(_obj.TblStyleColBandSize); {self.}Jc.Copy(_obj.Jc); {self.}TblStyle.Copy(_obj.TblStyle); {self.}TblW.Copy(_obj.TblW); {self.}TblInd.Copy(_obj.TblInd); {self.}TblLayout.Copy(_obj.TblLayout); {self.}TblLook.Copy(_obj.TblLook); {self.}TblBorders.Copy(_obj.TblBorders); {self.}TblCellMar.Copy(_obj.TblCellMar); end;