我在设计的时候为水晶报表建立了分组。但我需要动态更新数据集。请问,分组的SQL怎么写?数据表如下:
A表字段
ID,COM,ADD
B表字段
ID,NAME,TEL,AID
A表的ID对应B表的AID,对应关系是1对多。
设计的报表样式如下:
组:COM,ADD
详细内容:NAME,TEL
详细内容:NAME,TEL
……
详细内容:NAME,TEL
组:COM,ADD
详细内容:NAME,TEL
详细内容:NAME,TEL
……
详细内容:NAME,TEL我现在的RECORDSET是这样写的
SELECT A.*,B.* FROM A INNER JOIN B ON A.ID=B.AID

解决方案 »

  1.   

    SELECT A.COM,A.ADD,B.NAME,B.TEL FROM A, B WHERE A.ID=B.ID ORDER BY A.COM,A.ADD
      

  2.   

    如果我没有理解错你的意思的话,你写的sql就可以了
    然后要做的是在水晶报表里分组
    把id设成组名就可以了 
    方法是在报表设计器里-》右键-》插入组
      

  3.   

    做报表啊?数据源设定好就行了,分组是水井报表的引擎来完成的,不关你的事的
    所以你也用不着来写什么分组的SQL语句了。右键点击选择插入组
    然后选择一个依照分组的字段就可以了。这是报表工具来完成的,永不者你来处理。
      

  4.   

    怪了。。我照你的方法去做。出了一个怪问题。在设计的时候,我指定了一个样本MDB给报表。然后把数据表的关系和分组条件设置好,看了一边没有问题。然后我用了如上的自己写的SQL,并且用SETDATASOURCE把RECORDSET传给报表。然后把设计期的那个样本MDB删除掉。运行后报告找不到那个样本MDB文件。可见,报表还是从MDB中读数据。但是我在RECORDSET中加入筛选条件,再察看报表,却起总用了怪……高手帮忙给看看。
      

  5.   

    比如像下面的只要传个条件就可以了
    Private Sub Command1_Click()
     Dim strSql As String
     Dim strFile As String
    '***SQL-Create
     strSql = "select * from My_Table" 
    '****File Path
     CrystalReport1.ReportFileName = "D:\report1.rpt"
    '****DataBase Connect
     CrystalReport1.Connect = "ODBC;DSN=ebis;UID=ebisho;PWD=ebisho;"
    '****QuerySql
     CrystalReport1.SQLQuery = strSql CrystalReport1.Destination = crptToWindow
     CrystalReport1.WindowShowPrintBtn = True
     CrystalReport1.RetrieveDataFiles
     CrystalReport1.WindowState = crptMaximized
     CrystalReport1.PrintReport
     
     
    End Sub
      

  6.   

    其实,Crystal Decinesion推荐的办法就是利用结果集,生成结果集后给ReportDocument赋数据源,而且这样做的东西比较灵活,你可以在有一个模型框架的前提下做成任意报表,而不是用连数据库文件的办法!
      

  7.   

    问题还是没解决。TO 编程浪子:你的CrystalReport1 是什么对象?