Foxtable(狐表)用户栏目专家坐堂 → SQLGroupTableBuilder中AddExp的条件表达式


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

主题:SQLGroupTableBuilder中AddExp的条件表达式

美女呀,离线,留言给我吧!
lfz123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4607 威望:0 精华:0 注册:2018/3/24 18:04:00
SQLGroupTableBuilder中AddExp的条件表达式  发帖心情 Post By:2020/4/11 10:15:00 [只看该作者]

老师,黄色条件部分应该怎么写啊,数据源是access,表达式里面的红色背景是新生成的统计列
Dim bd1 As New SQLGroupTableBuilder("统计表1","会计科目") 
bd1.C
bd1.AddTable("会计科目","一级码","凭证明细","一级码")
bd1.Groups.AddDef("{会计科目}.一级码")
bd1.Groups.AddDef("科目名称")
bd1.Groups.AddDef("方向")
bd1.Groups.AddDef("期初余额")
bd1.Totals.AddDef("借方金额","借方累计")
bd1.Totals.AddDef("贷方金额","贷方累计")
'bd1.Totals.AddExp("期末余额","方向 = '借',IsNull([期初余额],0) + ISNULL([借方累计],0) - ISNULL([贷方累计],0),IsNull([期初余额],0) + ISNULL([贷方累计],0) - ISNULL([借方累计],0))")
Tables("窗口1_table2").DataSource = bd1.BuildDataSource
[此贴子已经被作者于2020/4/11 10:25:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/11 10:26:00 [只看该作者]

bd1.Totals.AddExp("期末余额","IIF(方向 = '借',IsNull([期初余额],0) + ISNULL([借方累计],0) - ISNULL([贷方累计],0),IsNull([期初余额],0) + ISNULL([贷方累计],0) - ISNULL([借方累计],0))")

 回到顶部
美女呀,离线,留言给我吧!
lfz123
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4607 威望:0 精华:0 注册:2018/3/24 18:04:00
回复:(有点蓝)bd1.Totals.AddExp("期末余额","IIF(...  发帖心情 Post By:2020/4/11 10:36:00 [只看该作者]


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

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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/11 11:04:00 [只看该作者]

如果是SqlServer,改为case when :http://www.foxtable.com/webhelp/topics/2960.htm

 回到顶部
美女呀,离线,留言给我吧!
lfz123
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4607 威望:0 精华:0 注册:2018/3/24 18:04:00
回复:(有点蓝)如果是SqlServer,改为case whe...  发帖心情 Post By:2020/4/11 12:10:00 [只看该作者]

老师是access数据源喔


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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/11 13:43:00 [只看该作者]

Dim bd1 As New SQLGroupTableBuilder("统计表1","会计科目") 
bd1.C
bd1.AddTable("会计科目","一级码","凭证明细","一级码")
bd1.Groups.AddDef("{会计科目}.一级码")
bd1.Groups.AddDef("科目名称")
bd1.Groups.AddDef("方向")
bd1.Groups.AddDef("期初余额")
bd1.Totals.AddDef("借方金额","借方累计")
bd1.Totals.AddDef("贷方金额","贷方累计")
Tables("窗口1_table2").DataSource = bd1.BuildDataSource
DataTables("窗口1_table2").DataCols.Add("期末余额",Gettype(Double),""IIF(方向 = '借',IsNull([期初余额],0) + ISNULL([借方累计],0) - ISNULL([贷方累计],0),IsNull([期初余额],0) + ISNULL([贷方累计],0) - ISNULL([借方累计],0))"")

 回到顶部
美女呀,离线,留言给我吧!
lfz123
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4607 威望:0 精华:0 注册:2018/3/24 18:04:00
  发帖心情 Post By:2020/4/11 14:26:00 [只看该作者]

老师,此段代码的另外一个问题:我希望统计表能显示父表(会计科目)里面所有的一级码,子表(凭证明细)里面没有的也显示出来,目前此段代码只能显示子表(凭证明细)里面有的一级码
Dim bd1 As New SQLGroupTableBuilder("统计表1","会计科目") 
bd1.C
bd1.AddTable("凭证明细","一级码","会计科目","一级码")
bd1.Groups.AddDef("{会计科目}.一级码")
bd1.Groups.AddDef("科目名称")
bd1.Groups.AddDef("方向")
bd1.Groups.AddDef("期初余额")
bd1.Totals.AddDef("借方金额","借方累计")
bd1.Totals.AddDef("贷方金额","贷方累计")
Tables("窗口1_table2").DataSource = bd1.BuildDataSource
DataTables("窗口1_table2").DataCols.Add("期末余额",Gettype(Double),""IIF(方向 = '借',IsNull([期初余额],0) + ISNULL([借方累计],0) - ISNULL([贷方累计],0),IsNull([期初余额],0) + ISNULL([贷方累计],0) - ISNULL([借方累计],0))"")

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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/11 14:37:00 [只看该作者]

Dim bd1 As New SQLGroupTableBuilder("统计表1","会计科目") 
bd1.C
bd1.AddTable("凭证明细","一级码","会计科目","一级码",JoinModeEnum.Right)
bd1.Groups.AddDef("{会计科目}.一级码")

 回到顶部
美女呀,离线,留言给我吧!
lfz123
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4607 威望:0 精华:0 注册:2018/3/24 18:04:00
回复:(有点蓝)Dim bd1 As New SQLGroupTableBuilde...  发帖心情 Post By:2020/4/11 14:52:00 [只看该作者]

错误提示如下

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


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
完整代码如下:
Dim cnt As WinForm.ComboBox = e.Form.Controls("ComboBox1")
If cnt.Text > "" Then
    Dim d As Date = cdate(cnt.Text)
    Dim bd1 As New SQLGroupTableBuilder("统计表1","会计科目")
    bd1.C
    bd1.AddTable("凭证明细","一级码","会计科目","一级码",JoinModeEnum.Right)
    bd1.filter = "{凭证明细}.月份 <= " & d.month
    bd1.Groups.AddDef("{会计科目}.一级码") '
    bd1.Groups.AddDef("科目名称")
    bd1.Groups.AddDef("方向")
    bd1.Groups.AddDef("期初余额")
    bd1.Totals.AddDef("借方金额","借方累计")
    bd1.Totals.AddDef("贷方金额","贷方累计")
    Tables("窗口1_table2").DataSource  = bd1.BuildDataSource    
    With DataTables("窗口1_table2").DataCols
        .Add("期末余额",Gettype(Double), "iif(方向 = '借',IsNull([期初余额],0) + ISNULL([借方累计],0) - ISNULL([贷方累计],0),IsNull([期初余额],0) + ISNULL([贷方累计],0) - ISNULL([借方累计],0))")
    End With
End If


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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/11 15:02:00 [只看该作者]

改为JoinModeEnum.left试试

或者

bd1.AddTable("会计科目","一级码","凭证明细","一级码",JoinModeEnum.left)

 回到顶部
总数 35 1 2 3 4 下一页