Welcome

首页 / 软件开发 / C# / C#进行Visio二次开发之图纸设备信息的保存

C#进行Visio二次开发之图纸设备信息的保存2011-05-24 www.iqidi.com 伍华聪在Visio的二次开发中,当发布图纸的时候,我们往往需要保存图纸和图纸的设备信息到数据库,图纸是将文件以二进制保存到数据库中,设备信息是保存图纸对应的Shape的各种自定义属性。本文主要介绍如何保存图纸背后的设备信息。

这里图纸的设备信息可以通过一个设备表如Device1来放置同一类型的设备信息,如负荷开关存放在Device1,架空线放在Device2等等,Device(n)是我们详细放置某种类型设备的表,其结构如下

另外主要我们再新建一个表来管理那种类型的设备对应那个表即可。如下图所示:

一旦建立了上表的关系,我们就知道那个类型的设备对应的表名是多少了。我们通过代码

List<DeviceTableInfo> deviceTables = deviceTableDAL.GetDeviceTables();

就可以获取到所有的设备类型表的信息了,这可以为我们下一步保存设备信息做准备。

为了获取到某个设备类型对应的表信息,我们可以这样拿到它的对应信息。

string deviceType = VisioUtility.GetShapeCellValue(shape, "设备类型");

DeviceTableInfo tableInfo = deviceTableDAL.GetTableNameByDevice(deviceTables, deviceType);

我们知道,图纸有很多信息,我们遍历图纸设备的时候,可以通过遍历其选区实现,如下所示

if (VisioUtility.HasShapeInWindow(visWindow))
{
visWindow.SelectAll();
foreach (Visio.Shape shape in visWindow.Selection)
{
}
visWindow.DeselectAll();
}