程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#進行Visio二次開發之設備狀態跟蹤(3)

C#進行Visio二次開發之設備狀態跟蹤(3)

編輯:關於C語言
成這些函數後,最後需要做的就是在添加、刪除、修改Shape的偵聽事件中加入相關的日志就可以了,如在刪除設備的時候,我們是這樣記錄相關信息的
private void visioEventSink_OnShapeDelete(object sender, EventArgs e)
{
Shape shape = (Shape)sender;
string strDeviceType = string.Empty;
string strDeviceName = string.Empty;
string strDeviceID = string.Empty;
strDeviceType = VisioUtility.GetShapeCellValue(shape, "設備類型");
strDeviceID = VisioUtility.GetShapeCellValue(shape, "GUID");
ShapeLogInfo logInfo = new ShapeLogInfo();
logInfo.ShapeType = strDeviceType;
logInfo.ShapeID = shape.NameID;
logInfo.ShapeName = VisioUtility.GetShapeCellValue(shape, "名稱");
if (shape.Application.IsUndoingOrRedoing)
{
ShapeLogInfo info = Portal.gc.gOperationLog.GetShape(strDeviceType, shape.NameID);
if (info != null)
{
strDeviceID = info.ShapeGuid;
}
}
logInfo.ShapeGuid = strDeviceID;
logInfo.ShapeStatus = ShapeStatus.DeleteShape;
Portal.gc.gOperationLog.AddLog(logInfo);
}

其中if (shape.Application.IsUndoingOrRedoing)是為了判斷該操作是否為Undo或者Redo導致的操作,如果是,我們獲取它之前Shape的GUID即可。

記錄了設備的這些修改信息,我們就可以在保存數據的時候,根據這些信息移除相關的關系,添加或者刪除相關的設備信息了,而且這些信息,對於我們記錄用戶的圖紙修訂記錄也是必須要做的事情。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved