Foxtable(狐表)用户栏目专家坐堂 → 动态删除列


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

主题:动态删除列

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
动态删除列  发帖心情 Post By:2016/2/23 12:45:00 [显示全部帖子]

Dim Builder As New ADOXBuilder
Builder.Open() '打开ADOXBuilder
With Builder.Tables("表A")
    For Each c As DataCol In DataTables("科目余额表").DataCols
        If c.name <> "会计科目" AndAlso c.name <> "会计年度"  Then
            .DeleteColumn("& c &")
        End If
    Next
End With
Builder.Close()

以上代码那里错误,提示如下

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.12.22.1
错误所在事件:窗口,窗口1,Button2,Click
详细错误信息:
在对应所需名称或序数的集合中,未找到项目。


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/23 12:49:00 [显示全部帖子]

找到原因了

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/23 13:19:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "会计年度"
        If e.newvalue IsNot Nothing Then
            For Each mn As DataCol In e.DataTable.DataCols
                If mn.name <> "会计年度"  Then
                    Dim filter As String ="会计年度 = '" & e.DataRow("会计年度") & "'"
                    e.DataRow(mn.name) =DataTables("账项调整借方").Compute("sum(mn.name)",filter)+DataTables("重分类调整借方").Compute("sum(mn.name)",filter)
                End If
            Next
            'ElseIf e.newvalue = Nothing Then
            'For Each mn As String In mns
            'e.DataRow(mn) = Nothing
            'Next
        End If
End Select

 

红色代码错误在那里 提示如下

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.12.22.1
错误所在事件:表,已审借方发生,DataColChanged
详细错误信息:
调用的目标发生了异常。
聚合参数中的语法错误: 需要具有可能的“Child”限定符的单个列参数。


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/23 14:21:00 [显示全部帖子]

我试过了,4楼的错误提示如下:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.12.22.1
错误所在事件:表,已审借方发生,DataColChanged
详细错误信息:
调用的目标发生了异常。
无效的聚合函数 Sum()和类型 String 的用法。


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/23 14:54:00 [显示全部帖子]

全是数值型的

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/3/2 20:37:00 [显示全部帖子]

Dim bbmcs() As String = {"余额横表已审","余额横表未审","发生横表已审借方","发生横表已审贷方","发生横表未审借方","发生横表未审贷方","账项调整借方","账项调整贷方","重分类调整借方","重分类调整贷方"}
For Each bbmc As String In bbmcs
    Dim Builder As New ADOXBuilder
    Builder.Open() '打开ADOXBuilder
    Dim Products As List(Of String)
    Products = DataTables("会计科目").GetValues("科目名称", "科目名称 is not null","_Sortkey")
    For Each c As DataCol In DataTables(bbmc).DataCols
msgbox(c.name)
        If c.name <> "会计年度" AndAlso c.name <> "审核" Then
'msgbox(6)
            If Products.Contains(c.name) = False Then
msgbox(7)
msgbox(c.name)
msgbox(Products.Contains(c.name) = False)
msgbox(c.name)
                Builder.Tables(bbmc).DeleteColumn(" & c.name & ")
msgbox(8)
            End If
        End If
    Next
    Builder.Close() '关闭ADOXBuilder
Next

橙色行的代码错在那里了,提示如下:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.12.22.1
错误所在事件:窗口,建立项目,余额表横表删除多余列,Click
详细错误信息:
在对应所需名称或序数的集合中,未找到项目。


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/3/2 20:39:00 [显示全部帖子]

 Builder.Tables(bbmc).DeleteColumn(c.name) 与 Builder.Tables(bbmc).DeleteColumn("c.name")也都不行


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/3/2 20:47:00 [显示全部帖子]

Dim Builder As New ADOXBuilder
Builder.Open() '打开ADOXBuilder
With Builder.Tables("余额横表已审")
    .DeleteColumn("应收款")
 End With
Builder.Close()

使用帮助中代码也是如上提示,什么原因呀?


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/3/2 22:00:00 [显示全部帖子]

Dim bbmcs() As String = {"余额总表未审","余额明细未审","余额总表已审","余额明细已审"}
For Each bbmc As String In bbmcs
msgbox(1)
    Dim Builder1 As New ADOXBuilder("审计软件数据库")
msgbox(4)
    Builder1.Open() '打开ADOXBuilder
    Dim lis As List (of String)
msgbox("余额"& nms(0) &"年_期初余额")
    lis.Add("余额" & nms(0) & "年_期初余额")
msgbox(2)
    For Each  nm As String  In nms
        Dim str As String = "余额"& nm &"年_借方发生"
        Dim str1 As String = "余额"& nm &"年_贷方发生"
        Dim str2 As String = "余额"& nm &"年_期末余额"
        lis.Add(str)
        lis.Add(str1)
        lis.Add(str2)
    Next

黄色代码错误是什么原因,执行到黄色代码时提示

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.12.22.1
错误所在事件:窗口,建立项目,余额表纵表删除多余列,Click
详细错误信息:
未将对象引用设置到对象的实例。


 回到顶部