以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  一个登记状态列有借出与归还两个状态,怎么判断两个状态不平等时候,显示借出状态最后一行数据呢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114963)

--  作者:李孝春
--  发布时间:2018/2/26 23:17:00
--  一个登记状态列有借出与归还两个状态,怎么判断两个状态不平等时候,显示借出状态最后一行数据呢?

怎么实现一个使用记录表中 有一个编号列  一个登记状态列  一个录入时间列

 

当编号为1的时候  如果登记状态有“借出”“归还”两个状态的时候,判断为“0”  也就是不再显示当前编号为1的数据行

反之,如果登记状态只有“借出”状态的时候,或者有两个借出状态  但是只有一个归还状态的时候,必须显示当前编号为1的数据行,且显示录入时间为最后一个借出状态的数据行

 

怎么操作呢


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

--  作者:有点蓝
--  发布时间:2018/2/26 23:24:00
--  
不能理解你的逻辑
--  作者:李孝春
--  发布时间:2018/2/27 1:21:00
--  回复:(有点蓝)不能理解你的逻辑

当编号是一样的时候,登记状态如果有多个借出 多个归还   当借出等于归还的时候  该编号数据不要显示出来啦

如果当借出大于归还的时候,显示该编号最后一条借出数据


--  作者:有点甜
--  发布时间:2018/2/27 9:22:00
--  

首先分组统计各个编号的借出数和归还数,然后得到相减的结果,显示出对应数据。

 

如果还需要在原表那里显示,就根据编号,把最后一行数据显示出来。


--  作者:李孝春
--  发布时间:2018/2/27 10:44:00
--  回复:(有点甜)首先分组统计各个编号的借出数和归还...

不得要领哦  分组统计中  无法对登记状态这个字符进行统计

 


--  作者:有点甜
--  发布时间:2018/2/27 11:13:00
--  
以下是引用李孝春在2018/2/27 10:44:00的发言:

不得要领哦  分组统计中  无法对登记状态这个字符进行统计

 

 

哦,是交叉统计。得到统计数据,然后就可以对统计表筛选了。

 

如果要对原表筛选,就比较麻烦,要额外编写代码。


--  作者:李孝春
--  发布时间:2018/2/27 11:16:00
--  回复:(有点甜)首先分组统计各个编号的借出数和归还...

不得要领   例子在窗口管理里面的用户记录中  麻烦老师多多指导   密码默认888

 

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


--  作者:有点甜
--  发布时间:2018/2/27 11:39:00
--  

参考代码

 

Dim g As New CrossTableBuilder("统计表1", DataTables("用户记录_Table1"))
g.HGroups.AddDef("名称")
g.HGroups.AddDef("案件编号")
g.HGroups.AddDef("编号")
g.HGroups.AddDef("序号")
g.HGroups.AddDef("数量")
g.HGroups.AddDef("承办人")
g.VGroups.AddDef("登记状态")
g.Totals.AddDef("案件编号", AggregateEnum.Count, "案件编号")
Dim t = e.form.controls("Table1").Table
t.datasource = g.BuildDataSource
\'t.filter = "案件编号_2 > 案件编号_1"


--  作者:李孝春
--  发布时间:2018/2/27 12:32:00
--  回复:(有点甜)参考代码 Dim g As New Cro...

有点甜老师  貌似我要的好像不是这样

这个表统计的是所有借出与归还

然后显示了案件编号

 

我想实现的是借出>归还  的数据  案件编号显示出来  且显示该案件编号最后一条借出记录数据


--  作者:有点甜
--  发布时间:2018/2/27 14:56:00
--  

1、加上条件就行,如 t.filter = "案件编号_2 > 案件编号_1"

 

2、或者改成

 

Dim idxs As String = "-1,"
Dim t As Table = e.form.controls("Table1").Table
For Each bh As String In t.DataTable.getvalues("加密字符")
    Dim o As Integer = t.Compute("count(加密字符)", "加密字符 = \'" & bh & "\' and 登记状态 = \'借出\'")
    Dim i As Integer = t.Compute("count(加密字符)", "加密字符 = \'" & bh & "\' and 登记状态 = \'归还\'")
    If o >= i Then
        idxs &= t.DataTable.Find("加密字符 = \'" & bh & "\' and 登记状态 = \'借出\'", "_Identify desc")("_Identify") & ","
    End If
Next
t.filter = "_Identify in (" & idxs.trim(",") & ")"