Foxtable(狐表)用户栏目专家坐堂 → 流水账设计的详细介绍


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

主题:流水账设计的详细介绍

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/12 10:20:00 [只看该作者]

默认按日期排序即可。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/5/12 10:57:00 [只看该作者]

以下是引用狐狸爸爸在2009-5-12 10:20:00的发言:
默认按日期排序即可。

有道理~  只是一般窗口中都有上一条、下一条和最末条,不知道会不会在点击最末条时,看到的是最后的余额吗?哈哈~


 回到顶部
帅哥哟,离线,有人找我吗?
清风伴流水
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:13 积分:180 威望:0 精华:0 注册:2009/3/4 19:32:00
  发帖心情 Post By:2009/5/12 13:18:00 [只看该作者]

试了一下,如果删除中间行,那么余数不会自动改变???修改数据是可以的--列内容发生变化!但是删除行时没有影响列内容

再完善一下!看看怎么处理比较好!


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/12 13:22:00 [只看该作者]

以下是引用清风伴流水在2009-5-12 13:18:00的发言:

试了一下,如果删除中间行,那么余数不会自动改变???修改数据是可以的--列内容发生变化!但是删除行时没有影响列内容

再完善一下!看看怎么处理比较好!


可以在AfterDeleteDataRow事件中加入代码,重算余额列


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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2014/5/7 13:42:00 [只看该作者]

我想把以下DataColChanged事件中的代码,转换到窗口一个按钮的单击事件代码怎么写?


实现的代码不复杂,只需将DataColChanged事件设为:

Select
Case e.DataCol.Name
    Case
"日期","收入",
"支出"
   
If e.DataRow.Isnull("日期") = False
Then
        For Each dr As DataRow In e.DataTable.Select("[日期] >= #" & e.DataRow("日期") & "#")

            Dim
Val1 As Double = e.DataTable.compute("Sum(收入)","[日期] <= #" & dr("日期") & "#"
)
            Dim
Val2 As Double = e.DataTable.compute("Sum(支出)","[日期] <= #" & dr("日期") & "#"
)
            dr(
"余额") = Val1 - Val2

        Next
   
End If
End
Select


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


加好友 发短信
等级:童狐 帖子:272 积分:2189 威望:0 精华:0 注册:2013/9/26 1:49:00
  发帖心情 Post By:2014/5/7 13:43:00 [只看该作者]

支持,顶起

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


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

 回复15楼,你的意思是点击按钮重新计算?

 

 加一句,新问题,请重新发帖提问。

 

 参考 http://www.foxtable.com/help/topics/1587.htm

 


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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2014/5/7 14:30:00 [只看该作者]

以下是引用有点甜在2014-5-7 14:04:00的发言:

 回复15楼,你的意思是点击按钮重新计算?

 

 加一句,新问题,请重新发帖提问。

 

 参考 http://www.foxtable.com/help/topics/1587.htm

 

 明白了,代码还是写在写在DataColChanged事件中,然后在按钮中单击事件中设置重置列的事件。谢谢!


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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
  发帖心情 Post By:2014/5/7 14:48:00 [只看该作者]

我都是这样做流水账的:
Dim s As Double
Select Case e.DataCol.Name
    Case "收入","支出"
        For Each r As DataRow In e.DataTable.dataRows
            r("余额") = r("收入") - r("支出")
            s+ = r("余额")
            r("余额") = s
        Next
End Select
可能计算速度慢一点,但写代码简单.



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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2014/5/7 15:13:00 [只看该作者]

以下是引用jiterp在2014-5-7 14:30:00的发言:

 明白了,代码还是写在写在DataColChanged事件中,然后在按钮中单击事件中设置重置列的事件。谢谢!

 

我找到了重置列的事件代码,然后放在按钮事件中,执行后列没有重计算,什么原因?

 

但在表界面下,点菜单中的重置列,则可以计算!

 

重置列事件代码:

If CurrentTable IsNot Nothing AndAlso CurrentTable.ColSel >= 0 Then
    Dim dc As DataCol = CurrentTable.Cols(CurrentTable.ColSel).DataCol
    dc.RaiseDataColchanged()
End If


 回到顶部
总数 22 上一页 1 2 3 下一页