我用VB做了一个数据报表,导出成.txt文件后总是出现错位现象(字段不在同一行显示),请问是怎么回事啊? 例如:
   分层沉降测点考证表 
磁环编号 
             点名    地层编号 
                                 埋设日期    磁环深度    属性 23263-1-1 
        审计学院分-1  ①-1 
                            2006-9-25   5.6772    此处施工
另外:我在datareporter里加载的.bmp格式的图片,将报表导出成.txt的文本文件后就显示不了,只能显示数据,是什么原因?

解决方案 »

  1.   

    我用datareporter显示出来格式都是对的,只是将报表导出成.txt文件后,格式就发生变化了,这应该跟代码没有关系吧?
    报表导出成什么文件格式才可以显示图片啊?我看到datareporter数据导出对话框中显示的保存文件格式只有.txt和.htm两种格式.
      

  2.   

    和代码有关
    如果你用代码设置height,hidth,top,left,导出的txt格式应该是对齐的...直接拉控件,对不齐...
    要导出图片,txt格式肯定不行
    没做过图片的导出,但datareport的性能较弱,特别是图片处理,指望它感觉可能不行...
      

  3.   

    做了个简单测试,文本导出是对齐的,但图片导出(html)不成功,代码:Option ExplicitPrivate Sub Command1_Click()
        
        Dim i As Long
        Dim rs As Recordset
        Dim obj As Object
        
        '构造一个数据源
        Set rs = New Recordset
        With rs
            .Fields.Append "COL1", adVarChar, 10
            .Fields.Append "COL2", adInteger, 4
            .Fields.Append "COL3", adCurrency, 8
            .Open
            For i = 1 To 10
                .AddNew
                .Fields("COL1") = Format(i, "000")
                .Fields("COL2") = i
                .Fields("COL3") = i * 1.25
                .Update
            Next
        End With
        '绑定报表
        Set DataReport1.DataSource = rs
        
        '报表标头的Image1控件
        With DataReport1.Sections("Section4").Controls("Image1")
            .Width = 3600
            .Height = 9500
            .Top = 0
            .Left = 500
            Set .Picture = LoadPicture(App.Path & "\mm.jpg")
        End With
        DataReport1.Sections("Section4").Height = 9550
        
        '细节部分
        With DataReport1.Sections("Section1")
            '控件数据绑定
            .Controls("Text1").DataField = "COL1"
            .Controls("Text2").DataField = "COL2"
            .Controls("Text3").DataField = "COL3"
            '控件定位(先定义Height,Width,再定义Top和Left)
            For Each obj In .Controls
                If TypeOf obj Is RptTextBox Then
                    obj.Height = 300
                    obj.Width = 1000
                    obj.Top = 0
                End If
            Next
            .Controls("Text1").Left = 0
            .Controls("Text2").Left = .Controls("Text1").Left + .Controls("Text1").Width
            .Controls("Text3").Left = .Controls("Text2").Left + .Controls("Text2").Width
            
            .Height = 320    '细节高度
        End With
        DataReport1.Show
        
    End Sub