Foxtable(狐表)用户栏目专家坐堂 → 赋值问题


  共有2038人关注过本帖树形打印复制链接

主题:赋值问题

美女呀,离线,留言给我吧!
xiaohuli
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
赋值问题  发帖心情 Post By:2015/7/1 15:27:00 [只看该作者]

老师,有两张表,一张是信息表,另一张是资产表。资产表中有A类,A类编码,B类,B类编码,C类,C类编码等,同时信息表中也有这些相应的字段,

然后在录入资产表的时候,A类,B类,C类都是从后台数据库中取到的,然后我想实现,当填入A类时,顺便将A类所对应的A类编码也自动从后台数据库中取过来填到资产表中。之前我是通过将信息表加载过来后实现的,代码如下。

Select Case e.DataCol.Name
   
    Case "A类"
        Dim dr As  DataRow = DataTables("信息表").Find("A类='"& e.DataRow("A类") &"'")
        e.DataRow("A类编码") = dr("A类编码")
    Case "B类"
        Dim dr As  DataRow = DataTables("信息表").Find("B类='"& e.DataRow("B类") &"'")
        e.DataRow("B类编码") = dr("B类编码")
        e.DataRow("C类编码") = dr("C类编码")
        '
    Case "C类"
        Dim dr As  DataRow = DataTables("信息表").Find("C类='"& e.DataRow("C类")
        e.DataRow("C类编码") = dr("C类编码")
       
    Case "A类编码","B类编码","C类编码"
        Dim dr  As  DataRow = e.DataRow
        Dim pr  As  DataRow
        If dr.IsNull("A类编码") OrElse dr.IsNull("B类编码") OrElse dr.IsNull("C类编码")   Then
            dr("顺序号") =  Nothing
        Else
            Dim bh As String = e.DataRow("A类编码") &  e.DataRow("B类编码") &  e.DataRow("C类编码") '生成编号的前缀
           
            If e.DataRow("资产编码").StartsWith(bh) = False '如果编号前缀不符
                Dim  max As String
                Dim  idx As  Integer
                Dim flt As String
                flt = "A类编码 = '"& e.DataRow("A类编码") & "' And B类编码 = '"& e.DataRow("B类编码") & "' And C类编码 = '"& e.DataRow("C类编码") & "'   And [_Identify] <> " & e.DataRow("_Identify")
                max = e.DataTable.Compute("Max(资产编码)",flt) '取得该类资产编码的最大编号
                If  max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(4,3)) + 1  '获得最大编号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                   
                End  If
                e.DataRow("顺序号") = Format(idx,"000")
                e.DataRow("资产编码")=  e.DataRow("A类编码") &  e.DataRow("B类编码") &  e.DataRow("C类编码") &  e.DataRow("顺序号")
               
                '
            End  If
        End  If
        '
End Select

 

但这样写的话,必须要将信息表从后台加载过来才能取到A类编码的值,否则的话取不到,我现在填入A类的时候,直接将A类编码从后台判断取过来,这样的功能应该怎么才能实现呀。
'


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/1 15:29:00 [只看该作者]

 用SqlFind 代替 Find

 

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

 


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/7/1 15:50:00 [只看该作者]

这样的话,还是不对的,根本就取不到值。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/1 15:53:00 [只看该作者]

 不,可,能

 回到顶部