Foxtable(狐表)用户栏目专家坐堂 → [求助]请大神帮忙修该下代码了


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

主题:[求助]请大神帮忙修该下代码了

帅哥哟,离线,有人找我吗?
sadfox
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
[求助]请大神帮忙修该下代码了  发帖心情 Post By:2013/3/30 17:25:00 [只看该作者]

1、如何让考核序号自动增加到第18时,出现提示,注意,你的考核序号已经增加到18条

Select e.DataCol.Name
    Case "文档号"
        If e.DataRow.IsNull("文档号") Then
            e.DataRow("考核序号") = Nothing
        Else
            Dim lb As String = e.DataRow("文档号")
            If e.DataRow("考核序号").StartsWith(lb) = False
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(考核序号)","文档号 = '" & lb & "'")
                If max > "" Then '
                    idx = CInt(max.Substring(5,3)) + 1
                Else
                    idx = 1
                End If
                e.DataRow("考核序号") = lb & Format(idx,"000")
            End If
        End If
End Select

2、如何根据考核序号判断,不再填入已经存在的内容。

Dim f As New Filler
f.SourceTable = DataTables("出勤表")
f.SourceCols = "时间,考核事实,依据,加扣分值,考核序号"

f.DataTable = DataTables("文档号")

f.DataCols = "时间,考核事实,依据,加扣分值,考核序号"

f.Fill() '

求大神帮忙啦


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/30 17:31:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/30 17:37:00 [只看该作者]

2、如何根据考核序号判断,不再填入已经存在的内容。

Dim f As New Filler
f.SourceTable = DataTables("出勤表")
f.SourceCols = "时间,考核事实,依据,加扣分值,考核序号"

f.DataTable = DataTables("文档号")

f.DataCols = "时间,考核事实,依据,加扣分值,考核序号"

f.Filter = "编号 = 55526"

f.Fill() '

开少了个编号条件,现在是,执行一次,就填一次,再执行,就把先前已经重复的内容又填充进去,能不能加个语句在填充时,自动根据考核序号判断已经存在的内容不在填充,求大神帮忙啦


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/30 17:44:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/30 18:11:00 [只看该作者]

以下是引用muhua在2013-3-30 17:44:00的发言:

参考这个做吧:

 

Dim nma() As String = {"A1","A2","A3","A4"} 'A表数据来源列
Dim nmb() As String = {"B1","B2","B3","B4"}'B表数据接收列
For dr As DataRow In DataTables("表A").DataRows
    Dim dr2 As DataRow = DataTables("表B").Find("A2='" & dr("B2") & "'")
    If dr2 Is Nothing Then
        For i As Integer = 0 To nma.Length - 1
            dr2(nmb(i)) = dr(nma(i))
        Next
    End If
Next


图片点击可在新窗口打开查看此主题相关图片如下:未命22222名.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-3-30 18:11:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/30 18:30:00 [只看该作者]

Dim nma() As String = {"A1","A2","A3","A4"} 'A表数据来源列
Dim nmb() As String = {"B1","B2","B3","B4"}'B表数据接收列
For Each dr As DataRow In DataTables("表A").DataRows
    Dim dr2 As DataRow = DataTables("表B").Find("A2='" & dr("B2") & "'")
    If dr2 Is Nothing Then
        For i As Integer = 0 To nma.Length - 1
            dr2(nmb(i)) = dr(nma(i))
        Next
    End If
Next


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/30 18:44:00 [只看该作者]

晕,搞昏头头了,删行居然删成表了,晕啊!

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/30 19:24:00 [只看该作者]

以下是引用狐狸爸爸在2013-3-30 18:30:00的发言:

Dim nma() As String = {"A1","A2","A3","A4"} 'A表数据来源列
Dim nmb() As String = {"B1","B2","B3","B4"}'B表数据接收列
For Each dr As DataRow In DataTables("表A").DataRows
    Dim dr2 As DataRow = DataTables("表B").Find("A2='" & dr("B2") & "'")
    If dr2 Is Nothing Then
        For i As Integer = 0 To nma.Length - 1
            dr2(nmb(i)) = dr(nma(i))
        Next
    End If
Next

测试时,提示错误:System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.NullReferenceException: 未将对象引用设置到对象的实例。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/30 20:15:00 [只看该作者]

Dim nma() As String = {"A1","A2","A3","A4"} 'A表数据来源列
Dim nmb() As String = {"B1","B2","B3","B4"}'B表数据接收列
For Each dr As DataRow In DataTables("表A").DataRows
    Dim dr2 As DataRow = DataTables("表B").Find("A2='" & dr("B2") & "'")
    If dr2 Is Nothing Then
        dr2 = DataTables("表B").AddNew()
        For i As Integer = 0 To nma.Length - 1
            dr2(nmb(i)) = dr(nma(i))
        Next
    End If
Next


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/30 21:14:00 [只看该作者]

以下是引用狐狸爸爸在2013-3-30 20:15:00的发言:

Dim nma() As String = {"A1","A2","A3","A4"} 'A表数据来源列
Dim nmb() As String = {"B1","B2","B3","B4"}'B表数据接收列
For Each dr As DataRow In DataTables("表A").DataRows
    Dim dr2 As DataRow = DataTables("表B").Find("A2='" & dr("B2") & "'")
    If dr2 Is Nothing Then
        dr2 = DataTables("表B").AddNew()
        For i As Integer = 0 To nma.Length - 1
            dr2(nmb(i)) = dr(nma(i))
        Next
    End If
Next

测试结果:由于Nothing Then对数值列空值的判断会返回零,所以每次执行就会把表A的空值行不断导入表B,并在数值列显示0,如何解决,不让空值行导入表B?知道原因,不知道方法!


 回到顶部
总数 11 1 2 下一页