Foxtable(狐表)用户栏目专家坐堂 → [求助]遍历如何做?


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

主题:[求助]遍历如何做?

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
[求助]遍历如何做?  发帖心情 Post By:2014/5/8 10:33:00 [只看该作者]


[此贴子已经被作者于2014-5-28 18:00:02编辑过]

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/5/8 10:34:00 [只看该作者]


[此贴子已经被作者于2014-5-28 18:00:13编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/8 10:38:00 [只看该作者]

for each r as row in Tables("档案管理总表.档案管理明细").rows
     r.Locked = True
next
DataTables("档案管理明细").Save()



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/8 10:39:00 [只看该作者]

改一下

 

With Tables("档案管理总表")
    If .Current IsNot Nothing Then
        .Current.Save()
    End If
End With
Dim r As Row = Tables("档案管理总表.档案管理明细").Current
With Tables("档案管理总表.档案管理明细")
    If r("档案编号") = Nothing OrElse r("档案名称") = Nothing OrElse r("档案类型") = Nothing OrElse r("归档日期") = Nothing OrElse r("保管期限") = Nothing OrElse r("档案明细名称") = Nothing OrElse r("部门1") = Nothing OrElse r("部门2") = Nothing OrElse r("办事处") = Nothing OrElse r("档案移交人") = Nothing OrElse r("档案室") = Nothing OrElse r("档案柜") = Nothing OrElse r("档案明细名称") = Nothing OrElse r("档案明细日期") = Nothing OrElse r("档案明细编号") = Nothing
        Messagebox.show("档案明细录入不全,请录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else     
        For i As Integer = 0 To .Rows.count - 1
            .Rows(i).Locked = True

            .Rows(i).Save
        Next
        Messagebox.show("档案明细已保存!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        DataTables("档案管理总表").AllowEdit = False
        DataTables("档案管理明细").AllowEdit = False
    End If
End If
End With

[此贴子已经被作者于2014-5-8 10:57:48编辑过]

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/5/8 10:52:00 [只看该作者]

谢谢甜姐,有时候这些问题你做出来看着就很简单,但是我自己想的时候就是想不到,底子太差了

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/5/8 11:05:00 [只看该作者]

还有一个问题甜姐:
这样保存档案以后,按钮上一条的代码是:
Dim hasSave As Boolean = True
For Each r As Row In Tables("档案管理总表.档案管理明细").Rows
    If r.DataRow.RowState <> DataRowState.Unchanged Then
        hasSave = False
    End If
Next
If hasSave Then
    With Tables("档案管理总表")
        If .Current IsNot Nothing AndAlso .Current.DataRow.RowState = DataRowState.Unchanged Then '如果当前行未曾修改
            .Position = .Position - 1
        End If
    End With '上一条
End If
这样的话只能在点击保存按钮两次以后才能操作上一条,我用messagebox.show试了一下,第一次保存后点按钮上一条hasSave为False,第二次保存后点按钮上一条hasSave就变成了True,这是怎么回事呢?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/8 11:06:00 [只看该作者]

 呵呵,写错了,你把4楼的代码再复制一次。

 

        For i As Integer = 0 To .Rows.count - 1
            .Rows(i).Locked = True

            .Rows(i).Save
        Next

[此贴子已经被作者于2014-5-8 11:06:53编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/8 11:07:00 [只看该作者]

第一次保存,有未保存的行,所以进入这个代码段
 If r.DataRow.RowState <> DataRowState.Unchanged Then
        hasSave = False
    End If

保存过之后,就没有未保存的行,没有进入上面的代码段,自然就没有为它赋值为Flase.

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/5/8 11:10:00 [只看该作者]

果然如此,看来代码的顺序还是至关重要的,多谢甜姐!

 回到顶部