以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何求出同一列中相同特征的行的数量?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115527)

--  作者:旭日生
--  发布时间:2018/3/8 15:41:00
--  [求助]如何求出同一列中相同特征的行的数量?
统计出表A“页码”列中,同一流水号下包含相同特征“-”行的数量。

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


[此贴子已经被作者于2018/3/8 15:46:25编辑过]

--  作者:有点甜
--  发布时间:2018/3/8 16:06:00
--  

没看懂你的逻辑。

 

上传具体项目,说明要计算什么,最后计算结果放到哪里。


--  作者:旭日生
--  发布时间:2018/3/8 16:16:00
--  
就是统一同一流水号(如48615)下,页码列中有3个包含“-”字符的。我想得到这个“3”。
48611中,为3。
48612中,为2。
获得这些数据,以便用于其它地方引用的。
[此贴子已经被作者于2018/3/8 16:20:07编辑过]

--  作者:有点甜
--  发布时间:2018/3/8 17:15:00
--  

比如代码

 

Dim n = DataTables("表A").Compute("count(流水号)", "流水号 = \'48615\' and 页码 like \'%-%\'")

msgbox(n)


--  作者:旭日生
--  发布时间:2018/3/9 11:11:00
--  
这是一个一个计算,不是我想要的。我需要算出每个流水号对应的n值,并且能够引用这个n值到另外的代码中。弄了半天,没搞出来。
以下是引用有点甜在2018/3/8 17:15:00的发言:

比如代码

 

Dim n = DataTables("表A").Compute("count(流水号)", "流水号 = \'48615\' and 页码 like \'%-%\'")

msgbox(n)

[此贴子已经被作者于2018/3/9 11:11:41编辑过]

--  作者:有点甜
--  发布时间:2018/3/9 12:18:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/2394.htm

 


--  作者:旭日生
--  发布时间:2018/3/9 18:01:00
--  

刷新表格DAJG_SSFZXX列“LSH”,运行如下代码,为什么系统会崩溃呢?如何解决?

   For Each nm As String In DataTables("DAJG_SSJCBM").GetValues("LSH")
            Dim dr As DataRow =  DataTables("DAJG_SSFZXX").AddNew()
            dr("LSH") = nm
            Dim n = DataTables("DAJG_SSJCYX").Compute("count([LSH])", "LSH = \'nm\' and YEMA Like \'%-%\'")
            msgbox(n)
            If e.DataRow.IsNull("LSH") = False Then
                Dim Filter As String = "[LSH] = \'" & e.DataRow("LSH") & "\' and [JZLB] =  \'Z\'  "
                Dim maxCH As String = DataTables("DAJG_SSJCBM").compute("max(CH)", Filter)
                Dim maxP2 As String = DataTables("DAJG_SSJCBM").compute("max(P2)", filter)
                If maxCH = Nothing Then
                    e.DataRow("ZJCS") = 0
                    e.DataRow("ZJYS") = 0
                Else
                    e.DataRow("ZJCS") = maxCH
                    e.DataRow("ZJYS") = maxP2 +3 + n                    
                End If
                Dim FilterB As String = "[LSH] = \'" & e.DataRow("LSH") & "\' and [JZLB] =  \'F\'  "
                Dim maxCHB As String = DataTables("DAJG_SSJCBM").compute("max(CH)", FilterB)
                Dim maxP2B As String = DataTables("DAJG_SSJCBM").compute("max(P2)", filterB)
                If maxCHB = Nothing Then
                    e.DataRow("FJCS") = 0
                    e.DataRow("FJYS") = 0
                Else
                    e.DataRow("FJCS") = maxCHB
                    e.DataRow("FJYS") = maxP2B +3 + n                    

                End If
            End If
            Dim dr1 As DataRow = e.DataRow
            dr1("AJZCS") = dr1("ZJCS") + dr1("FJCS")
           
        Next

 

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


--  作者:有点甜
--  发布时间:2018/3/9 18:45:00
--  
Select Case e.DataCol.Name
    Case "LSH"
        If e.DataRow.IsNull("LSH") = False Then
           
            Dim n = DataTables("DAJG_SSJCYX").Compute("count([LSH])", "LSH = \'" & e.DataRow("LSH") & "\' and YEMA Like \'%-%\'")
            msgbox(n)
           
            Dim Filter As String = "[LSH] = \'" & e.DataRow("LSH") & "\' and [JZLB] =  \'Z\'  "
            Dim maxCH As String = DataTables("DAJG_SSJCBM").compute("max(CH)", Filter)
            Dim maxP2 As String = DataTables("DAJG_SSJCBM").compute("max(P2)", filter)
            If maxCH = Nothing Then
                e.DataRow("ZJCS") = 0
                e.DataRow("ZJYS") = 0
            Else
                e.DataRow("ZJCS") = maxCH
                e.DataRow("ZJYS") = maxP2 +3 + n
            End If
            Dim FilterB As String = "[LSH] = \'" & e.DataRow("LSH") & "\' and [JZLB] =  \'F\'  "
            Dim maxCHB As String = DataTables("DAJG_SSJCBM").compute("max(CH)", FilterB)
            Dim maxP2B As String = DataTables("DAJG_SSJCBM").compute("max(P2)", filterB)
            If maxCHB = Nothing Then
                e.DataRow("FJCS") = 0
                e.DataRow("FJYS") = 0
            Else
                e.DataRow("FJCS") = maxCHB
                e.DataRow("FJYS") = maxP2B +3 + n
               
            End If
        End If
        Dim dr1 As DataRow = e.DataRow
        dr1("AJZCS") = dr1("ZJCS") + dr1("FJCS")
       
End Select