想将报表直接嵌入到程序中去,不知道水晶报表可支持此功能?知道的能否告诉偶下 谢谢

解决方案 »

  1.   

    LZ的意思是程序控制报表显示数据?
    modules:Public BillReport As New RepBeforeLabdipColor
    designers:RepBeforeLabdipColor
    Private Sub PrintBeforeLabdip()
       With BillReport
           .ClientName.SetText (txtClientName)
           .Season.SetText (txtSeason)
           .SeasonLine.SetText (txtSeasonLine)
           .Delivery.SetText (FormatDateStr(DTPdelivery, "long"))
           .Code.SetText (ComFabricCode)
           .Pattern.SetText (txtPattern)
           .ePattern.SetText (txtePattern)
           .Reference.SetText (txtReference)
           .Dye.SetText (txtDye)
           .finish.SetText (txtFinish)
           .Processing.SetText (txtProcessing)
           .Quality.SetText (IIf(chkQuality.Value, "OK", "NO"))
           .Color.SetText (IIf(chkColor.Value, "OK", "NO"))
           .Layout.SetText (IIf(chkType.Value, "OK", "NO"))
           .FactoryName.SetText (comFactoryName)
           .Standard.SetText (txtStandard)
           .LateAddDate.SetText (FormatDateStr(DTPlate.Value, "Long"))
           .DropDate.SetText (FormatDateStr(DTPdrop.Value, "long"))
           .Price.SetText (txtPrice)
           .res.SetText (txtRes)
       End With
       Dim i As Integer
       Dim rs As ADODB.Recordset
       Dim rsobj As ADODB.Recordset
       Set rs = New ADODB.Recordset
       Dim strSql As String
        With rs
          .CursorLocation = adUseClient
          .CursorType = adOpenDynamic
          .LockType = adLockOptimistic
          Set .ActiveConnection = Cn
        End With
        strSql = "select * from tBeforeLabdipColor a,(select top 1 * from tBeforeLabdipColorSub where LabdipNo='" & txtLabdipNo & "' order by id desc) b where"
        strSql = strSql & " a.LabdipNo='" & txtLabdipNo & "' and a.ColorName=b.ColorName"
        rs.Open strSql
        Set rsobj = New ADODB.Recordset
        With rsobj
             .LockType = adLockOptimistic
             .CursorType = adOpenDynamic
        End With
        rsobj.Fields.Append "eColorName", adVarChar, 20
        rsobj.Fields.Append "ColorName", adVarChar, 20
        rsobj.Fields.Append "Color", adVarChar, 20
        rsobj.Fields.Append "ColorNumber", adVarChar, 20
        rsobj.Fields.Append "Reviews", adVarChar, 20
        rsobj.Fields.Append "FactoryName", adVarChar, 20
        rsobj.Fields.Append "LabdipDate", adVarChar, 20
        rsobj.Fields.Append "ReviewsDate", adVarChar, 20
        rsobj.Open
        Do While Not rs.EOF
            rsobj.AddNew
            rsobj.Fields!eColorName = IIf(IsNull(rs.Fields!eColorName), "", rs.Fields!eColorName)
            rsobj.Fields!ColorName = IIf(IsNull(rs.Fields!ColorName), "", rs.Fields!ColorName)
            rsobj.Fields!Color = IIf(rs.Fields!Color, "OK", "NO")
            rsobj.Fields!ColorNumber = rs.Fields!ColorNumber
            rsobj.Fields!Reviews = rs.Fields!Reviews
            rsobj.Fields!FactoryName = rs.Fields!FactoryName
            rsobj.Fields!LabdipDate = FormatDateStr(rs.Fields!LabdipDate, "long")
            rsobj.Fields!ReviewsDate = FormatDateStr(rs.Fields!ReviewsDate, "long")
            rsobj.Update
            rs.MoveNext
        Loop
        If rs.RecordCount < 7 Then
            For i = rs.RecordCount To 14
            rsobj.AddNew
            rsobj.Fields!eColorName = ""
            rsobj.Fields!ColorName = ""
            rsobj.Fields!Color = ""
            rsobj.Fields!ColorNumber = ""
            rsobj.Fields!Reviews = ""
            rsobj.Fields!FactoryName = ""
            rsobj.Fields!LabdipDate = ""
            rsobj.Fields!ReviewsDate = ""
            rsobj.Update
            Next
        End If
        BillReport.dataBase.SetDataSource rsobj
        rs.Close
        Set rs = Nothing
        rsobj.Close
        Set rsobj = Nothing
        frmReportLabdip.Show vbModal
    End Sub
      

  2.   

    我的意思是报表直接嵌入到程序中去,比如嵌入到窗体(form)中去
      

  3.   

    可以呀,如果你直接在VB设计器里面创建水晶报表,它都会自动帮你新建好对应FORM。。
      

  4.   

    水晶报表有两种工作模式:Push和Pull
    在vb6中有两种加载水晶报表的方式:1、生成.Dsr的文件进行load、2、是用.rpt的文件进行load你只要在Form上用水晶报表的预銮控件进行处理就可以