当前位置:编程学习 > VB >>

在查询中实现分组打印问题?

Private Sub Cmdprint_Click()
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=入库管理.mdb;Persist Security Info=False"
cnn.Open
If Check1.Value = 0 And Check2.Value = 0 Then
 DR1.Show
End If
If Check1.Value = 0 And Check2.Value = 1 Then
DataEnvironment1.rsCommand1_分组.Open "select 供应商名称,入库单编码,入库时间,入库类别,进价,实付价格,折扣,入库性质 from 入库单 where 入库单编码 >= '" & Trim(Combo1.Text) & " 'and 入库单编码<='" & Trim(Combo2.Text) & "' ", cnn, adOpenKeyset, adLockOptimistic
DR2.Show
End If
If Check1.Value = 1 And Check2.Value = 1 Then
DataEnvironment1.rsCommand1_分组.Open "select 供应商名称,入库单编码,入库时间,入库类别,进价,实付价格,折扣,入库性质 from 入库单 where 入库单编码 >= '" & Trim(Combo1.Text) & " 'and 入库单编码<='" & Trim(Combo2.Text) & "' And 入库时间 >=#" & Format(DTPicker1.Value, "yyyy-mm-dd") & " #and 入库时间 <=# " & Format(DTPicker2.Value, "yyyy-mm-dd") & "# order by 入库单编码"
DR2.Show
End If
If Check1.Value = 1 And Check2.Value = 0 Then
DataEnvironment1.rsCommand1_分组.Open "select  供应商名称,入库单编码,入库时间,入库类别,进价,实付价格,折扣,入库性质  from 入库单 where 入库时间 >=#" & Format(DTPicker1.Value, "yyyy-mm-dd") & " #and 入库时间 <=# " & Format(DTPicker2.Value, "yyyy-mm-dd") & "# order by 入库单编码", cnn, adOpenKeyset, adLockOptimistic
DR2.Show
 
End If

End Sub



选择复选框后查询并打印,报表无法实现按供应商名称分组打印。如何解决?
--------------------编程问答-------------------- 帮帮忙!实在是实现不了!谢谢!  --------------------编程问答-------------------- 用水晶报表进行分组打印吧 --------------------编程问答-------------------- 用水晶报表做一个报表模板文件,再以供应商名称分组便可以了 --------------------编程问答-------------------- 不用DE,直接用ADO的方法:

Option Explicit

Private Sub DataReport_Initialize()
    
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim Sql, strSql As String
    
    '连接数据库(Access)
    Set cn = New ADODB.Connection
    With cn
        .Provider = "MSDataShape.1"     '一定要这句
        .Open "Data Provider=Microsoft.Jet.OLEDB.4.0 ;" & _
            "Data Source=" & App.Path & "\db1.mdb;" & _
            "Persist Security Info=False"
    End With
    
    '查询表:
    Sql = "SELECT Coid,Caption,Qty FROM tt "
     
    '用SHAPE命令返回查询父子记录集
    strSql = "SHAPE {" & Sql & " } " & _
        "AS rst COMPUTE sum(rst.Qty) as Qty,rst BY Coid "
    Set rs = New ADODB.Recordset
    rs.Open strSql, cn, adOpenStatic, adLockReadOnly

    
    '设置RptTextBox控件属性
    With RptGroup
        '分组标头
        .Sections("Section6").Controls("text1").DataField = "Coid"
        '.Sections("Section6").ForcePageBreak = 1 '强制分页(不要求按组分页可以注释掉)
        
        '分组注脚--分组合计
        .Sections("Section7").Controls("text5").DataField = "Qty"
        
        '注意以上分组信息不要设置控件的DataMember属性
        
        '细节标头,其中“rst”是SHAPE命令中分组子集名称
        .Sections("Section1").Controls("text2").DataField = "Caption"
        .Sections("Section1").Controls("text2").DataMember = "rst"
        .Sections("Section1").Controls("text3").DataField = "Coid"
        .Sections("Section1").Controls("text3").DataMember = "rst"
        .Sections("Section1").Controls("text4").DataField = "Qty"
        .Sections("Section1").Controls("text4").DataMember = "rst"
        
        '页注脚--本页合计
        .Sections("Section5").Controls("Function1").DataField = "Qty"
        .Sections("Section5").Controls("Function1").FunctionType = 0
    End With
    
    
    '绑定到报表
    Set Me.DataSource = rs
   
End Sub


--------------------编程问答-------------------- 不用水晶报表怎么解决  我用的是data report
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,