Dev 甘特图
date1.EditValue = DateTime.Now.Date.AddDays().AddHours().AddMinutes().AddSeconds();
scLd1.PopupMenuShowing += schedulerControl1_PopupMenuShowing;
scLd1.EditAppointmentFormShowing += schedulerControl1_EditAppointmentFormShowing;
///增加额外字段 如备注
AppointmentCustomFieldMappingCollection appointCust = schedulerStorage1.Appointments.CustomFieldMappings;
appointCust.Add(new AppointmentCustomFieldMapping("Note", "Note"));
scLd1.GanttView.ResourcesPerPage = ; //设置资源个数
scLd1.InitAppointmentDisplayText += scLd1_InitAppointmentDisplayText; //自定义显示提示
SetToolTipControl(scLd1);
SetLabeColor(scLd1.Storage);
InitGrantView(scLd1);
}
/// <summary>
/// 设置提示
/// </summary>
/// <param name="sc"></param>
private void SetToolTipControl(DevExpress.XtraScheduler.SchedulerControl sc)
{
ToolTipController toolTipController1 = new ToolTipController();
toolTipController1.AllowHtmlText = true;
toolTipController1.BeforeShow += toolTipController1_BeforeShow;
sc.ToolTipController = toolTipController1;
}
/// <summary>
/// 设置Appointment颜色
/// </summary>
/// <param name="ss"></param>
private void SetLabeColor(DevExpress.XtraScheduler.SchedulerStorage ss)
{
///设置块的颜色
ss.Appointments.Labels.Clear();
ss.Appointments.Labels.Add(new DevExpress.XtraScheduler.AppointmentLabel(Color.Yellow, "生产中"));
ss.Appointments.Labels.Add(new DevExpress.XtraScheduler.AppointmentLabel(Color.LightBlue, "生产完成"));
ss.Appointments.Labels.Add(new DevExpress.XtraScheduler.AppointmentLabel(Color.Red, "回炉"));
ss.Appointments.Labels.Add(new DevExpress.XtraScheduler.AppointmentLabel(Color.Maroon, "其它"));
}
/// <summary>
/// 初始化设置
/// </summary>
/// <param name="sc"></param>
private void InitGrantView(DevExpress.XtraScheduler.SchedulerControl sc)
{
//设置资源
sc.GroupType = SchedulerGroupType.Resource;
//设置甘特图
sc.ActiveViewType = SchedulerViewType.Gantt;
//设置资源+-按钮不可见
sc.ResourceNavigator.Visibility = ResourceNavigatorVisibility.Auto;
//设置Resource 字体不旋转
sc.OptionsView.ResourceHeaders.RotateCaption = false;
sc.OptionsView.ResourceHeaders.Height = ;
sc.OptionsView.ShowOnlyResourceAppointments = true;
//行为设置
sc.OptionsBehavior.MouseWheelScrollAction = MouseWheelScrollAction.Auto;
sc.OptionsBehavior.RecurrentAppointmentDeleteAction = RecurrentAppointmentAction.Cancel;
sc.OptionsBehavior.RecurrentAppointmentEditAction = RecurrentAppointmentAction.Cancel;
sc.OptionsBehavior.RemindersFormDefaultAction = RemindersFormDefaultAction.DismissAll;
//自定义动作设置
//禁止块冲突
sc.OptionsCustomization.AllowAppointmentConflicts = AppointmentConflictsMode.Allowed;
//不允许复制
sc.OptionsCustomization.AllowAppointmentCopy = UsedAppointmentType.None;
//不允许创建
sc.OptionsCustomization.AllowAppointmentCreate = UsedAppointmentType.None;
//不允许删除
sc.OptionsCustomization.AllowAppointmentDelete = UsedAppointmentType.None;
//不允许拖到
sc.OptionsCustomization.AllowAppointmentDrag = UsedAppointmentType.None;
//不允许不同资源间创建
sc.OptionsCustomization.AllowAppointmentDragBetweenResources = UsedAppointmentType.None;
//允许编辑
sc.OptionsCustomization.AllowAppointmentEdit = UsedAppointmentType.All;
//不允许多个选择
sc.OptionsCustomization.AllowAppointmentMultiSelect = false;
//不允许改变大小
sc.OptionsCustomization.AllowAppointmentResize = UsedAppointmentType.None;
//不允许依赖窗体弹出
sc.OptionsCustomization.AllowDisplayAppointmentDependencyForm = AllowDisplayAppointmentDependencyForm.Never;
//允许Appointment窗体弹出
sc.OptionsCustomization.AllowDisplayAppointmentForm = AllowDisplayAppointmentForm.Auto;
//不允许编辑文字
sc.OptionsCustomization.AllowInplaceEditor = UsedAppointmentType.None;
//GrantView
sc.Views.GanttView.CellsAutoHeightOptions.Enabled = true;//设置单元格不自适应高度
sc.Views.GanttView.CellsAutoHeightOptions.MinHeight = ;//设置最小高度
//设置Appointment 的高度不自适应
sc.Views.GanttView.AppointmentDisplayOptions.AppointmentAutoHeight = true;
sc.Views.GanttView.AppointmentDisplayOptions.AppointmentHeight = ;
sc.Views.GanttView.AppointmentDisplayOptions.AppointmentInterspacing = ;
sc.Views.GanttView.AppointmentDisplayOptions.ContinueArrowDisplayType = AppointmentContinueArrowDisplayType.Never;
//不显示开始时间
sc.Views.GanttView.AppointmentDisplayOptions.StartTimeVisibility = AppointmentTimeVisibility.Never;
//不显示结束时间
sc.Views.GanttView.AppointmentDisplayOptions.EndTimeVisibility = AppointmentTimeVisibility.Never;
//不显示进度条
sc.Views.GanttView.AppointmentDisplayOptions.PercentCompleteDisplayType = PercentCompleteDisplayType.None;
//不显示恢复
sc.Views.GanttView.AppointmentDisplayOptions.ShowRecurrence = false;
//不显示提醒
sc.Views.GanttView.AppointmentDisplayOptions.ShowReminder = false;
sc.Views.GanttView.AppointmentDisplayOptions.SnapToCellsMode = AppointmentSnapToCellsMode.Never;
//不显示状态
sc.Views.GanttView.AppointmentDisplayOptions.StatusDisplayType = AppointmentStatusDisplayType.Never;
//显示样式
sc.Views.GanttView.AppointmentDisplayOptions.TimeDisplayType = AppointmentTimeDisplayType.Text;
//显示颜色
sc.Views.GanttView.Appearance.Dependency.ForeColor = Color.Red;
sc.Views.GanttView.Appearance.SelectedDependency.ForeColor = Color.Blue;
sc.Views.GanttView.Scales.Clear();//清空
DevExpress.XtraScheduler.TimeScaleDay td = new TimeScaleDay();
td.DisplayFormat = "yyyy-MM-dd";
td.Enabled = true;
DevExpress.XtraScheduler.TimeScale15Minutes tm = new TimeScale15Minutes();
tm.Enabled = true;
sc.Views.GanttView.Scales.Add(td);
sc.Views.GanttView.Scales.Add(tm);
}
void scLd1_InitAppointmentDisplayText(object sender, AppointmentDisplayTextEventArgs e)
{
Appointment apt = e.Appointment;
e.Text = GetCustomSubject(apt);
}
string GetCustomSubject(Appointment apt)
{
string s = apt.Subject;
if (apt.Location.Length > )
{
s += String.Format("\r\n[{0}]", apt.Location);
}
return s;
}
void toolTipController1_BeforeShow(object sender, ToolTipControllerShowEventArgs e)
{
ToolTipController controller = sender as ToolTipController;
AppointmentViewInfo aptViewInfo = controller.ActiveObject as AppointmentViewInfo;
if (aptViewInfo == null) return;
var app = aptViewInfo.Appointment;
e.IconType = ToolTipIconType.Information;
e.Title = app.Subject;
e.ToolTip = string.Format("{0},{1}", app.Location, app.CustomFields["Note"]);
}
/// <summary>
/// 清空菜单,自定义菜单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void schedulerControl1_PopupMenuShowing(object sender, DevExpress.XtraScheduler.PopupMenuShowingEventArgs e)
{
//DXMenuItem item = new DXMenuItem("菜单项");
if (scLd1.ActiveViewType == DevExpress.XtraScheduler.SchedulerViewType.Day)//不同view展示不同菜单项
{
}
if (e.Menu.Id == DevExpress.XtraScheduler.SchedulerMenuItemId.DefaultMenu)//右键空白处
{
e.Menu.Items.Clear();
}
if (e.Menu.Id == DevExpress.XtraScheduler.SchedulerMenuItemId.AppointmentMenu)//appointment 上右键
{
e.Menu.Items.Clear();
//e.Menu.Items.Add(item);
}
}
private void schedulerControl1_EditAppointmentFormShowing(object sender, DevExpress.XtraScheduler.AppointmentFormEventArgs e)
{
DevExpress.XtraScheduler.SchedulerControl scheduler = ((DevExpress.XtraScheduler.SchedulerControl)(sender));
using( AppiontmentForm form = new AppiontmentForm(scheduler, e.Appointment, e.OpenRecurrenceForm))
{
form.ShowDialog();
e.Handled = true;
}
}
设置绑定数据资源类 ,设置Appointment类,设置依赖关系类。具体字体参考Mapping的设置。
Dev 甘特图的更多相关文章
- Twproject Gantt开源甘特图功能扩展
1.Twproject Gantt甘特图介绍 Twproject Gantt 是一款基于 jQuery 开发的甘特图组件,也可以创建其它图表,例如任务树(Task Trees).内置编辑.缩放和 CS ...
- 从零开始编写自己的C#框架(10)——项目实施计划与甘特图
不知不觉本系列已经写了一个月,编码前的各项工作到此也终于结束了.回头看看这一个月走过来,白天上班晚上码字查资料,写写改改,挺不容易的.很多时候有些知识会用,知道是怎么回事,但并不等于能写出来.错别字. ...
- java实现甘特图的2种方法:SwiftGantt和Jfree (转)
http://blog.sina.com.cn/s/blog_50a7c4a601009817.html 第一种方法使用SwiftGantt实现甘特图(进度图推荐这个) import java.a ...
- 使用Excel 2007绘制甘特图
本文将教大家如何使用Excel 2007制作甘特图.Excel并未提供甘特图类型,但还是可以绘制甘特图的,方法就是通过对堆积条形图类型进行自定义,使之显示任务.任务工期和层次结构. 下面的过程可帮助创 ...
- jquery 甘特图开发指南
JQuery.Gantt是一个开源的基于JQuery库的用于实现甘特图效果的可扩展功能的JS组件库. <link rel="stylesheet" href="cs ...
- gantt甘特图的制作过程
甘特图主要是用来做项目管理的,可以清楚的看到任务间的逻辑关系,任务与时间关系和任务间并行关系. 在甘特图中,横轴方向表示时间,纵轴方向并列着活动列表.图表内可以用线条.数字.文字代号等来表示计划(实际 ...
- JS中可拖拽的甘特图和流程图
甘特图: https://www.douban.com/note/441706674/ https://www.uedsc.com/jquery-ganttview.html https://gith ...
- WindowsForm如何实现类似微软project软件的甘特图?
在管理软件研发过程中,特别是涉及项目管理或者生产计划方面,都需要一款类似微软project的控件对项目下的分解任务进行图形展示(甘特图).下面介绍一下在WindowsForm下如何实现类似微软proj ...
- 一款开源且功能强大的C#甘特图控件.NET Winforms Gantt Chart Control
甘特图在项目管理中非常重要,甘特图的思想比较简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间.它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比.管理 ...
随机推荐
- Python学习入门基础教程(learning Python)--2.3.3Python函数型参详解
本节讨论Python下函数型参的预设值问题. Python在设计函数时,可以给型参预设缺省值,当用户调用函数时可以不输入实参.如果用户不想使用缺省预设值则需要给型参一一赋值,可以给某些型参赋值或不按型 ...
- 内容中断随想录(risc cpu的那些事)
发一下牢骚和主题无关: [ 声明:版权所有,欢送转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 从消费电子的soc芯片来讲,当初海内从事芯片设计的企业还是很多的,这其 ...
- 使用 IDEA 创建 Maven Web 项目 (异常)- Disconnected from the target VM, address: '127.0.0.1:59770', transport: 'socket'
运行环境: JDK 版本:1.8 Maven 版本:apache-maven-3.3.3 IDEA 版本:14 maven-jetty-plugin 配置: <plugin> <gr ...
- Dubbo源码学习--服务是如何发布的
相关文章: Dubbo源码学习--服务是如何发布的 Dubbo源码学习--服务是如何引用的 ServiceBean ServiceBean 实现ApplicationListener接口监听Conte ...
- [ios2]iOS 使用subversion管理iOS源代码 【转】
使用subversion管理iOS源代码 1.安装和配置subversion服务器 在windows 服务器上安装VisualSVN-Server,下载地址http://www.visualsvn.c ...
- vue组件,撸第一个
实现此例您可以学到: vue-cli的基本应用 父组件如何向子组件传递值 单文件组件如何引入scss v-on和v-for的基础应用 源码下载 一.搭建vue开发环境 更换镜像到cnpmnpm ins ...
- bzoj1180,2843
1180: [CROATIAN2009]OTOCI Time Limit: 50 Sec Memory Limit: 162 MBSubmit: 967 Solved: 597[Submit][S ...
- USACO 3.3 A Game
A GameIOI'96 - Day 1 Consider the following two-player game played with a sequence of N positive int ...
- ACM第二题 生理周期
人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易 ...
- Kattis - Aaah!
Aaah! Photo by Unknown Jon Marius shouted too much at the recent Justin Bieber concert, and now need ...