以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]代码编写  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73201)

--  作者:jygyyl
--  发布时间:2015/8/14 10:53:00
--  [求助]代码编写
下面代码注释掉的三行有问题,但不知如何修改,求老师指教!谢谢!

If e.DataCol.Name = "发放状况" AndAlso e.DataRow("发放状况") = True Then
    Dim dr As DataRow = DataTables("TXJL_W0110").AddNew
    For Each dc As DataCol In DataTables("TXJL_W0110").DataCols
        dr("GB103") = e.DataRow("GB103")
        dr("HGB103") = e.DataRow("HGB103")
        dr("GS901") = e.DataRow("GS901")
        dr("GB000") = e.DataRow("GB000")
        dr("GB001") = e.DataRow("GB001")
        dr("GS601") = e.DataRow("GS601")
        dr("GS602") = e.DataRow("GS602")
        \'         dr("GS603") = e.DataRow("GS603").Replace("-",".")
        dr("GS604") = e.DataRow("GS604")
        dr("HGS604") = e.DataRow("HGS604")
        dr("GS605") = e.DataRow("GS605")
        dr("GS606") = e.DataRow("GS606")
        \'dr("GS607") = e.DataRow("GS607").SubString(11,16)
        dr("GS608") = e.DataRow("GS608")
        dr("HGS608") = e.DataRow("HGS608")
        \'         dr("GS1002") = e.DataRow("GS1002")
        dr("GS999") = e.DataRow("GS999")
        dr("HGS601") = e.DataRow("HGS601")
        dr("GS609") = e.DataRow("GS609")
        dr("HGS609") = e.DataRow("HGS609")
    Next
End If


dr("GS603") = e.DataRow("GS603").Replace("-",".")
是想把数据格式由2015-08-14转换为2015.08.14

        \'dr("GS607") = e.DataRow("GS607").SubString(11,16)
是想把字符串截短
[此贴子已经被作者于2015/8/14 11:01:15编辑过]

--  作者:大红袍
--  发布时间:2015/8/14 11:17:00
--  

GS603必须是字符列,才能这样写代码

 

dr("GS603") = e.DataRow("GS603").Replace("-",".")

 

这个报什么错

 

dr("GS1002") = e.DataRow("GS1002")

 

这个要考虑字符是否足够的情况

 

If e.DataRow("GS607").Length >= 16

    dr("GS607") = e.DataRow("GS607").SubString(11, 6)

End If


--  作者:jygyyl
--  发布时间:2015/8/14 11:26:00
--  谢谢大红袍老师
谢谢大红袍老师!我再试试。
第一、第二都是要将日期列转为字符型
第三,应该是字符长度的问题

--  作者:大红袍
--  发布时间:2015/8/14 11:41:00
--  

1、2报什么错?

 


--  作者:jygyyl
--  发布时间:2015/8/14 11:59:00
--  回复:(大红袍)1、2报什么错? 
        dr("GS603") = e.DataRow("GS603").Replace("-",".")
表A"GS603"是日期列,表B"GS603"是字符型,报错如下:
.NET Framework 版本:2.0.50727.8662
Foxtable 版本:2014.11.11.1
错误所在事件:表,TXJL_TXJL,DataColChanged
详细错误信息:
调用的目标发生了异常。
未找到类型“Date”的公共成员“Replace”。

--  作者:大红袍
--  发布时间:2015/8/14 12:00:00
--  

dr("GS603") = Cstr(e.DataRow("GS603")).Replace("-",".")

 

或者

 

dr("GS603") = Format(e.DataRow("GS603"), "yyyy.MM.dd")