提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:郝浩|2015-06-15 17:39:58.000|阅读 579 次
概述:本操作方法文章将演示如何使用 JS 网格控件创建甘特图。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
在基于构建的本主题中,您已经定义了甘特条形图的样式、摘要、标准、里程碑和完成百分比。每个条形图样式都具有形状、图案和颜色属性。每个条形图尾部都具有条形图尾部样式、颜色和图案属性。定义甘特条形图样式的代码位于 GanttUtilities.cs 文件中,该文件位于在中所创建的GridUtils 文件夹里。您可以通过修改网格数据来提供能够更好的甘特图功能演示数据。最后,通过使用GridDataSerializer的enableGantt方法来启用甘特图。(注意:对于下列说明中的一些 Visual Studio 用户界面元素,您的计算机可能显示不同的名称或位置。这些元素由您所拥有的 Visual Studio 版本和使用的设置决定。)
在 Visual Studio 中,打开按中的说明所创建的项目。
打开 GridUtilities.cs。
DefaultGanttBarStyleIdsColumnName 存储默认甘特条形图样式 ID 信息。您不希望将DefaultGanttBarStyleIdsColumnName 用作列或字段。防止这种情况的代码已经位于 GridUtilities.cs 中,但已被注释掉。取消注释下列行:
// && iterator.ColumnName != GridSerializer.DefaultGanttBarStyleIdsColumnName // Uncomment for the Gantt how-to
以及
// && dc.ColumnName != GridSerializer.DefaultGanttBarStyleIdsColumnName // Uncomment for Gantt how-to
添加对System.Drawing的引用。
在"解决方案资源管理器"中,右键单击"引用",然后单击"添加引用"。在".NET"选项卡上,选择System.Drawing,然后单击"确定"。System.Drawing用于绘制条形图和条形图尾部。
创建GanttUtilities.cs文件。
在"解决方案资源管理器"中,右键单击"GridUtils"文件夹,指向"添加",然后单击"新项目"。
依次选择"Visual C#"、"代码"和"代码文件"。
将该文件命名为GanttUtilities.cs。
将以下代码复制到GanttUtilities.cs中。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; // added for Gantt styles using Microsoft.SharePoint.JSGrid; namespace JSGridSample.GridUtilityLib { public class GanttUtilities { public enum CustomBarStyle { Summary, Standard, Milestone, PctComplete } public static GanttStyleInfo GetStyleInfo() { var styleInfoObj = new GanttStyleInfo(); /*Summary Bar Style*/ styleInfoObj.AddBarStyle(new GanttBarStyle( CustomBarStyle.Summary, BarShape.TopHalf, Color.Gray, BarPattern.Solid, BarEndShape.HomePlateDown, Color.Gray, BarShapePattern.Filled, BarEndShape.HomePlateDown, Color.Gray, BarShapePattern.Filled, "Start Date", "Finish Date", 1)); /*Standard Bar Style*/ styleInfoObj.AddBarStyle(new GanttBarStyle( CustomBarStyle.Standard, BarShape.Full, Color.Blue, BarPattern.Solid, BarEndShape.None, Color.Black, BarShapePattern.Filled, BarEndShape.None, Color.Black, BarShapePattern.Filled, "Start Date", "Finish Date", 1)); /*Milestone Bar Style*/ styleInfoObj.AddBarStyle(new GanttBarStyle( CustomBarStyle.Milestone, BarShape.None, Color.Black, BarPattern.Solid, BarEndShape.None, Color.Black, BarShapePattern.Filled, BarEndShape.Diamond, Color.Black, BarShapePattern.Filled, "Finish Date", "Finish Date", 1)); /*PctComplete Bar Style*/ styleInfoObj.AddBarStyle(new GanttBarStyle( CustomBarStyle.PctComplete, BarShape.MidHalf, Color.Black, BarPattern.Solid, BarEndShape.None, Color.Black, BarShapePattern.Filled, BarEndShape.None, Color.Black, BarShapePattern.Filled, "Start Date", "CompleteThrough", 1)); return styleInfoObj; } } }
GanttStyleInfo类定义摘要、标准、里程碑和完成百分比条形图样式。
打开JSGridWebPartUserControl.ascx.cs。
将EnableGantt添加到Page_Load方法中。
// Point the grid serializer at the grid serializer data. _grid.GridDataSerializer = gds; // Tell the grid to listen to the GridManager controller. _grid.JSControllerClassName = "GridManager"; // Enable the Gantt chart. gds.EnableGantt(DateTime.Now.AddDays(0), DateTime.Now.AddDays(10), GanttUtilities.GetStyleInfo(), null);
定义甘特条形图开始的最早日期和条形图结束的最晚日期,从什么位置查找甘特条形图样式以及依赖项列名称(在本示例中为 null)。为简便起见,生成的开始和结束日期基于当前日期。
下一步是修改网格数据,以将甘特条形图样式与每个数据行相关联。
打开 GridData.cs。
甘特图需要使用文件存储甘特条形图样式 ID 信息。执行此操作的代码已位于 GridData.cs 中,只是已被注释掉。取消注释下列行。
//data.Columns.Add(new DataColumn(GridSerializer.DefaultGanttBarStyleIdsColumnName, typeof(GanttUtilities.CustomBarStyle[]))); // uncomment for the Create a Gantt Chart Using JS Grid How-To.
找到用于为开始日期、持续时间和完成日期分配随机日期的代码。
dr["Start Date"] = DateTime.Now.AddSeconds(_rand.Next(60 * 60 * 24 * 20)); dr["Finish Date"] = DateTime.Now.AddSeconds(_rand.Next(60 * 60 * 24 * 20)); dr["CompleteThrough"] = DateTime.Now.AddSeconds(_rand.Next(60 * 60 * 24 * 20));
将该代码替换为以下内容。
stDate = DateTime.Now.AddSeconds(_rand.Next(60 * 60 * 24 * 20)); if (i % 10 == 0) { parent = curKey; j++; dr["Start Date"] = stDate; dr["Finish Date"] = stDate.AddDays(10); //summary gantt bar style dr[GridSerializer.DefaultGanttBarStyleIdsColumnName] = new GanttUtilities.CustomBarStyle[1] { (GanttUtilities.CustomBarStyle)(0) }; } else if (i % 10 == 5) { // Milestone dr["Start Date"] = stDate; dr["Finish Date"] = dr["Start Date"];// +DateTime.Now.AddSeconds(_rand.Next(60 * 60 * 24 * 20)); // Milestone Gantt bar style dr[GridSerializer.DefaultGanttBarStyleIdsColumnName] = new GanttUtilities.CustomBarStyle[1] { (GanttUtilities.CustomBarStyle)(2) }; } else { dr["Start Date"] = stDate.AddDays(i % 4); ; dr["Finish Date"] = stDate.AddDays(i % 10); dr["CompleteThrough"] = stDate.AddDays(1); // Standard Gantt bar style dr[GridSerializer.DefaultGanttBarStyleIdsColumnName] = new GanttUtilities.CustomBarStyle[2] { (GanttUtilities.CustomBarStyle)(1),(GanttUtilities.CustomBarStyle)(3) }; }
将为第一个任务分配摘要任务样式,为第五个任务分配里程碑样式,为其他任务分配"标准"条形图样式。
甘特条形图样式使用 进行设置。如果使用了多个条形图样式,则每个条形图样式都在前一条形图样式的基础上绘制,因此应用条形图样式的顺序非常重要。请注意,标准条形图样式通过以下方式创建:首先绘制标准条形图,然后绘制持续时间条形图。这由自定义条形图数组中条形图样式的顺序确定。
dr[GridSerializer.DefaultGanttBarStyleIdsColumnName] = new GanttUtilities.CustomBarStyle[2] { (GanttUtilities.CustomBarStyle)(1),(GanttUtilities.CustomBarStyle)(3) };
在 Visual Studio 中,按 F5 运行该项目。
运行项目时,将执行部署并打开 SharePoint 2010 网站。Web 部件会自动添加到 SharePoint 2010 Web 部件库。
打开并编辑所有 Web 部件页。您可以将此 Web 部件添加到任何 Web 部件页中。
单击"插入",单击"Web 部件",然后从自定义类别中选择"JSWebPart"。该 Web 部件将显示在页面中。
甘特条形图显示在浏览器窗口中时,修改开始日期、持续时间或完成日期之一。
甘特图监视对开始日期、持续时间或结束日期的更改。如果这些日期之一发生更改,将重新绘制条形图。
本文转载自
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢