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(); function HyperLinkUnitDecorator.Convert();
begin begin
{self.}XmlAttrAnchor.Value := object_.XmlAttrAnchor.Value;
{self.}XmlAttrId.Value := object_.XmlAttrId.Value; {self.}XmlAttrId.Value := object_.XmlAttrId.Value;
{self.}XmlAttrHistory.Value := object_.XmlAttrHistory.Value; {self.}XmlAttrHistory.Value := object_.XmlAttrHistory.Value;
end; end;

View File

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

View File

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

View File

@ -8,6 +8,11 @@ public
function InitChildren();override; function InitChildren();override;
function InitNode(_node: XmlNode);override; function InitNode(_node: XmlNode);override;
function Copy(_obj: R);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 WRsidRPr read ReadXmlAttrWRsidRPr write WriteXmlAttrWRsidRPr;
property Anchor read ReadXmlAttrAnchor write WriteXmlAttrAnchor; property Anchor read ReadXmlAttrAnchor write WriteXmlAttrAnchor;
@ -137,6 +142,7 @@ begin
begin begin
obj := nil; obj := nil;
case node_name of case node_name of
pre + "r": obj := {self.}AppendR();
end; end;
if ifObj(obj) then obj.InitNode(node); if ifObj(obj) then obj.InitNode(node);
end end
@ -172,6 +178,42 @@ begin
{self.}T.Copy(_obj.T); {self.}T.Copy(_obj.T);
end; 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(); function R.ReadXmlAttrWRsidRPr();
begin begin
return {self.}XmlAttrWRsidRPr.Value; return {self.}XmlAttrWRsidRPr.Value;