P.Hyperlinks()、R.Rs()

This commit is contained in:
csh 2024-07-19 14:48:26 +08:00
parent 3dab5b5fb5
commit 978cff648b
4 changed files with 102 additions and 41 deletions

View File

@ -16,6 +16,7 @@ end;
function HyperLinkUnitDecorator.Convert();
begin
{self.}XmlAttrAnchor.Value := object_.XmlAttrAnchor.Value;
{self.}XmlAttrId.Value := object_.XmlAttrId.Value;
{self.}XmlAttrHistory.Value := object_.XmlAttrHistory.Value;
end;

View File

@ -14,8 +14,11 @@ public
property Rs read ReadRs;
function ReadRs(_index);
property Anchor read ReadXmlAttrAnchor write WriteXmlAttrAnchor;
property Id read ReadXmlAttrId write WriteXmlAttrId;
property History read ReadXmlAttrHistory write WriteXmlAttrHistory;
function ReadXmlAttrAnchor();
function WriteXmlAttrAnchor(_value);
function ReadXmlAttrId();
function WriteXmlAttrId(_value);
function ReadXmlAttrHistory();
@ -23,6 +26,7 @@ public
public
// Attributes
XmlAttrAnchor: OpenXmlAttribute;
XmlAttrId: OpenXmlAttribute;
XmlAttrHistory: OpenXmlAttribute;
@ -47,6 +51,7 @@ end;
function HyperLink.Init();override;
begin
{self.}XmlAttrAnchor := new OpenXmlAttribute({self.}Prefix, "anchor", nil);
{self.}XmlAttrId := new OpenXmlAttribute("r", "id", nil);
{self.}XmlAttrHistory := new OpenXmlAttribute({self.}Prefix, "history", nil);
end;
@ -54,6 +59,7 @@ end;
function HyperLink.InitAttributes();override;
begin
attributes_ := array(
{self.}XmlAttrAnchor,
{self.}XmlAttrId,
{self.}XmlAttrHistory,
);
@ -109,6 +115,8 @@ end;
function HyperLink.Copy(_obj: HyperLink);override;
begin
if not ifnil(_obj.XmlAttrAnchor.Value) then
{self.}XmlAttrAnchor.Value := _obj.XmlAttrAnchor.Value;
if not ifnil(_obj.XmlAttrId.Value) then
{self.}XmlAttrId.Value := _obj.XmlAttrId.Value;
if not ifnil(_obj.XmlAttrHistory.Value) then
@ -151,6 +159,16 @@ begin
return arr;
end;
function HyperLink.ReadXmlAttrAnchor();
begin
return {self.}XmlAttrAnchor.Value;
end;
function HyperLink.WriteXmlAttrAnchor(_value);
begin
{self.}XmlAttrAnchor.Value := _value;
end;
function HyperLink.ReadXmlAttrId();
begin
return {self.}XmlAttrId.Value;

View File

@ -11,28 +11,28 @@ public
function AddR(): R;
function AddCommentRangeStart(): CommentRange;
function AddCommentRangeEnd(): CommentRange;
function AddHyperLink(): HyperLink;
function AddBookmarkStart(): Bookmark;
function AddBookmarkEnd(): Bookmark;
function AddHyperLink(): HyperLink;
function AppendR(): R;
function AppendCommentRangeStart(): CommentRange;
function AppendCommentRangeEnd(): CommentRange;
function AppendHyperLink(): HyperLink;
function AppendBookmarkStart(): Bookmark;
function AppendBookmarkEnd(): Bookmark;
function AppendHyperLink(): HyperLink;
property Rs read ReadRs;
property CommentRangeStarts read ReadCommentRangeStarts;
property CommentRangeEnds read ReadCommentRangeEnds;
property HyperLinks read ReadHyperLinks;
property BookmarkStarts read ReadBookmarkStarts;
property BookmarkEnds read ReadBookmarkEnds;
property Hyperlinks read ReadHyperlinks;
function ReadRs(_index);
function ReadCommentRangeStarts(_index);
function ReadCommentRangeEnds(_index);
function ReadHyperLinks(_index);
function ReadBookmarkStarts(_index);
function ReadBookmarkEnds(_index);
function ReadHyperlinks(_index);
property W14ParaId read ReadXmlAttrW14ParaId write WriteXmlAttrW14ParaId;
property W14TextId read ReadXmlAttrW14TextId write WriteXmlAttrW14TextId;
@ -141,9 +141,9 @@ begin
pre + "r": obj := {self.}AppendR();
pre + "commentRangeStart": obj := {self.}AppendCommentRangeStart();
pre + "commentRangeEnd": obj := {self.}AppendCommentRangeEnd();
pre + "hyperlink": obj := {self.}AppendHyperLink();
pre + "bookmarkStart": obj := {self.}AppendBookmarkStart();
pre + "bookmarkEnd": obj := {self.}AppendBookmarkEnd();
pre + "hyperlink": obj := {self.}AppendHyperLink();
end;
if ifObj(obj) then obj.InitNode(node);
end
@ -216,19 +216,6 @@ begin
return obj;
end;
function P.AddHyperLink(): HyperLink;
begin
len := length(child_elements_);
if len = 0 then i := -1;
else begin
for i:=len-1 downto 0 do
if child_elements_[i].LocalName = "hyperlink" then break;
end
obj := new HyperLink(self, {self.}Prefix, "hyperlink");
{self.}InsertChild(obj, i+1);
return obj;
end;
function P.AddBookmarkStart(): Bookmark;
begin
len := length(child_elements_);
@ -255,6 +242,19 @@ begin
return obj;
end;
function P.AddHyperLink(): HyperLink;
begin
len := length(child_elements_);
if len = 0 then i := -1;
else begin
for i:=len-1 downto 0 do
if child_elements_[i].LocalName = "hyperlink" then break;
end
obj := new HyperLink(self, {self.}Prefix, "hyperlink");
{self.}InsertChild(obj, i+1);
return obj;
end;
function P.AppendR(): R;
begin
obj := new R(self, {self.}Prefix, "r");
@ -276,13 +276,6 @@ begin
return obj;
end;
function P.AppendHyperLink(): HyperLink;
begin
obj := new HyperLink(self, {self.}Prefix, "hyperlink");
child_elements_[length(child_elements_)] := obj;
return obj;
end;
function P.AppendBookmarkStart(): Bookmark;
begin
obj := new Bookmark(self, {self.}Prefix, "bookmarkStart");
@ -297,6 +290,13 @@ begin
return obj;
end;
function P.AppendHyperLink(): HyperLink;
begin
obj := new HyperLink(self, {self.}Prefix, "hyperlink");
child_elements_[length(child_elements_)] := obj;
return obj;
end;
function P.ReadRs(_index);
begin
ind := ifnil(_index) ? -2 : _index;
@ -345,22 +345,6 @@ begin
return arr;
end;
function P.ReadHyperLinks(_index);
begin
ind := ifnil(_index) ? -2 : _index;
arr := array();
for k,v in child_elements_ do
begin
if v.LocalName = "hyperlink" then
begin
arr[length(arr)] := v;
ind--;
end;
if ind = -1 then return v;
end;
return arr;
end;
function P.ReadBookmarkStarts(_index);
begin
ind := ifnil(_index) ? -2 : _index;
@ -393,6 +377,22 @@ begin
return arr;
end;
function P.ReadHyperlinks(_index);
begin
ind := ifnil(_index) ? -2 : _index;
arr := array();
for k,v in child_elements_ do
begin
if v.LocalName = "hyperlink" then
begin
arr[length(arr)] := v;
ind--;
end;
if ind = -1 then return v;
end;
return arr;
end;
function P.ReadXmlAttrW14ParaId();
begin
return {self.}XmlAttrW14ParaId.Value;

View File

@ -8,6 +8,11 @@ public
function InitChildren();override;
function InitNode(_node: XmlNode);override;
function Copy(_obj: R);override;
function AddR(): R;
function AppendR(): R;
property Rs read ReadRs;
function ReadRs(_index);
property WRsidRPr read ReadXmlAttrWRsidRPr write WriteXmlAttrWRsidRPr;
property Anchor read ReadXmlAttrAnchor write WriteXmlAttrAnchor;
@ -137,6 +142,7 @@ begin
begin
obj := nil;
case node_name of
pre + "r": obj := {self.}AppendR();
end;
if ifObj(obj) then obj.InitNode(node);
end
@ -172,6 +178,42 @@ begin
{self.}T.Copy(_obj.T);
end;
function R.AddR(): R;
begin
len := length(child_elements_);
if len = 0 then i := -1;
else begin
for i:=len-1 downto 0 do
if child_elements_[i].LocalName = "r" then break;
end
obj := new R(self, {self.}Prefix, "r");
{self.}InsertChild(obj, i+1);
return obj;
end;
function R.AppendR(): R;
begin
obj := new R(self, {self.}Prefix, "r");
child_elements_[length(child_elements_)] := obj;
return obj;
end;
function R.ReadRs(_index);
begin
ind := ifnil(_index) ? -2 : _index;
arr := array();
for k,v in child_elements_ do
begin
if v.LocalName = "r" then
begin
arr[length(arr)] := v;
ind--;
end;
if ind = -1 then return v;
end;
return arr;
end;
function R.ReadXmlAttrWRsidRPr();
begin
return {self.}XmlAttrWRsidRPr.Value;