以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]甘特图绘制。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67533)

--  作者:liuxianjie1980
--  发布时间:2015/4/25 16:35:00
--  [求助]甘特图绘制。

按照教程中的“编码绘制甘特图”,出现了调用目标错误的提示,

 

错误所在事件:表,项目任务明细表窗口_Table2,DrawCell
详细错误信息:
调用的目标发生了异常。
从字符串“第一列”到类型“Date”的转换无效。

 

同时 在该窗口的afterload事件中加入代码,(代码见教程),系统提示“不存在项目任务明细表窗口_Table2,”


[此贴子已经被作者于2015/4/25 16:42:01编辑过]

--  作者:Bin
--  发布时间:2015/4/25 16:46:00
--  
你DrawCell事件代码没写对.  代码发出来.


第二个问题你表名没写对.

--  作者:liuxianjie1980
--  发布时间:2015/4/25 16:55:00
--  

drawcell代码:

 

If DrawGannt Then
    Dim r As Row  = Tables("任务明细表").Rows(e.Row.Index)
    Dim dt1 As Date = r("开始时间")
    Dim dt2 As Date = r("结束时间")
    Dim dt As Date = e.Col.Name.Replace("年","-").Replace("月_","-")
    If dt>=dt1 AndAlso dt<=dt2 Then
        e.StartDraw()
        If dt < Date.Today Then
            e.Graphics.FillRectangle(Brushes.Green,e.x ,e.y + 5, e.Width, e.Height - 10)
        Else
            e.Graphics.FillRectangle(Brushes.Red,e.x ,e.y + 3, e.Width, e.Height - 7)
        End If
        e.EndDraw()
    End If
End If


--  作者:Bin
--  发布时间:2015/4/25 16:59:00
--  
Dim dt As Date = e.Col.Name.Replace("年","-").Replace("月_","-")

出错肯定是这句代码.  你检查你的列名     如果你的列名是"第一列"  那么后面的代码操作之后 还是第一列  "第一列" 这个字符串 当然无法转换为日期.肯定会报错.

你看一下帮助的列名是什么规格的,就明白了

--  作者:liuxianjie1980
--  发布时间:2015/4/25 16:59:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:无标题3.jpg
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2015/4/25 17:06:00
--  
项目任务明细表窗口_窗口控件名    你选择那个表控件看看名称是啥
--  作者:liuxianjie1980
--  发布时间:2015/4/25 17:08:00
--  

bin:

 

那句代码的意思,就是说:将开始时间和结束时间这个两个列进行转换,对吗?我的“任务明细表”中这两个列均为日期列啊

[此贴子已经被作者于2015/4/25 17:07:59编辑过]

--  作者:liuxianjie1980
--  发布时间:2015/4/25 17:10:00
--  
控件名为“table2”
--  作者:Bin
--  发布时间:2015/4/25 17:14:00
--  
大小写是区分的哦
--  作者:liuxianjie1980
--  发布时间:2015/4/25 17:27:00
--  

老大啊,都是大写的,应该没有问题啊,我想再笨的话,有些基本的东西我还是不会出错的,到底怎么回事呢?

 

 

还有,上面提到的所谓第一列,应该指的是table2的第一列吗?