以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  两个表做日期对比,在子表特定列自动填写值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=41405)

--  作者:975751585
--  发布时间:2013/10/18 16:33:00
--  两个表做日期对比,在子表特定列自动填写值
表A(父表) 内容为用户基础信息;其中一列为“办理时间”
表B(子表)内容为用户交费信息;其中一列为“交费日期”    这两个表的“时间”格式都为“年月日”

对表B输入信息时,将输入的“交费日期”,与表A中的“办理时间”对比!
若都是同一年,则在表B“用户类型”列中自动填入“新用户”
否则填入“往年用户” 这个该怎么写......

--  作者:Bin
--  发布时间:2013/10/18 16:38:00
--  
for each dr as datarow in datatables("表B").datarows
     dim drr as datarow = datatables("表A").find("用户ID=\'" & dr("用户ID") & "\'")
     if drr isnot nothing then
         if dr("交费日期").Year=drr("交费日期").year then
              dr("用户类型")="新用户"
         else 
             dr("用户类型")="往年用户"
         end if
     end if
next

--  作者:975751585
--  发布时间:2013/10/18 16:42:00
--  
谢谢,晚上回家试试去
--  作者:狐狸爸爸
--  发布时间:2013/10/19 14:46:00
--  

既然有关联,在表B设置DataColChanged事件代码:

 

Select Case e.dataCol.Name

    Case "交费日期"

        Dim pr As DataRow = e.DataRow.GetParentRow("表A")

        if  pr IsNot Nothoing then

            dim rq1 As date = pr("办理日期")

            Dim rq2 As Date = e.Datarow(“交费日期”)

            if rq1.Year = rq2.Year Then

                  e.datarow("用户类型") = “新用户”

           Else

                  e.datarow("用户类型") = “往年用户”

           End if

End Select

 

楼主可以看看这些例子:

http://www.foxtable.com/help/topics/2649.htm