以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]下列加红字的一段代码如何修改?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57187)

--  作者:hrw68529
--  发布时间:2014/9/20 10:26:00
--  [求助]下列加红字的一段代码如何修改?
[求助]下列加红字的一段代码如何修改?姓名列有时会以两个人或三个人的名字出现,如王五、刘七、张八,在一个单元格,用顿号分开,这时如何进行计数统计
Dim tm As String  = ProjectPath & "Attachments\\任免汇报.doc" 
Dim fl As String = ProjectPath & "Reports\\任免汇报.doc" 
Dim wrt As New WordReport(Tables("政府会议_任免"),tm,fl) \'定义一个WordReport
wrt.Replace("[计数]",Tables("政府会议_任免").Compute("Count(姓名)")) \'用代码计算出总的销售数量并替换模板中的合计
wrt.Replace("[列表]",Tables("政府会议_任免").DataTable.GetComboListString("内容",Tables("政府会议_任免").Filter,"序列号").Replace("|",vbcrlf & "")) 
wrt.Replace("[文号]",Tables("政府会议_任免").DataTable.GetComboListString("文号",Tables("政府会议_任免").Filter,"序列号").Replace("|","、")) 
wrt.Build() \'生成报表
wrt.Show() \'显示报表

--  作者:Bin
--  发布时间:2014/9/20 10:52:00
--  
比如计算王五
wrt.Replace("[计数]",Tables("政府会议_任免").Compute("Count(姓名)","姓名 =\'王五\' or 姓名 like \'王五,%\' or 姓名 like \'%,王五\'") )
--  作者:hrw68529
--  发布时间:2014/9/22 8:09:00
--  
统计一列的姓名有多少个,不是统计王五


--  作者:hrw68529
--  发布时间:2014/9/22 8:12:00
--  
其中一个或多个单元格有两个人的姓名,一个单元格里的两个人的姓名用顿号分开,如何统计

[此贴子已经被作者于2014-9-22 8:12:34编辑过]

--  作者:Bin
--  发布时间:2014/9/22 8:36:00
--  
分开储存更加利于统计.这样只能遍历统计.效率很差.
--  作者:有点甜
--  发布时间:2014/9/22 9:22:00
--  

 需要额外处理,参考代码

 

Dim count As Integer = 0
For Each r As Row In Tables("表A").Rows
    If r.IsNull("第三列") = False Then
        count += r("第三列").split(",").Length
    End If
Next
msgbox(count)


--  作者:hrw68529
--  发布时间:2014/9/22 12:22:00
--  
这段代码放在哪里呢


--  作者:有点甜
--  发布时间:2014/9/22 14:05:00
--  
 呃,写到你原本的代码中去,把对应的改一下啊,你现在还看不懂代码?
--  作者:hrw68529
--  发布时间:2014/9/22 15:10:00
--  
很惭愧,学的不深,我放进去后,不知道怎么调整,谢谢

\'\'\'
Dim tm As String  = ProjectPath & "Attachments\\任免汇报.doc"
Dim fl As String = ProjectPath & "Reports\\任免汇报.doc"
Dim wrt As New WordReport(Tables("政府会议_任免"),tm,fl) \'定义一个WordReport
Dim count As Integer = 0
For Each r As Row In Tables("任免表").Rows
    If r.IsNull("姓名") = False Then
        count += r("姓名").split("、").Length
    End If
Next
\'msgbox(count)
wrt.Replace("[计数]",Tables("政府会议_任免").Compute("Count")) \'用代码计算出总的销售数量并替换模板中的合计
wrt.Replace("[列表]",Tables("政府会议_任免").DataTable.GetComboListString("内容",Tables("政府会议_任免").Filter,"序列号").Replace("|",vbcrlf & ""))
wrt.Replace("[文号]",Tables("政府会议_任免").DataTable.GetComboListString("文号",Tables("政府会议_任免").Filter,"序列号").Replace("|","、"))
wrt.Build() \'生成报表
wrt.Show() \'显示报表

--  作者:有点甜
--  发布时间:2014/9/22 15:12:00
--  
wrt.Replace("[计数]", count) \'用代码计算出总的销售数量并替换模板中的合计