您是不是用的DataReport
如果是的话,您可以自己把RecordSet按照您的需求
Sort以后再Set到Report上

解决方案 »

  1.   

    是DataReport ,问题是细节部分老是整个循环,而我要的是两部分分别循环!(见主题)
      

  2.   

    是DataReport 
    问题是我想两部分分别循环,可细节老是整体循环(见主题)
      

  3.   

    这样不知道您能接受不?
    新建立一个表专门来做Report的DataSource
    这样您就可以控制Table的顺序了吧:)
      

  4.   

    其实也就是先把DataSource按照您需要的顺序Sort好再show datareport您的表中总有一个字段是区分他们是哪一个部分的吧
    Select * from table1 order by SortColumn
      

  5.   

    报表应该显示的项目甲乙丙丁:
    项目名称 项目值 
    1.ABCD   0.88 
    2.EFGH   2.33
    3.IJKL   0.96
         小记:xxx.xx丁丙乙甲:
    项目名称 项目值 
    1.abcd   123.43 
    2.efgh   8.99
    3.ijkl   2.33
    4.mnop   0.88
          小记:yyy.yy可是一般方法放到报表设计器的“细节”里,老是成了:甲乙丙丁:
    项目名称 项目值 
    1.ABCD   0.88 
        小记:xxx.xx丁丙乙甲:
    项目名称 项目值 
    1.abcd   123.43 
        小记:yyy.yy甲乙丙丁:
    项目名称 项目值 
    2.EFGH   22.88 
        小记:xxx.xx丁丙乙甲:
    项目名称 项目值 
    2.efgh   0.43 
        小记:yyy.yy甲乙丙丁:
    项目名称 项目值 
    3.IJKL   0.88 
        小记:xxx.xx丁丙乙甲:
    项目名称 项目值 
    3.ijkl   123.43 
        小记:yyy.yy
      

  6.   

    我现在也没解决这个问题,我现在用的方法是,先估计第一部分有多少行,第二部分有多少行,然后先在report中画好一些label,再在程序中一个一个的设这些label的值。就可实现这种效果,但问题是如果label多的话,运行慢得很。
      

  7.   

    谢谢老几位,问题基本解决:应该在数据环境里把Command分组,然后在报表设计器了加上分组标记(标头、注脚),就可以了。     不过我不知道用什么命令重新连接报表的数据源!此贴改为回答这个问题,分数照给!
      

  8.   

    您用什么连接的?
    DataEnvironmnet还是ADODC?Dataenv的话再执行一次Command就可以了,记得先关闭
    Dataenv.rsCommand1.close
    dataenv.Command1
      

  9.   

    贴段代码给您看看:Public StartTime As String
    Public EndTime As StringPublic Sub ShowData()
        Dim cmd As New ADODB.Command
        Dim rs As New ADODB.Recordset
        Dim BillsRs As New ADODB.Recordset
        
        DataEnv.rsTEA.Close
           
        cmd.ActiveConnection = SYScnn
        cmd.CommandType = adCmdText
        cmd.CommandText = "UPDATE TEA SET STATCOUNT=0"
        cmd.Execute
        cmd.CommandText = "UPDATE TEA SET STATCOST=0"
        cmd.Execute
        
        cmd.CommandText = "SELECT SUM(PRIVATECOST) AS PCOST, SUM(ADDCOST) AS ACOST, SUM(FACTCOST) AS TOTALCOST , SUM(SERVICECOST) AS SCOST" & _
            " FROM BILL " & _
            " WHERE ETIME>='" & StartTime & "' AND ETIME<='" & EndTime & "'"
        rs.Open cmd.Execute
        Me.Sections("Title").Controls("TimeLbl").Caption = StartTime & " &Ouml;&Aacute; " & EndTime
        Me.Sections("Last").Controls("PrivateLbl").Caption = CStr(Format(CCur(rs.Fields("PCOST")), "&pound;¤#,##0.00"))
        Me.Sections("Last").Controls("AddLbl").Caption = CStr(Format(CCur(rs.Fields("ACOST")), "&pound;¤#,##0.00"))
        Me.Sections("Last").Controls("ServiceLbl").Caption = CStr(Format(CCur(rs.Fields("SCOST")), "&pound;¤#,##0.00"))
        Me.Sections("Last").Controls("TotalLbl").Caption = CStr(Format(CCur(rs.Fields("TOTALCOST")), "×&Uuml;&Ecirc;&Otilde;&Egrave;&euml;&pound;&ordm;&pound;¤#,##0.00"))
        rs.Close
        Set rs = Nothing
        cmd.CommandText = "SELECT * FROM BILL " & _
            " WHERE ETIME>='" & StartTime & "' AND ETIME<='" & EndTime & "'"
        rs.Open cmd.Execute
        
        BillsRs.Open "BILLS", SYScnn
        Do Until rs.EOF
            BillsRs.Filter = "BILLID=" & rs.Fields("ID")
            If Not BillsRs.EOF Then BillsRs.MoveFirst
            Do Until BillsRs.EOF
                cmd.CommandText = "UPDATE TEA SET STATCOUNT=STATCOUNT+" & BillsRs.Fields("AMOUNT") & _
                    " WHERE ID=" & BillsRs.Fields("TEAID")
                cmd.Execute
                cmd.CommandText = "UPDATE TEA SET STATCOST=STATCOST+" & BillsRs.Fields("TOTAL") & _
                    " WHERE ID=" & BillsRs.Fields("TEAID")
                cmd.Execute
                BillsRs.MoveNext
            Loop
            rs.MoveNext
        Loop
        BillsRs.Close
        rs.Close
        DataEnv.TEA
        DataEnv.rsTEA.Filter = "STATCOUNT > 0"
    End SubPrivate Sub DataReport_Initialize()
        DataEnv.TEA
    End SubPrivate Sub DataReport_Terminate()
        DataEnv.rsTEA.Close
    End Sub
      

  10.   

    Private Sub DataReport_Initialize() 
    DataEnv.TEA 
    End Sub Private Sub DataReport_Terminate() 
    DataEnv.rsTEA.Close 
    End Sub 这段足以,谢谢!!!
    我再试试,如果没有问题,下班前加分。