⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 productpercentage.dsr

📁 需要控件:Active Report 2.0(专业报表控件破解版)2.0下的ardespro2.dll和arpro2.dll ARVIEW2.OCX等文件。即可打开源代码。
💻 DSR
字号:
VERSION 5.00
Begin {9EB8768B-CDFA-44DF-8F3E-857A8405E1DB} ProductPercentage 
   Caption         =   "维修部件损坏率表"
   ClientHeight    =   11115
   ClientLeft      =   165
   ClientTop       =   450
   ClientWidth     =   15240
   Icon            =   "ProductPercentage.dsx":0000
   StartUpPosition =   3  '窗口缺省
   _ExtentX        =   26882
   _ExtentY        =   19606
   SectionData     =   "ProductPercentage.dsx":038A
End
Attribute VB_Name = "ProductPercentage"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim Cnn As New ADODB.Connection
Dim Rss As New ADODB.Recordset
Private WithEvents mChart As TeeChart.TChart
Attribute mChart.VB_VarHelpID = -1

Private Sub ActiveReport_Initialize()
    Me.Toolbar.Tools.Add "退出(&E)"
    Me.Toolbar.Tools(Me.Toolbar.Tools.Count - 1).ID = 999
    'Me.Toolbar.Tools.Insert 2, "设置"
    'Me.Toolbar.Tools(3).ID = 888
    'Me.Toolbar.Tools(3).Type = 1
    Me.Toolbar.Tools(0).Visible = False
    Me.Toolbar.Tools(1).Visible = False
    Me.Toolbar.Tools(3).Visible = False
    Me.Toolbar.Tools(4).Visible = False
    Me.Printer.PaperHeight = 15876
    Me.Printer.PaperWidth = 11910
    Me.Printer.Orientation = ddOPortrait
End Sub

'Private WithEvents mChart As TeeChart.TChart

Private Sub ActiveReport_PageStart()
  Me.TChart1.Series(0).Clear
End Sub

Private Sub ActiveReport_QueryClose(Cancel As Integer, CloseMode As Integer)
  On Error Resume Next
  Cnn.Close
  Rss.Close
End Sub

'
Private Sub ActiveReport_ReportStart()
   Dim sqlStr As String
   With Me.TChart1
       .Axis.Left.Inverted = True
       .Aspect.View3D = False
   End With
   Cnn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=SerManage"
   Cnn.Open
   Set Rss.ActiveConnection = Cnn
   Rss.CursorLocation = adUseClient
   
   Dim frmTemp As Form
   Dim bShow As Boolean
   bShow = False
    
   For Each frmTemp In Forms
       If frmTemp.Name = "FrmSearchClient" Then
          bShow = True
          Exit For
       End If
   Next
   'bShow 按客户  05-08-02 增加排序
   If bShow Then
      sqlStr = "SELECT PartsName,PartsCount FROM (SELECT PartsName, SUM(Quantity) AS PartsCount" & _
                 " FROM [SELECT Product.ProductID, Product.ProductModel, Product.ProductSpec, Product.ClientName, Product.MakeDate, Product.ServiceDate, Product.OkDate, Product.ServiceResult, Product.DisposeMode, Product.Cause, PartsList.PartsName, PartsList.quantity" & _
                 " FROM Product INNER JOIN PartsList ON Product.ProductID = PartsList.ProductID" & _
                 " WHERE Product.ClientName='" & FrmSearchClient.Combo1 & "']. AS [HHH]" & _
                 " GROUP BY PARTSNAME) ORDER BY PartsCount DESC"   '
      TChart1.Header.Text.Clear
      TChart1.Header.Text.Add "维修部件损坏率(" & FrmSearchClient.Combo1 & ")"
   Else
      sqlStr = "SELECT PartsName,PartsCount FROM (SELECT PartsName, SUM(quantity) AS PartsCount" & _
                 " FROM [SELECT Product.ProductID, Product.ProductModel," & _
                 "Product.ProductSpec, Product.ClientName, Product.MakeDate, Product.ServiceDate, Product.OkDate, Product.ServiceResult, Product.DisposeMode, Product.Cause, PartsList.PartsName, PartsList.quantity" & _
                 " FROM Product INNER JOIN PartsList ON Product.ProductID = PartsList.ProductID" & _
                 " WHERE format(ServiceDate,'yyyy-mm-dd') between #" & Format(FrmSearchDate.DTPicker1.Value, "yyyy-mm-dd") & "# and #" & Format(FrmSearchDate.DTPicker2.Value, "yyyy-mm-dd") & "#]. AS [HHH]" & _
                 " GROUP BY PARTSNAME) ORDER BY PartsCount DESC"
      TChart1.Header.Text.Clear
      TChart1.Header.Text.Add "维修部件损坏率(检索范围:" & Format(FrmSearchDate.DTPicker1.Value, "yyyy-mm-dd") & "至" & Format(FrmSearchDate.DTPicker2.Value, "yyyy-mm-dd") & ")"
   End If
   Rss.Open sqlStr, , adOpenStatic, adLockBatchOptimistic
   Rss.ActiveConnection = Nothing
   DataControl1.Recordset = Rss
End Sub
'
Private Sub Detail_BeforePrint()
  mChart.Series(0).Add CDbl(txtUnitPrice.DataValue), txtProductName.Text, clTeeColor
  'TChart1.Series(0).Add CDbl(txtUnitPrice.DataValue), txtProductName.Text, vbRed
End Sub
'
Private Sub mChart_OnAfterDraw()
Dim CurrentCountry As String
Dim outStr As String
''  ' In this example with Withevents used, you may refer to Chart as mChart or Me.TChart1
  With Me.TChart1.Canvas
    .Font.Bold = True
    outStr = "损坏最多零件: " & Str$(Round(mChart.Series(0).XValues.Maximum))
    .TextOut (TChart1.Axis.Left.Position - .TextWidth(outStr)) + 20, 17, outStr
  End With
End Sub
'
'Private Sub mChart_OnClick()
'  'click not supported in report view mode
'  'by ActiveReports
'  mChart.ShowEditor
'End Sub
'
Private Sub mChart_OnGetSeriesMark(ByVal SeriesIndex As Long, ByVal ValueIndex As Long, MarkText As String)
'' ' Modify each Mark here if required
'' ' here with normal Marktext disabled
'' ' ie. TChart1.Series(0).PercentFormat was "##0,## %", now: "##0,##"
 If CDbl(MarkText) > 20 Then
   MarkText = MarkText & " % (高损坏率!)"
 Else
   MarkText = MarkText & " %"
 End If
'' ' MarkText = "$" & MarkText
End Sub


Private Sub PageFooter_Format()
     Label20.Caption = "第  " & Me.pageNumber & "页"
End Sub

Private Sub PageHeader_Format()
'  'Set on page Chart to use Withevents
  
  Set mChart = Me.TChart1
  ' add a gradient if the screen is high colour
  'If mChart.Canvas.IsScreenHighColor = True Then
  '  mChart.Panel.Gradient.EndColor = RGB(0, 32, 192)
  '  mChart.Header.Font.Color = RGB(204, 204, 204)
  '  mChart.Panel.Gradient.Visible = True
  'End If
End Sub

Private Sub ActiveReport_ToolbarClick(ByVal Tool As DDActiveReports2.DDTool)
    If Tool.ID <> 999 Then Exit Sub
    Unload Me
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -