none
本 人是菜鸟 不会VB 请教大家 麻烦来注释下 RRS feed

  • 问题

  • Shared Sub Sub_Auto_Report(ByRef ReportValue As DataSet, ByRef PtStr() As String, ByRef bottominfo() As String, ByRef CaptionMessage As String, ByRef BzText As String)
            Dim NewDst As New Dstbz
            Try
                Dim ShowReport As CrystalDecisions.CrystalReports.Engine.ReportDocument
                Dim Section As CrystalDecisions.CrystalReports.Engine.Section
                Dim CrystalText As CrystalDecisions.CrystalReports.Engine.TextObject
               
                ShowReport = New CrptSingalFather
                Section = ShowReport.ReportDefinition.Sections("Section1")
               
                CrystalText = Section.ReportObjects("Text1")
                CrystalText.Text = CaptionMessage
             
                Dim InSertRow As System.Data.DataRow
                Dim Lng As Integer
                If Not PtStr Is Nothing Then
                    Lng = PtStr.GetLength(0) - 1
                    For IntYm As Integer = 0 To Lng Step 4
                        InSertRow = NewDst.rptnobmpyj1.NewRow()
                        InSertRow(0) = PtStr(IntYm)
                        If (IntYm + 1) > Lng Then Exit For
                        InSertRow(1) = PtStr(IntYm + 1)
                        If (IntYm + 2) > Lng Then Exit For
                        InSertRow(2) = PtStr(IntYm + 2)
                        If (IntYm + 3) > Lng Then Exit For
                        InSertRow(3) = PtStr(IntYm + 3)
                        NewDst.rptnobmpyj1.Rows.Add(InSertRow)
                    Next IntYm
                Else
                    Section = ShowReport.ReportDefinition.Sections("Section7")
                    Section.SectionFormat.EnableSuppress = True
                End If
             
                If Not bottominfo Is Nothing Then
                    Lng = bottominfo.GetLength(0) - 1
                    For IntYj As Integer = 0 To Lng Step 4
                        InSertRow = NewDst.rptnobmpyj2.NewRow()
                        InSertRow(0) = bottominfo(IntYj)
                        If (IntYj + 1) > Lng Then Exit For
                        InSertRow(1) = bottominfo(IntYj + 1)
                        If (IntYj + 2) > Lng Then Exit For
                        InSertRow(2) = bottominfo(IntYj + 2)
                        If (IntYj + 3) > Lng Then Exit For
                        InSertRow(3) = bottominfo(IntYj + 3)
                        NewDst.rptnobmpyj2.Rows.Add(InSertRow)
                    Next IntYj
                Else
                    Section = ShowReport.ReportDefinition.Sections("Section4")
                    Section.SectionFormat.EnableSuppress = True
                End If
               
                Section = ShowReport.ReportDefinition.Sections("Section2")
                CrystalText = Section.ReportObjects("Tzd")
                CrystalText.Text = ReportValue.Tables("tb1").Columns(3).ColumnName
                CrystalText = Section.ReportObjects("Tzx")
                CrystalText.Text = ReportValue.Tables("tb1").Columns(4).ColumnName
                CrystalText = Section.ReportObjects("Tpj")
                CrystalText.Text = ReportValue.Tables("tb1").Columns(5).ColumnName
               
                If Not BzText Is Nothing Then
                    InSertRow = NewDst.tbbz.NewRow()
                    InSertRow(0) = "备注:" & BzText
                    NewDst.tbbz.Rows.Add(InSertRow)
                Else
                    Section = ShowReport.ReportDefinition.Sections("Section8")
                    Section.SectionFormat.EnableSuppress = True
                End If
                For i As Integer = 0 To ReportValue.Tables("tb1").Rows.Count - 1
                    InSertRow = NewDst.tb1.NewRow()
                    For j As Integer = 0 To ReportValue.Tables("tb1").Columns.Count - 1
                        InSertRow(j) = ReportValue.Tables("tb1").Rows(i)(j)
                    Next
                    NewDst.tb1.Rows.Add(InSertRow)            Next i
                For i As Integer = 0 To ReportValue.Tables("tb2").Rows.Count - 1
                    InSertRow = NewDst.tb2.NewRow()
                    For j As Integer = 0 To ReportValue.Tables("tb2").Columns.Count - 1
                        InSertRow(j) = ReportValue.Tables("tb2").Rows(i)(j)
                    Next
                    NewDst.tb2.Rows.Add(InSertRow) '
                Next i
           
                ShowReport.SetDataSource(NewDst)
                Dim Showfrm As New PrintForm(ShowReport)
                Showfrm.ShowDialog()
            Catch ex As Exception
                PublicFunction.ErrorRecord.WriteErrorInfo(ex)
            Finally
                NewDst.Dispose()
            End Try
        End Sub

    2008年10月3日 2:00

答案

全部回复

  •  

    Public Overridable Sub myPrintReport(ByVal TChart1 As Steema.TeeChart.TChart, ByVal PrintTitle As String, Optional ByVal ScanInf As String = "")

            Dim str As New System.Text.StringBuilder
            Dim i As Long
            Dim n As System.Drawing.Color
            n = (System.Drawing.Color.Black)
            With TChart1.Axes
                For i = 0 To .Count - 1
                    .Item(i).AxisPen.Color = n
                    .Item(i).Labels.Font.Color = n
                    .Item(i).Title.Font.Color = n
                Next
                TChart1.Panel.Shadow.Brush.Color = System.Drawing.Color.White
                TChart1.Panel.Shadow.Visible = True
            End With
                  ResumeOldColor()
            If Propertys.DeviceDataType.ToUpper <> "scan".ToUpper Then
                If Not Me.URLDataGrid Is Nothing Then
                    If Not Me.URLDataGrid.DataSource Is Nothing Then
                        Dim dviewtmp As DataView = Me.URLDataGrid.DataSource
                        Dim dtbtmp As DataTable
                        If dviewtmp.DataViewManager.DataSet.Tables.Count > 1 Then
                            dtbtmp = dviewtmp.DataViewManager.DataSet.Tables(1)
                        Else
                            dtbtmp = dviewtmp.DataViewManager.DataSet.Tables(0)
                        End If
                        Dim paratxt As String
                        Dim strtmp As String
                        For Each drow As DataRow In dtbtmp.Rows
                            strtmp = Convert.ToString(drow(0))
                            If dtbtmp.Columns.Count > 2 Then
                                If paratxt <> strtmp Then
                                    paratxt = Convert.ToString(drow(0))
                                    str.Append("参数名称:" + paratxt + ";")
                                End If
                                For j As Integer = 1 To dtbtmp.Columns.Count - 2
                                    str.Append(Convert.ToString(drow(j)) + ":")
                                Next
                                str.Append(Convert.ToString(drow(dtbtmp.Columns.Count - 1)) + ";")
                            Else
                                str.Append(Convert.ToString(drow(0)) + ":")
                                str.Append(Convert.ToString(drow(1)) + ";")
                            End If
                        Next
                    End If
                End If
            End If
            PublicFunction.FunctionClass.MeasureData = str.ToString() ''保存测量参数
            '保存测量相关信息
            Dim TempPropertysInf() As PropertysInf = ReadSetPropertysInf()
            Dim temp As PropertysInf
            Dim s As String
            Dim PrintStr As String
            For Each temp In TempPropertysInf

                For Each s In Sort()
                    If s = temp.PropertyName Then
                        PrintStr = PrintStr & s & ":" & temp.PropertyValue & ";"
                    End If
                Next
            Next
            PrintStr = PrintStr.Remove(PrintStr.Length - 1, 1)
            PublicFunction.FunctionClass.PrintDataInf = PrintStr
            Dim PForm As New PrintReport.PrintInf
            PForm.ScanInf = ScanInf
            PForm.PrintTitle = PrintTitle
            PForm.Show()
            PForm.Activate()
        End Sub 这段是上一段代码基类的 一个方法  也看不明白  注释越详细越好   谢谢会的高手了
    2008年10月3日 2:03
  • 不知道你具体哪些不懂,这些都是VB.NET的基本语法啊,可以看一下 ,如果C#你熟悉,你可以转成 C#

     

    在线转换工具

    http://www.developerfusion.com/tools/convert/vb-to-csharp/

     

    使用说明

    http://msdn.microsoft.com/zh-cn/library/ms225594.aspx

     

    http://msdn.microsoft.com/zh-cn/library/system.data.datatable.aspx

     

     

    2008年10月3日 2:27
    版主
  •  孟宪会 写:

    不知道你具体哪些不懂,这些都是VB.NET的基本语法啊,可以看一下 ,如果C#你熟悉,你可以转成 C#

     

    在线转换工具

    http://www.developerfusion.com/tools/convert/vb-to-csharp/

     

    使用说明

    http://msdn.microsoft.com/zh-cn/library/ms225594.aspx

     

    http://msdn.microsoft.com/zh-cn/library/system.data.datatable.aspx

     

     

    谢谢孟兄啊

    我发现你无处不在啊  呵呵   VB.NET 的基本语法我是知道的拉  主要是那要死的水晶报表 从来没用过 所以一看就糊涂了

    谢谢你啊 给我的东东很有用的

    2008年10月3日 14:49