本帖最后由 qmialo88 于 2009-09-22 11:40:08 编辑

解决方案 »

  1.   

    For i As Integer = 0 To ds.Tables("View_Ticket").Rows.Count - 1
                Dim sql1 As String = "select * from View_TicketList where TicketID='" + ds.Tables("View_Ticket").Rows(i)("TicketID").ToString() + "'"
                dr = New SqlDataAdapter(sql1, conn)
                dr.Fill(ds, "View_TicketList")
            Next你这样fill肯定只有最后一个啊你可以select * from View_TicketList where TicketID in(订单1id,订单2id,订单3id)
    然后也不用循环就行,直接fill就可以了
      

  2.   

    感觉是抽取数据的Sql有问题,写一个让你参考一下:Dim sql As String = "select * from View_Ticket where date >= @StartDate and date < DATEADD(DAY, 1, @EndDate)"Dim sql1 As String = "select * from View_TicketList l where exists (select 1 from View_Ticket t where t.TicketID = l.TicketID and t.date >= @StartDate and t.date < DATEADD(DAY, 1, @EndDate)"
    然后 在水晶报表中设置关联,并按TicketID分组就行了
      

  3.   

    自己写SQL语句也不太需要,直接使用报表的数据专家就行
      

  4.   

    循环fill的时候,自然是后一次把前一次的全部覆盖掉了。
    你的这个需求,应该是这样的
    按照你的代码,用PUSH模式1:新建立一个dataset1,建一个datatable,名字叫datatable1
    里面放四个字段,就是你报表上的四个,为了方面描述
    我把两个表分别简称为a,b,对应的四个字段分别为a1,a2,b1,b2
    以这个dataset1为基础,做报表模板
    2:模板上,新建一个公式x1,{a1} + {a2}将订单编号和订单名称组合起来,作为一个分组依据3:插入组,分组字段就是x1
    把x1放在组页眉
    把b1,b2放在详细资料节。模板处理完毕,下面重点说数据4:SQL="Select a.a1,a.a2,b.b1,b.b2 from a,b where a.a1=b.a1 and (表a的条件)"这样将数据组合成一个表,传给报表,最终的代码段是类似这样的Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim sql As String = "Select a.a1,a.a2,b.b1,b.b2 from a,b where a.a1=b.a1 and (表a的条件)"
            Dim ds As New DataSet()
            Dim dr As SqlDataAdapter = Nothing
            dr = New SqlDataAdapter(sql, conn)
            dr.Fill(ds, "Datatable1")
            ''使用报表对象加载报表
            Dim myReport As New ReportDocument()
            Dim reportPath As String = Server.MapPath("~/app_data/TicketCrystalReport.rpt")
            myReport.Load(reportPath)
            myReport.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = myReport
        End Sub
      

  5.   


    2:模板上,新建一个公式x1, {a1} + {a2} 将订单编号和订单名称组合起来,作为一个分组依据 
      泰哥如何新建公式,没找到,急