背景
我们有一个现有的应用程序,可以将数据加载到Microsoft Project中,以便可以由MS Project操作。
原始应用程序是VB6针对MS Project 2003/2007编写的老式COM Project加载项,现在我们计划将其迁移到针对MS Project 2013/2016的VSTO加载项。
问题
对于他们的COM加载项解决方案,我们遇到了性能问题:
测试项目具有4414个活动(av_activity表)和8330个关系(av_reln表)。
在装入操作期间报告了性能问题:
对于以上项目,在MSP 2003模板上的加载时间约为30-35分钟。
MSP 2007和2010模板上的加载时间> 3小时
对于VSTO解决方案,它会变得更好,但我们仍然希望可以通过某种方式提高加载性能。
到目前为止我们尝试过的
我们尝试了几种技巧,但效果不大...
添加数据时进行自动计算
_application.Calculation = PjCalculation.pjManual;
在添加数据期间禁用屏幕更新
_application.ScreenUpdating = false;
禁用突出显示更改
_application.EnableChangeHighlighting = false;
禁用状态栏
_application.DisplayStatusBar = false;
将“撤消”值设置为1
寻求帮助
我正在寻求有关在使用VSTO加载项和C#将数据加载到MS Project中时提高性能的任何解决方案的帮助。
提前致谢!
是的,使用TaskDependencies.Add方法创建关系非常慢。
这是不幸的,因为这是使用的逻辑方法。唯一的解决方法是提前构建前驱列表。获得该列表后,可以通过两种方式创建关系:
由于您的数据已经是表格格式,因此使用“项目导入向导”从csv或Excel文件导入数据效果很好。要使用项目导入向导,请选择一个csv或Excel文件从MS Project中打开(文件->打开)。该向导将引导您完成创建导入地图的步骤,您可以将其保存以供以后自动化使用。在导入数据中包括Predecessors列,向导将在几秒钟内为您创建关系。
任务“前置任务”字段包含以逗号分隔的前置任务列表。每个前身采用以下格式:
FS类型且没有滞后的前任仅显示任务ID。以下是一些前置字段值的示例:
如何从关系表创建前身字段值
假定一个关系表,其中包含前任和后继的任务ID:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句