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
甘特图在项目管理中非常重要,甘特图的思想比较简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间.它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比.管理 ...
随机推荐
- Dockerfile与Docker构建流程解读
摘要 本文主要讨论了对docker build的源码流程进行了梳理和解读,并分享了在制作Dockerfile过程中的一些实践经验,包括如何调试.优化和build中的一些要点.另外,还针对现有Docke ...
- easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大 >>>>>>>>>>> ...
- Zookeeper 安装和配置
单机模式 下载zookeeper的安装包之后, 解压到合适目录. 进入zookeeper目录下的conf子目录, 创建zoo.cfg: tickTime=2000 dataDir=/Users/app ...
- 【C#】Switch datatype between object and byte[]
This sample shows how to turn object to byte[], as well as turn byte[] to object. So,I can turn any ...
- window7环境下VMWare自定义安装Linux虚拟机完全教程
1.首先准备好以下工具和安装包,最好到官网下载: VMWare 8.x,注意版本不易过高,因为很多时候会出现和Linux镜像不兼容的情况,下载地址:http://www.vmware.com/cn.h ...
- 【.NET】电话号码打星号(隐藏部分)
描述:支持多个电话: //隐藏部分内容,支持一个值有多个联系方式,用逗号隔开.//参数:value - 值,subIndex - 从第几位开始,subQty - 隐藏几位数 protected str ...
- Some Error
0x01 E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). sudo ...
- Front-End(二)——HTML
本文主要对html迭代学习中的要点.冷点简述罗列. html之前也说过,主要为了描述页面的结构和内容,合理使用结构化的标签,<h1>.<div>等,有利于前端开发,也有利于搜索 ...
- ios用storyboard快速创建静态cell
在实际开发中经常会遇到下面这样的页面,通常我们用静态cell来做可以快速创建,提高效率 下面讲一下用storyboard创建方法,将一个tableViewController控制器拖入storyboa ...
- 系统不识别某些Android设备:adb devices不显示问题解决
1.获取厂商android设备ID 电脑连接android设备,然后执行命令: system_profiler SPUSBDataType 2.将厂商ID添加到 adb_usb.ini 文件中 Mac ...