利用VB开放的接口CATIADrawingTables&CATIADrawingTable创建表格,实现开发明细表、物料清单等功能。
首先我们要添加与之相关的Framework:DraftingInterface/CATAnnotationIDLItf和Module:DraftingPubIDL,再添加两个头文件:CATIADrawingTables.h和CATIADrawingTable.h。之后我们将需要创建表格的视图类CATIDftView或CATIView指针给到CATIADrawingTables,这时我们就可以对视图进行添加表格操作,即CATIADrawingTables下的Add方法:
virtual HRESULT __stdcall Add(double iPositionX, double iPositionY, CATLONG iNumberOfRow, CATLONG iNumberOfColumn, double iRowHeight, double iColumnWidth, CATIADrawingTable *& oNewDrawingTable)=0;
第一个参数和第二个参数指的是表格放置位置,第三个和第四个分别为放置表格的行数和列数,第五和参数即创建好的CATIADrawingTable类指针,正常执行函数后返回的地址不为空,即可方便我们进行下一步操作。另外,CATIADrawingTables还有Remove和Item方法,分别可以对视图的表格进行删除和提取操作。
virtual HRESULT __stdcall Remove(CATLONG iIndex)=0;
得到CATIADrawingTable之后,我们可以像在Excel一样对表格进行一些基础操作,比如写入和得到某个单元格数值:
virtual HRESULT __stdcall SetCellString(CATLONG iRow, CATLONG iCol, const CATBSTR & iString)=0;
设置单元格名称:
virtual HRESULT __stdcall SetCellName(CATLONG iRow, CATLONG iCol, const CATBSTR & iName)=0;
合并/拆解单元格:
virtual HRESULT __stdcall MergeCells(CATLONG iFirstRow, CATLONG iFirstCol, CATLONG iNbRowMerge, CATLONG iNbColMerge)=0;
其中如果我们想对某个单元格的字体,字高等属性进行修改,我们可以利用如下两个函数得到类CATIADrawingText:
virtual HRESULT __stdcall SetCellObject(CATLONG iRow, CATLONG iCol, CATIADrawingText * iText)=0;
然后将CATIADraingText给到CATIADrawingTextProperties/
CATIDrwTextProperties/CATIDftTextProprties进行相关属性的设置。示例代码如下:
整体思路代码如下:
评论