[Aras 笔记]Technical Document 工具製作(1) - 製作CAD表格

原厂安装完毕后,开始使用Technical Document如下图

新增物件,并使用Standard Schema
http://img2.58codes.com/2024/201065035a8q8f0Fqm.png在设计页面加入ItemInfo,选择CAD物件之后显示该表格资讯
http://img2.58codes.com/2024/20106503g7ancWSOSH.png

现在,我需要将ItemInfo改写成有包含子阶工程图的表格,步骤如下

首先进入Schema
http://img2.58codes.com/2024/20106503KbsND8GPk4.png

在Content 加入新功能CADInfo
http://img2.58codes.com/2024/20106503KWFrag1jYx.png

在Xml Schema Element新增CADInfo的物件
http://img2.58codes.com/2024/20106503pStICwHqyj.png

新增一个Method,複製tp_ItemInfoContentGenerator的方法内容,加入CAD Structure的逻辑

//MethodTemplateName=CSharp:Aras.TDF.ContentGenerator(Strict);ItemDocumentElement targetItem = targetElement as ItemDocumentElement;if (targetItem != null) {    targetItem.ClearChilds();    // if referenced item was set, then    if (!targetItem.IsEmpty)    {        TableDocumentElement tableElement = (TableDocumentElement) this.Factory.NewTable("Table", 3, 5);        tableElement.GetCell(0, 0).AddChild(this.Factory.NewText("Title", "Item Info Table"));        for (int i = 0; i < tableElement.CellCount; i++)        {            tableElement.MergeCells(0, i, MergeDirection.Right);        }        tableElement.GetCell(1, 0).AddChild(this.Factory.NewText("Title", "Id"));        tableElement.GetCell(1, 1).AddChild(this.Factory.NewText("Title", "Name"));        tableElement.GetCell(1, 2).AddChild(this.Factory.NewText("Title", "Classification"));        tableElement.GetCell(1, 3).AddChild(this.Factory.NewText("Title", "Status"));        tableElement.GetCell(1, 4).AddChild(this.Factory.NewText("Title", "Date of creation"));        tableElement.GetCell(2, 0).AddChild(this.Factory.NewText("Title", targetItem.ItemId));        tableElement.GetCell(2, 1).AddChild(this.Factory.NewText("Title", targetItem.GetItemProperty("name", " ")));        tableElement.GetCell(2, 2).AddChild(this.Factory.NewText("Title", targetItem.GetItemProperty("classification", " ")));        tableElement.GetCell(2, 3).AddChild(this.Factory.NewText("Title", targetItem.GetItemProperty("state", " ")));        tableElement.GetCell(2, 4).AddChild(this.Factory.NewText("Title", targetItem.GetItemProperty("created_on")));        targetItem.AddChild(tableElement);        Item components = this.Factory.InnovatorInstance.newItem("CAD Structure","get");        components.setAction("get");        components.setAttribute("where","CAD_Structure.source_id='" + targetItem.ItemId + "'");        components = components.apply();        // if referenced item was set, then        if (!components.isError())        {            TableDocumentElement tableElementBOM = (TableDocumentElement) this.Factory.NewTable("Table", (components.getItemCount() + 2), 5);            tableElementBOM.GetCell(0, 0).AddChild(this.Factory.NewText("Title", "Components List"));            for (int i = 0; i < tableElementBOM.CellCount; i++)            {                tableElementBOM.MergeCells(0, i, MergeDirection.Right);            }            tableElementBOM.GetCell(1, 0).AddChild(this.Factory.NewText("Title", "Sort"));            tableElementBOM.GetCell(1, 1).AddChild(this.Factory.NewText("Title", "Number"));            tableElementBOM.GetCell(1, 2).AddChild(this.Factory.NewText("Title", "Name"));            tableElementBOM.GetCell(1, 3).AddChild(this.Factory.NewText("Title", "Classification"));            tableElementBOM.GetCell(1, 4).AddChild(this.Factory.NewText("Title", "File"));            for (int i = 0; i < components.getItemCount(); i++)             {                Item c = components.getItemByIndex(i);                Item p = c.getItemsByXPath("related_id/Item");                int r = i + 2;                tableElementBOM.GetCell(r, 0).AddChild(this.Factory.NewText("Text", c.getProperty("sort_order", " ")));                tableElementBOM.GetCell(r, 1).AddChild(this.Factory.NewText("Text", p.getProperty("item_number")));                tableElementBOM.GetCell(r, 2).AddChild(this.Factory.NewText("Text", p.getProperty("name")));                tableElementBOM.GetCell(r, 3).AddChild(this.Factory.NewText("Text", c.getProperty("classification", " ")));                tableElementBOM.GetCell(r, 4).AddChild(this.Factory.NewText("Text", p.getProperty("native_file","")));            }            targetItem.AddChild(tableElementBOM);        }    }}

外观修改

在Output Setting 中修改Standard Style Settings
http://img2.58codes.com/2024/20106503HRCdSpx1dQ.png将css写入Style
http://img2.58codes.com/2024/20106503WWPWhATpxp.png重新开启Technical Document
http://img2.58codes.com/2024/20106503NlgnePZVla.png

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章