Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共13 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:求代码

1楼
shixia 发表于:2009/2/27 13:28:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文件管理.table


求代码:
筛选条件:
文件文号相同 同时 文件题名相同 行
操作要求:
在符合以上要求的行中如果其中一行“正文”有内容但“链接地址”没有内容,而另一行正文没有内容但链接地址有内容,把这一行中链接地址复制到前一行的链接地址中,并且把这一行删除,只保留一行,避免重复。
2楼
shixia 发表于:2009/2/27 16:19:00
难道没有人愿意指点吗?
3楼
狐狸爸爸 发表于:2009/2/27 16:28:00

Dim drs As List(Of DataRow)

For Each dr As DataRow in DataTables("收文").DataRows

    If dr.IsNull("文件文号") Then

        Continue For

    End If

    drs = DataTables("收文").Select("文件文号 = '" & dr("文件文号") & "' And 文件题名 = '" & dr("文件题名") & "'")

    If drs.Count > 0 Then

        For i As integer = 1 To drs.Count - 1       

            If drs(i).IsNull("正文") = False Then

                dr("正文") = drs(i)("正文")

            End If

            If drs(i).IsNull("链接地址") = False Then

                dr("链接地址") = drs(i)("链接地址")

            End If

            drs(i)("文件文号") = Nothing

        Next

    End If

Next

DataTables("收文").DeleteFor("文件文号 Is Null")

4楼
shixia 发表于:2009/3/2 10:12:00
谢谢,请教

drs = DataTables("收文").Select("文件文号 = '" & dr("文件文号") & "' And 文件题名 = '" & dr("文件题名") & "'") 与
drs = DataTables("收文").select("[文件文号]='" & dr("文件文号") & "' And [文件题名]='" & dr("文件题名") & "'")   有什么区别?

5楼
smileboy 发表于:2009/3/2 10:14:00
以下是引用shixia在2009-3-2 10:12:00的发言:
谢谢,请教

drs = DataTables("收文").Select("文件文号 = '" & dr("文件文号") & "' And 文件题名 = '" & dr("文件题名") & "'") 与
drs = DataTables("收文").select("[文件文号]='" & dr("文件文号") & "' And [文件题名]='" & dr("文件题名") & "'")   有什么区别?

没有区别

6楼
shixia 发表于:2009/3/2 10:31:00
哦,那么在帮助文档中所有带[]的实际上都可以不用,效果也一样了 ?
7楼
狐狸爸爸 发表于:2009/3/2 13:16:00

有没有[]都可以的,看自己习惯。

8楼
shixia 发表于:2009/3/2 14:29:00
1、dr("正文") = drs(i)("正文")
drs(i)("正文")=dr("正文")有什么不同?我自己反复试了一下,好象有区别,就是把等于号=后面的值传递到=号前去,如 dr("正文") = drs(i)("正文") 就是把 drs(i)("正文") 的值传递给 dr("正文"),那么即使dr("正文")中有值也将改为drs(i)("正文") 中的值。狐爸,能否就这个现象从理论上解释一下,好让我们尽快地理解狐表中代码用法。
2、狐爸给出的代码中,有一个问题我很容易搞错,那就是当在同一个“收文”表中筛选出集合drs时,该dr与drs关系,这两者的关系好象是包含与被包含的关系,我选择了两行数据,删除其它数据,然后克隆这两行数据,并把“链接地址”按行顺序改为1、2、3、4内容,然后用下面的代码试试:
Dim drs As List (Of DataRow)
For Each dr as datarow in datatables("收文").datarows
    if dr.isnull("文件文号") then
        continue for
    end if
    drs=datatables("收文").select("文件文号='" & dr("文件文号") & "' And 文件题名='" & dr("文件题名") & "'")
    if drs.count >0 then
        for i as integer =1 to drs.count-1
            if drs(i).isnull("链接地址")=false then
                output.show(drs(i)("链接地址"))
            end if
        next
    end if
next


显示结果是:4 3 3 4
那么请问狐爸:是否最后两行的内容是否就是drs集合中的数据?如果是的话,为什么把 integer =1 to drs.count-1改为  integer =0to drs.count-1后又显示1 4 2 3 2 3 1 4 把1改为0两者有什么区别?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文件管理.table

9楼
狐狸爸爸 发表于:2009/3/2 14:53:00
实际上是这样的,集合的编号都是从0开始的,但是这里我们始终保留第一行,也就是编号为0的那一行,然后从第二行(编号为1)开始,检查有关列的内容,将有效内容复制到第一行(编号为0),并将第二行开始的所有行的文件文号内容清除。

最后删除所有文件问号内容为空的行,从而实现了相同内容只保留一行的目的。

我建议楼主先细细地多看几次帮助。
[此贴子已经被作者于2009-3-2 15:06:17编辑过]
10楼
shixia 发表于:2009/3/2 15:31:00
狐爸,帮助里我建议不能只有例子,应该对有共同规律的内容多进行小结,把共性规律提炼出来升华到理论上去,不要让我们从1000多页的帮助中自己去提炼、理解、领悟,如果先让我们抓住主要规律和理论,再用这些规律和理论去分析代码,是不是可以提高我们学习进度,是不是可以让更多的人以最快的速度学习和掌握foxtable呢,我为了学习狐表,曾把帮助打印出来,一页页看,但总觉得淹没在代码中,后来,我把所有datatables datatable datarows datarow 等的属性和方法全部汇总到一张电子表中,不断地归纳和对比,并对每一句代码进行分析,把分析结果抽象归纳出规律,再在看后面的代码同时来验证规律,来丰富规律,前后断断续续看了两个多月才懂个大概,你不要以为我们有你们专业人士的电脑基础。如果不让我们迅速掌握总的规律,一开始就让我们淹没在代码中,将把一大批象我这样的人挡在狐表之外。
[此贴子已经被作者于2009-3-2 15:37:40编辑过]
共13 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 4 queries.