以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]外部数据表的列表项目和删除问题求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24541)

--  作者:enirilt
--  发布时间:2012/10/16 21:08:00
--  [求助]外部数据表的列表项目和删除问题求助

1、点开列表项目报错,我看了好多遍也没看出来错在那,代码如下:

If e.Node.Level = 1 Then \'如果单击的是第二层节点
    Dim ps() As String = e.Node.FullPath.Split("\\")
    Dim tr As Row = Tables("收入_tbsr").Current
    Dim dr As DataRow = "SELECT * From {分类} Where [分类] = \'" & dr("分类") & "\' And [明细] = \'" & dr("明细") & "\'"
If dr IsNot Nothing Then \'如果在行政区域表找到对应的行,则将此行的值写入客户表的当前行.
        tr("分类") = dr("分类")
        tr("明细") = dr("明细")       
        e.Form.DropDownBox.Value = tr("明细") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    End If
    e.Form.DropDownBox.CloseDropdown()  \'关闭下拉目录树
End If

2、删除按钮要实现的功能是要删除所有选中行,现在一点就全部删掉了,代码如下:

Dim Result As DialogResult
Result = MessageBox.Show("是否删除选定记录!","提示",MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
If Result = DialogResult.OK Then
   DataTables("收入_tbsr").DeleteFor(Tables("收入_tbsr").filter)
   DataTables("收入_tbsr").save()
End If
Tables("收入_tbsr").AllowEdit = False

3、我想在“收入”表里添加记录后自动在“账户”表里的相关记录的收入列的数据同步增加,因为外部数据窗口表,我不会写这个代码了,恳求帮我简单的写下先谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试项目.rar


图片点击可在新窗口打开查看此主题相关图片如下:qq截图1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图2.jpg
图片点击可在新窗口打开查看


--  作者:mr725
--  发布时间:2012/10/16 21:39:00
--  

1 没看懂你的意思···

2 删除按钮:

Dim Result As DialogResult
Result = MessageBox.Show("是否删除选定记录!","提示",MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
If Result = DialogResult.OK Then
    For i As Integer = Tables("收入_tbsr").count -1 To 0 step -1
        If Tables("收入_tbsr").Rows(i).Checked = True
            Tables("收入_tbsr").Rows(i).Delete()
        End If
    Next
    DataTables("收入_tbsr").save()
End If
Tables("收入_tbsr").AllowEdit = False

[此贴子已经被作者于2012-10-16 21:59:57编辑过]

--  作者:enirilt
--  发布时间:2012/10/16 22:08:00
--  

先谢版主,剩下的问题我明天再详细说明,我的表达能力也很差,呵呵


--  作者:mr725
--  发布时间:2012/10/16 22:30:00
--  

1 这样:?

If e.Node.Level = 1 Then \'如果单击的是第二层节点

    Dim tr As Row = Tables("收入_tbsr").Current
    tr("明细") = e.Node.Name

    e.Form.DropDownBox.CloseDropdown()  \'关闭下拉目录树
End If


--  作者:czy
--  发布时间:2012/10/16 22:35:00
--  

看图中table有复选框,是不是想选中复选框的行删除?

如果是这样可以看看GetCheckedRows


--  作者:enirilt
--  发布时间:2012/10/17 8:02:00
--  
删除问题解决了,第一个问题一半成功了,不报错了,我要实现的目的是明细列用列表自动输入值的同时分类列要自动输入,不知说清楚了没,谢谢啊各位
--  作者:lin_hailun
--  发布时间:2012/10/17 9:27:00
--  
 问题1

Dim dr As DataRow = "SELECT * From {分类} Where [分类] = \'" & dr("分类") & "\' And [明细] = \'" & dr("明细") & "\'"

改成这句

Dim dr As DataRow = LB.Find("[分类] = \'" & ps(0) & "\' And [明细] = \'" & ps(1) & "\'")

--  作者:lin_hailun
--  发布时间:2012/10/17 9:35:00
--  
 看了楼主的代码,楼主为什么不直接用 “外部数据表” 添加表来操作?……
--  作者:mr725
--  发布时间:2012/10/17 9:39:00
--  

加上:
    tr("分类") = e.node.ParentNode.name

 

就可以了,我以为你会呢。


--  作者:enirilt
--  发布时间:2012/10/17 13:55:00
--  
OK了,谢谢,回8楼:我是试着用纯外部数据来做呢,虽然对写代码不懂,想通过这样做来学习,当然离不开大家的热心帮助。