找回密码
 立即注册

QQ登录

只需一步,快速开始

一萧一剑

中级会员

30

主题

70

帖子

650

积分

中级会员

积分
650

活字格认证微信认证勋章元老葡萄

一萧一剑
中级会员   /  发表于:2016-6-24 15:45  /   查看:6918  /  回复:16
c1GanttView 在使用时,碰到个很奇怪的问题,数据库绑定到Task 的属性 Start、Finish值, 界面显示的数据和数据库里的数据不一致,不知道是什么原因导致的? 日历?  请帮忙解答,谢谢。
界面截图:

数据库截图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

16 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-6-30 11:31:52
推荐
一萧一剑 发表于 2016-6-30 09:02
我发给你的DEMO是直接从Excel绑定数据的, 没有任何其他的业务逻辑呢。
  在DEMO中只有一个界面文件  Wi ...

2014版的license不能激活2016V1版的产品,但是最新版的可以进行试用。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-6-24 17:57:09
沙发
从图片上看不出有什么问题。
最好提供相关的Demo,我帮你看看。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
一萧一剑
中级会员   /  发表于:2016-6-27 11:55:21
板凳
DEMO要连数据库的,数据库比较大, 我把这段的源代码贴出来, 请帮忙看下有没有什么问题?    和日历设置有什么关系吗?   
看数据为什么都是06分开始, 06分结束呢 ?  很奇怪,又不知道是什么原因?
代码:

         /// <summary>
        /// 加载当前排程数据
        /// </summary>
        public void LoadData(int numMainID)
        {
            try
            {
                DataTable dt = APSMainDAL.GetAPSMainInfo(numMainID);

                c1GanttView1.Tasks.AllowNew = true;
                //Task[] taskList=new Task[1];
                //c1GanttView1.Tasks.CopyTo(taskList, 0);
                c1GanttView1.Tasks.Clear();

                if (dt != null)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                       DataRow dr = dt.Rows[i];
                        //task
                        Task task = c1GanttView1.Tasks.AddNew();

                        task.Mode = TaskMode.Manual;
                        task.SetFieldValue("numIndex", dr["numIndex"]);
                        task.SetFieldValue("strWorkShopName", dr["strWorkShopName"]);
                        task.SetFieldValue("strLineID", dr["strLineID"]);
                        task.SetFieldValue("ClassType", dr["strClassType"]);
                        task.Name = dr["strStepMONO"].ToString();
                        task.SetFieldValue("strSiteName", dr["strSiteName"]);
                        task.SetFieldValue("strPartID", dr["strPartID"]);
                        task.SetFieldValue("numMOQty", dr["numMOQty"]);
                        task.SetFieldValue("numPlanPCSQty", dr["numPlanPCSQty"]);

                        //task.PercentComplete  完成百分比
                        if (dr["dt_PlanBng"] != null && dr["dt_PlanBng"] != DBNull.Value)
                            task.Start = Convert.ToDateTime(dr["dt_PlanBng"]);
                        if (dr["dt_PlanEnd"] != null && dr["dt_PlanEnd"] != DBNull.Value)
                            task.Finish = Convert.ToDateTime(dr["dt_PlanEnd"]);
                        //task.Duration 持续时间
                        //task.DurationUnits = DurationUnits.Hours;
                        //task.Duration = 10; //Convert.ToDouble(dr["numUsedMinutes"]);
                    }
                }

                    //dt_Project_Bng = (DateTime)dt.Compute("min(dt_PlanBng)", null);
                    //dt_Project_End = (DateTime)dt.Compute("Min(dt_PlanEnd)", null);

                    //c1GanttView1.StartDate = dt_Project_Bng;
                    //c1GanttView1.FinishDate = dt_Project_End;
            }
            catch (Exception ex)
            {
                MessageBox.Show("错误,信息:"+ex.Message);
            }
        }
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-6-27 15:03:30
地板
一萧一剑 发表于 2016-6-27 11:55
DEMO要连数据库的,数据库比较大, 我把这段的源代码贴出来, 请帮忙看下有没有什么问题?    和日历设置有 ...

从代码来看,设置了Duration,所以按照设置的时间进行了取整。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
一萧一剑
中级会员   /  发表于:2016-6-27 15:22:36
5#
  没有设置Duration属性, 代码是注释状态的。   时间也不是取整,总之这个问题很奇怪, 调试时后台数据又没什么问题。
这个项目很重要,还请帮忙解决,如有必要请电话沟通或QQ联系。QQ: 745296767
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-6-27 17:39:26
6#
一萧一剑 发表于 2016-6-27 15:22
没有设置Duration属性, 代码是注释状态的。   时间也不是取整,总之这个问题很奇怪, 调试时后台数据又 ...

很抱歉我们不提供QQ的技术支持。
我们建议您提供可以重现问题的Demo,我们可以帮您看看。
如果因为数据源过大无法发送,可以做一个简化版的可以重现问题的Demo。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
一萧一剑
中级会员   /  发表于:2016-6-28 13:19:11
7#
本帖最后由 一萧一剑 于 2016-6-28 13:21 编辑

@Alice,你好,DEMO见附件,我把用到的数据从Excel中获取导入,模拟从数据库中获取。
运行效果图如下:


相关代码块:  
界面文件:frmAPSMain.cs
  public void LoadData(int numMainID)
        {
            try
            {
                DataTable dt ;//= APSMainDAL.GetAPSMainInfo(numMainID);
                // 从Excel读取数据,模拟从数据库读取数据
                string strFilePath = Application.StartupPath+"\\"+"PCInfo.xlsx";
                dt = WindowsForms.App_Code.Aspose.ReadExcel(strFilePath);

                c1GanttView1.Tasks.AllowNew = true;
                //Task[] taskList=new Task[1];
                //c1GanttView1.Tasks.CopyTo(taskList, 0);
                c1GanttView1.Tasks.Clear();

                if (dt != null)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                       DataRow dr = dt.Rows;
                        //task
                        Task task = c1GanttView1.Tasks.AddNew();

                        task.Mode = TaskMode.Manual;
                        task.SetFieldValue("numIndex", dr["numIndex"]);
                        task.SetFieldValue("strWorkShopName", dr["strWorkShopName"]);
                        task.SetFieldValue("strLineID", dr["strLineID"]);
                        task.SetFieldValue("ClassType", dr["strClassType"]);
                        task.Name = dr["strStepMONO"].ToString();
                        task.SetFieldValue("strSiteName", dr["strSiteName"]);
                        task.SetFieldValue("strPartID", dr["strPartID"]);
                        task.SetFieldValue("numMOQty", dr["numMOQty"]);
                        task.SetFieldValue("numPlanPCSQty", dr["numPlanPCSQty"]);

                        //task.PercentComplete  完成百分比
                        if (dr["dt_PlanBng"] != null && dr["dt_PlanBng"] != DBNull.Value)
                            task.Start = Convert.ToDateTime(dr["dt_PlanBng"]);
                        if (dr["dt_PlanEnd"] != null && dr["dt_PlanEnd"] != DBNull.Value)
                            task.Finish = Convert.ToDateTime(dr["dt_PlanEnd"]);

                        //task.Duration 持续时间
                        //task.DurationUnits = DurationUnits.Hours;
                        //task.Duration = 10; //Convert.ToDouble(dr["numUsedMinutes"]);
                    }
                }

                    //dt_Project_Bng = (DateTime)dt.Compute("min(dt_PlanBng)", null);
                    //dt_Project_End = (DateTime)dt.Compute("Min(dt_PlanEnd)", null);

                    //c1GanttView1.StartDate = dt_Project_Bng;
                    //c1GanttView1.FinishDate = dt_Project_End;
            }
            catch (Exception ex)
            {
                MessageBox.Show("错误,信息:"+ex.Message);
            }
        }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-6-28 15:46:01
8#
一萧一剑 发表于 2016-6-28 13:19
@Alice,你好,DEMO见附件,我把用到的数据从Excel中获取导入,模拟从数据库中获取。
运行效果图如下:

...

问题我们收到了,测试后给你回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
一萧一剑
中级会员   /  发表于:2016-6-29 11:41:01
9#
@Alice, DEMO 有测试过了吗?  发现什么问题了没?  请尽快答复,谢谢。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-6-29 14:43:48
10#
一萧一剑 发表于 2016-6-29 11:41
@Alice, DEMO 有测试过了吗?  发现什么问题了没?  请尽快答复,谢谢。

工程太大太复杂,我们打开后无法编译通过。
我们随机安装示例里有提供C1GanttView的数据绑定的随机安装示例,建议您看看。
路径:
\Documents\ComponentOne Samples\WinForms\C1GanttView\CS\DataBinding\

如果您想快速解决问题,最好提供简单的可以运行起来的Demo。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部