如何把数据在报表中分四块在一页上打出来(一页四条记录)。正常情况下,第二条记录在第一条记录的下面,怎么把第二条记录放到第一条记录在的右面,第三条记录在第一条记录的下面,第四条记录在第二条记录下面。形式如下:
  _______________________________________________________________________________
      
     |=======================|          |=======================|           
     |    [第一条记录]       |          |     [第二条记录]      |
     | 学号:11111           |          |  学号 11112           |
     | 年龄   23             |          |  年龄  24             |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |=======================|          |=======================|
       |=======================|          |=======================|           
     |    [第三条记录]       |          |     [第四条记录]      |
     | 学号:11113           |          |  学号 11114           |
     | 年龄   23             |          |  年龄  24             |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |   。                  |          |    。                 |
     |=======================|          |=======================|
   _________________________________________________________________________________就像上面的形式排列,一页连续四条记录。
  请各位高手指点!谢谢!

解决方案 »

  1.   

    我都没用过水晶报表,不过直接用printer都能很容易实现水晶报表应该不难吧
      

  2.   

    Report-->Section Expert--->Details(高亮)-->Format with Multiple Column-->printing Direction-->Across then Down(選) Detial width 也要設
      

  3.   

    谢谢各位,尤其是haipingma,但是我还有点不明白,这些东西在哪找呀!
      

  4.   

    左邊design panel點右鍵-->Section Expert
    出現Section Expert窗口設置
    選中details
    看右邊選中Format with Multiple Columns
    頁簽出現一個layout -->Detial width 設置須要的寬度
    printing Direction Across then Down
      

  5.   

    haipingma,真是有劳你了,你说的左边的design panel是不是左边的工具箱呀,我在工具箱里点键出来的不是你所说的那些东西呀 ,我用的是VB6.0(简体中文第五版)不会跟版本有关吧!有老你继续指点一下!谢谢,分不够我还可以加的,我真的很想知道这个问题的解决方法!谢谢!
      

  6.   

    可以用EXCEL对象处理。
    也可以将字段数扩充一倍,奇数行记录为原字段,偶数行记录填入扩充字段。再用datareport
      

  7.   

    vbman2003,谢谢你的指教,但是我对报表不太熟悉,你可以再说的详细一些吗?就是具体实现的过程!谢谢
      

  8.   

    jxgzay,我不太明白你的方法,可以说的详细一些吗?
      

  9.   

    如果你会ASP那么这种排列形式的表格就很简单了。
    一般的打印输出我都是生成HTML文件显示在WEBBROWSER里,再提供打印按钮。
      

  10.   

    比如你用VB自带的DataReport做报表,用Access数据库,你有关学生信息的表为tb。你可以新建一个表tb_t,用来转换数据打印报表,三个字段:ID(自动编号)/f1(备注类型)/f2(备注类型)。运行VB,选择“工程/引用”命令,引用 Microsoft ActiveX Data Objects 2.5 Library窗体上的代码:Private Sub Command1_Click()
      Dim cn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Dim rs_t As ADODB.Recordset
        Dim Sql As String
        Dim i
    '连接数据库(Access)
        Set cn = New ADODB.Connection
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0 ;" & _
                "Data Source=" & App.Path & "\db1.mdb;" & _
                "Persist Security Info=False"
    '学生信息记录集:
        Sql = "select * from tb"
        Set rs = New ADODB.Recordset
        rs.Open Sql, cn, adOpenKeyset, adLockOptimistic
    '清除tb_t表中的信息,打开tb_t记录集:
        Sql = "delete from tb_t"
        cn.Execute Sql
        Sql = "select * from tb_t"
        Set rs_t = New ADODB.Recordset
        rs_t.Open Sql, cn, adOpenKeyset, adLockOptimistic
    '向tb_t中添加数据:
        i = 1
        While Not rs.EOF
            Ff i mod 2 <> 0 Then
                rs_t.AddNew
                rs_t!f1 = "学号:" & rs!学号 & Chr(10) + Chr(13) _
                  & "年龄:" & rs!年龄 & Chr(10) + Chr(13) _
                  & "班级:" & rs!iCode         '根据你要显示的信息加减 
            ElseIf i mod 2 = 0 Then
                rs_t!f2 = "学号:" & rs!学号 & Chr(10) + Chr(13) _
                  & "年龄:" & rs!年龄 & Chr(10) + Chr(13) _
                  & "班级:" & rs!iCode
            End If
            rs.MoveNext
            i = i + 1
        Wend
        rs_t.UpdateBatch
        Set rs_t = Nothing
        Set rs = Nothing
        Set cn = Nothing
        rpt.Show     '显示报表(rpt是报表控件名称)
    End SubDataReport细节上添加二个RptTextBox控件,代码:Private Sub DataReport_Initialize()
        Dim cn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Dim sql As String
      
    '连接数据库(Access)
        Set cn = New ADODB.Connection
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0 ;" & _
                "Data Source=" & App.Path & "\db1.mdb;" & _
                "Persist Security Info=False"'打开表tb_t的记录集
        Set rs = New ADODB.Recordset
        Sql = "select * from tb_t "
        rs.Open Sql, cn, adOpenKeyset, adLockOptimistic
        
    '设置text控件属性
        rpt.Sections("Section1").Controls("text1").DataField = "f1"
        rpt.Sections("Section1").Controls("text2").DataField = "f2"    Set rpt.DataSource = rs
    End Sub试试吧
      

  11.   

    vbman2003,谢谢!我先试试,我库用的是SQL2000,方法应该是一样的吧
      

  12.   

    各位高手救命呀!这个问题快给我逼疯了,哪位大哥帮帮我!
    那个design panel那个方法到底是怎么回事呀,快帮帮我呀!
    我 用的数据库是SQL2000,该怎么实现
      

  13.   

    用DataReport可以实现吗?如何实现?