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 甘特图的更多相关文章

  1. Twproject Gantt开源甘特图功能扩展

    1.Twproject Gantt甘特图介绍 Twproject Gantt 是一款基于 jQuery 开发的甘特图组件,也可以创建其它图表,例如任务树(Task Trees).内置编辑.缩放和 CS ...

  2. 从零开始编写自己的C#框架(10)——项目实施计划与甘特图

    不知不觉本系列已经写了一个月,编码前的各项工作到此也终于结束了.回头看看这一个月走过来,白天上班晚上码字查资料,写写改改,挺不容易的.很多时候有些知识会用,知道是怎么回事,但并不等于能写出来.错别字. ...

  3. java实现甘特图的2种方法:SwiftGantt和Jfree (转)

    http://blog.sina.com.cn/s/blog_50a7c4a601009817.html 第一种方法使用SwiftGantt实现甘特图(进度图推荐这个)   import java.a ...

  4. 使用Excel 2007绘制甘特图

    本文将教大家如何使用Excel 2007制作甘特图.Excel并未提供甘特图类型,但还是可以绘制甘特图的,方法就是通过对堆积条形图类型进行自定义,使之显示任务.任务工期和层次结构. 下面的过程可帮助创 ...

  5. jquery 甘特图开发指南

    JQuery.Gantt是一个开源的基于JQuery库的用于实现甘特图效果的可扩展功能的JS组件库. <link rel="stylesheet" href="cs ...

  6. gantt甘特图的制作过程

    甘特图主要是用来做项目管理的,可以清楚的看到任务间的逻辑关系,任务与时间关系和任务间并行关系. 在甘特图中,横轴方向表示时间,纵轴方向并列着活动列表.图表内可以用线条.数字.文字代号等来表示计划(实际 ...

  7. JS中可拖拽的甘特图和流程图

    甘特图: https://www.douban.com/note/441706674/ https://www.uedsc.com/jquery-ganttview.html https://gith ...

  8. WindowsForm如何实现类似微软project软件的甘特图?

    在管理软件研发过程中,特别是涉及项目管理或者生产计划方面,都需要一款类似微软project的控件对项目下的分解任务进行图形展示(甘特图).下面介绍一下在WindowsForm下如何实现类似微软proj ...

  9. 一款开源且功能强大的C#甘特图控件.NET Winforms Gantt Chart Control

    甘特图在项目管理中非常重要,甘特图的思想比较简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间.它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比.管理 ...

随机推荐

  1. mybatis中updateByPrimaryKeySelective

    mybatis中updateByPrimaryKeySelective等选择性操作在判断时对于VARCHAR类型需要同时判断非空和非空串 <if test="description ! ...

  2. “Will not add file alias 'samefile' ('SameFile' already exists in index)” when `git add/commit` operation

    从远程仓库pull下来的代码有两个类类名首字母小写出现如下情况 然后我想删了重新写一下(就是把这个类删了,代码复制到名字正确的类里面),然后commit的时候出现这个错误,后来删一个commit一下, ...

  3. Maven3在Eclipse上安装插件

    eclipse 安装插件的方式最常见的有两种: 1. 一种是在线安装,这貌似是用的最多的,就是:Help -->  Install New Software,然后输入 HTTP 地址来安装,但有 ...

  4. 转]python 结巴分词(jieba)学习

    原文  http://www.gowhich.com/blog/147 主题 中文分词Python 源码下载的地址:https://github.com/fxsjy/jieba 演示地址:http:/ ...

  5. 函数四种调用模式以及其中的this指向

    第一种:函数直接执行模式 function add(a,b){ console.log(this); return a+b; } add(10,20)//this===window 第二种:对象方法的 ...

  6. 关于angularjs的$state.go()与ui-sref传参问题

    上次转发过关于angularjs回退的文章,回退用到的还是js的回退功能,直接用history.back();实现功能,当时顺便提了下$state.go()有关路由跳转. 那这回就全面解析下$stat ...

  7. 为什么说2017全球云计算大会中国站 (Cloud Connect China 2017)不得不参加?

    2017全球云计算大会中国站将继续关注全球云计算产业现状及最热门的领域,设立主题论坛.2017全球云计算大会中国站将于2017年9月5-7日在上海世博展览馆.正如去年9月活动现场所预告的,2017年除 ...

  8. JavaScript中String.prototype.replace() 方法的使用

    摘抄于:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace ...

  9. Linux 编译安装 源代码

    编译安装 源代码包的安装一般为下载软件源代码,然后编译安装. 常见的C程序软件的安装步骤是 configure, make, make install三部曲,大致是下面这样操作: 首先得安装gcc.m ...

  10. 第13章 MySQL高级编程

    1.事务:一个或一系列的查询: 2.使用事务安全的表格类型(通过InnoDB): ①关闭自动提交: set autocommit=0; //若自动提交被打开,须使用如下语句开始一个事务: //  st ...