Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请各位老师指点一下

1楼
abcdzabcdz 发表于:2008/12/6 14:58:00
 

请各位老师指点一下:

问题一:下列解法能否更进一步优化?

1、6次填充数据过程能否用循环语句或其它更优语句代替?

2、能否精简过程,直接在”另表”中得到结果,不经过”统计数据”这样的过渡表,行吗?

问题二:是否还有其它解法?

 

 

 

‘将”表2”中的数据填充到”另表”中

DataTables("另表").DataRows.Clear()

Syscmd.Project.Compact(False)

 

‘填充表2第一组数据到另表

dim f1 As New Filler

f1.SourceTable = DataTables("表2")

f1.SourceCols = "名称1,数量1"

f1.Distinct = True

f1.DataTable = DataTables("另表")

f1.DataCols = "名称,数量"

f1.Fill()

 

‘填充表2第二组数据到另表

dim f2 As New Filler

f2.SourceTable = DataTables("表2")

f2.SourceCols = "名称2,数量2"

f2.Distinct= False 

f2.DataTable = DataTables("另表")

f2.DataCols = "名称,数量"

f2.Fill()

 

‘填充表2第三组数据到另表

dim f3 As New Filler

f3.SourceTable = DataTables("表2")

f3.SourceCols = "名称3,数量3"

f3.Distinct= False 

f3.DataTable = DataTables("另表")

f3.DataCols = "名称,数量"

f3.Fill()

 

‘填充表2第四组数据到另表

dim f4 As New Filler

f4.SourceTable = DataTables("表2")

f4.SourceCols = "名称4,数量4"

f4.Distinct= False 

f4.DataTable = DataTables("另表")

f4.DataCols = "名称,数量"

f4.Fill()

 

‘填充表2第五组数据到另表

dim f5 As New Filler

f5.SourceTable = DataTables("表2")

f5.SourceCols = "名称5,数量5"

f5.Distinct= False 

f5.DataTable = DataTables("另表")

f5.DataCols = "名称,数量"

f5.Fill()

 

‘填充表2第六组数据到另表

dim f6 As New Filler

f6.SourceTable = DataTables("表2")

f6.SourceCols = "名称6,数量6"

f6.Distinct= False 

f6.DataTable = DataTables("另表")

f6.DataCols = "名称,数量"

f6.Fill()

 

‘对”另表”中数据进行分组统计

Dim b As New GroupTableBuilder("统计数据",DataTables("另表"))

b.Groups.AddDef("名称")

b.Totals.AddDef("数量")

b.VerticalTotal = True

b.Build

Maintable = Tables("统计数据")

 

2楼
czy 发表于:2008/12/6 16:03:00
问题1很简单。
问题2就不知道了,何不上传你的文件。
3楼
czy 发表于:2008/12/6 16:28:00
另外楼主的表述是否有点问题呀,按理说统计数据是最终结果,另表才是过渡表。
用sql的ExecuteReader就可以不用另表了。
4楼
abcdzabcdz 发表于:2008/12/6 17:04:00
以下是引用czy在2008-12-6 16:28:00的发言:
另外楼主的表述是否有点问题呀,按理说统计数据是最终结果,另表才是过渡表。
用sql的ExecuteReader就可以不用另表了。

这里的"另表"仍然是过渡表,自由统计的零星数据需放在最终统计表中.

文件如下:

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

5楼
don 发表于:2008/12/6 19:19:00
'''
Dim Da As DataTable = DataTables("表2")
DataTables("另表").DataRows.Clear()
Dim TS,T As String
dim i,i1,sum,rs as Integer
For  i  = 1 to 6
    For Each dr As DataRow in Da.Select("姓名" & i & ">''")
         If Ts Is Nothing OrElse Ts.Indexof(dr("姓名" & i )) = -1 Then 
             Ts = Ts  & "," & dr("姓名" & i )
        End If
     Next
Next
rs = Ts.substring(1).split(",").Length
Tables("另表").Addnew(rs)
For i  = 0 to rs-1
    T = Ts.substring(1).split(",")(i)
    Tables("另表").rows(i)("姓名")=T
    sum=0
    for i1 =1 to 6
        sum =sum+Da.Compute("Sum(数量" & i1 & ")","姓名" & i1 & "='" & T & "'")
    Next  
    Tables("另表").rows(i)("数量") = SUm
Next
6楼
abcdzabcdz 发表于:2008/12/7 17:01:00
谢谢 don版主!
共6 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02930 s, 3 queries.