frmAnalysis.frm
上传用户:xianglong
上传日期:2022-06-19
资源大小:1105k
文件大小:17k
源码类别:

控制台编程

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
  3. Object = "{65E121D4-0C60-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCHRT20.OCX"
  4. Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
  5. Begin VB.Form frmAnalysis 
  6.    Caption         =   "物料信息的分析"
  7.    ClientHeight    =   5430
  8.    ClientLeft      =   45
  9.    ClientTop       =   390
  10.    ClientWidth     =   8685
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   5430
  15.    ScaleWidth      =   8685
  16.    StartUpPosition =   2  '屏幕中心
  17.    Begin VB.CommandButton comQuery 
  18.       Caption         =   "查询"
  19.       Height          =   372
  20.       Left            =   1800
  21.       Style           =   1  'Graphical
  22.       TabIndex        =   21
  23.       Top             =   240
  24.       Width           =   852
  25.    End
  26.    Begin VB.Frame Frame4 
  27.       Caption         =   "查询全部物料信息"
  28.       Height          =   735
  29.       Left            =   6840
  30.       TabIndex        =   19
  31.       Top             =   120
  32.       Width           =   1695
  33.       Begin VB.CommandButton Command4 
  34.          Caption         =   "查询"
  35.          Height          =   375
  36.          Left            =   360
  37.          TabIndex        =   20
  38.          Top             =   240
  39.          Width           =   975
  40.       End
  41.    End
  42.    Begin VB.Frame Frame3 
  43.       Caption         =   "查询单一物料信息"
  44.       Height          =   735
  45.       Left            =   3000
  46.       TabIndex        =   15
  47.       Top             =   120
  48.       Width           =   3735
  49.       Begin VB.CommandButton Command3 
  50.          Caption         =   "查询"
  51.          Height          =   375
  52.          Left            =   2760
  53.          TabIndex        =   18
  54.          Top             =   240
  55.          Width           =   855
  56.       End
  57.       Begin VB.TextBox Text2 
  58.          Height          =   270
  59.          Left            =   1440
  60.          TabIndex        =   17
  61.          Top             =   360
  62.          Width           =   1215
  63.       End
  64.       Begin VB.Label Label5 
  65.          Caption         =   "填写物料代号:"
  66.          Height          =   255
  67.          Left            =   120
  68.          TabIndex        =   16
  69.          Top             =   360
  70.          Width           =   1335
  71.       End
  72.    End
  73.    Begin MSComCtl2.MonthView MonthView1 
  74.       Height          =   2220
  75.       Left            =   0
  76.       TabIndex        =   0
  77.       Top             =   1560
  78.       Width           =   4065
  79.       _ExtentX        =   7170
  80.       _ExtentY        =   3916
  81.       _Version        =   393216
  82.       ForeColor       =   -2147483630
  83.       BackColor       =   -2147483633
  84.       Appearance      =   1
  85.       StartOfWeek     =   25559041
  86.       CurrentDate     =   39125
  87.    End
  88.    Begin VB.Frame Frame1 
  89.       Caption         =   "分析"
  90.       Height          =   735
  91.       Left            =   3000
  92.       TabIndex        =   6
  93.       Top             =   960
  94.       Width           =   5535
  95.       Begin VB.ComboBox ComboPrice 
  96.          Height          =   300
  97.          Left            =   840
  98.          Style           =   2  'Dropdown List
  99.          TabIndex        =   8
  100.          Top             =   360
  101.          Width           =   1695
  102.       End
  103.       Begin VB.ComboBox ComboChange 
  104.          Height          =   300
  105.          Left            =   3600
  106.          Style           =   2  'Dropdown List
  107.          TabIndex        =   7
  108.          Top             =   360
  109.          Width           =   1815
  110.       End
  111.       Begin VB.Label Label1 
  112.          Caption         =   "价格:"
  113.          Height          =   255
  114.          Left            =   120
  115.          TabIndex        =   10
  116.          Top             =   360
  117.          Width           =   615
  118.       End
  119.       Begin VB.Label Label2 
  120.          Caption         =   "消耗率:"
  121.          Height          =   255
  122.          Left            =   2760
  123.          TabIndex        =   9
  124.          Top             =   360
  125.          Width           =   735
  126.       End
  127.    End
  128.    Begin VB.CommandButton Command1 
  129.       Caption         =   "确定"
  130.       Height          =   372
  131.       Left            =   720
  132.       MaskColor       =   &H0080C0FF&
  133.       Style           =   1  'Graphical
  134.       TabIndex        =   4
  135.       Top             =   4920
  136.       Width           =   1452
  137.    End
  138.    Begin VB.Data d2 
  139.       Caption         =   "Data1"
  140.       Connect         =   "Access"
  141.       DatabaseName    =   ""
  142.       DefaultCursorType=   0  '缺省游标
  143.       DefaultType     =   2  '使用 ODBC
  144.       Exclusive       =   0   'False
  145.       Height          =   372
  146.       Left            =   5880
  147.       Options         =   0
  148.       ReadOnly        =   0   'False
  149.       RecordsetType   =   1  'Dynaset
  150.       RecordSource    =   ""
  151.       Top             =   3480
  152.       Visible         =   0   'False
  153.       Width           =   1332
  154.    End
  155.    Begin VB.CommandButton Command2 
  156.       Height          =   615
  157.       Left            =   1080
  158.       Picture         =   "frmAnalysis.frx":0000
  159.       Style           =   1  'Graphical
  160.       TabIndex        =   3
  161.       Top             =   120
  162.       Width           =   615
  163.    End
  164.    Begin VB.TextBox Text1 
  165.       Height          =   340
  166.       Left            =   120
  167.       TabIndex        =   2
  168.       Text            =   "Text1"
  169.       Top             =   360
  170.       Width           =   972
  171.    End
  172.    Begin MSChart20Lib.MSChart MSChartPrice 
  173.       Height          =   1812
  174.       Left            =   120
  175.       OleObjectBlob   =   "frmAnalysis.frx":08CA
  176.       TabIndex        =   1
  177.       Top             =   720
  178.       Width           =   2772
  179.    End
  180.    Begin MSFlexGridLib.MSFlexGrid grid 
  181.       Bindings        =   "frmAnalysis.frx":2ABB
  182.       Height          =   2775
  183.       Left            =   3120
  184.       TabIndex        =   5
  185.       Top             =   2040
  186.       Width           =   5295
  187.       _ExtentX        =   9340
  188.       _ExtentY        =   4895
  189.       _Version        =   393216
  190.       Cols            =   1
  191.       FixedCols       =   0
  192.       BackColor       =   16777215
  193.       ForeColor       =   16711680
  194.       BackColorFixed  =   -2147483624
  195.       BackColorSel    =   16744576
  196.       ForeColorSel    =   16777215
  197.       BackColorBkg    =   16777215
  198.       GridColor       =   0
  199.       FillStyle       =   1
  200.       GridLinesFixed  =   1
  201.       SelectionMode   =   1
  202.       AllowUserResizing=   3
  203.    End
  204.    Begin MSChart20Lib.MSChart MSChartChange 
  205.       Height          =   1935
  206.       Left            =   120
  207.       OleObjectBlob   =   "frmAnalysis.frx":2ACC
  208.       TabIndex        =   11
  209.       Top             =   2640
  210.       Width           =   2775
  211.    End
  212.    Begin VB.Frame Frame2 
  213.       Caption         =   "分析结果"
  214.       Height          =   3495
  215.       Left            =   3000
  216.       TabIndex        =   13
  217.       Top             =   1800
  218.       Width           =   5535
  219.       Begin VB.Label Label4 
  220.          Caption         =   "Label4"
  221.          Height          =   255
  222.          Left            =   120
  223.          TabIndex        =   14
  224.          Top             =   3120
  225.          Width           =   1215
  226.       End
  227.    End
  228.    Begin VB.Label Label3 
  229.       Caption         =   "请选择日期"
  230.       Height          =   255
  231.       Left            =   120
  232.       TabIndex        =   12
  233.       Top             =   120
  234.       Width           =   1095
  235.    End
  236. End
  237. Attribute VB_Name = "frmAnalysis"
  238. Attribute VB_GlobalNameSpace = False
  239. Attribute VB_Creatable = False
  240. Attribute VB_PredeclaredId = True
  241. Attribute VB_Exposed = False
  242. Public dbs  As Database
  243. Public rec As Recordset
  244. Public filename As String
  245. Dim TotalCount As Integer
  246. Dim MaxDate  As Date
  247. Dim MinDate  As Date
  248. Dim SearchDate As Date
  249. Dim AverageSel(3) As Integer
  250. Dim ChangeRateSel(5) As Single
  251. Private Sub ComboPrice_Click()
  252.     If ComboPrice.ListIndex = 3 Then
  253.         D2.RecordSource = "SELECT 物料信息变化表.Code as 物料代码,Name as 物料名称,Change as 涨跌,CVar([Volume Price] / Volume) as 价格,TypeName as 物料类型 FROM 物料信息变化表,物料信息表,物料类型信息表  WHERE 物料信息变化表.Day=# " & SearchDate & "# and CVar([Volume Price] / Volume) >30 and 物料信息变化表.Code=物料信息表.Code and 物料信息表.TypeId=物料类型信息表.ID"
  254.         D2.Refresh
  255.     Else
  256.         D2.RecordSource = "SELECT 物料信息变化表.Code as 物料代码,Name as 物料名称,Change as 涨跌,CVar([Volume Price] / Volume) as 价格,TypeName as 物料类型 FROM 物料信息变化表,物料信息表,物料类型信息表  WHERE 物料信息变化表.Day=# " & SearchDate & "# and CVar([Volume Price] / Volume) > " & AverageSel(ComboPrice.ListIndex) & " and CVar([Volume Price] / Volume) <= " & AverageSel(ComboPrice.ListIndex + 1) & " and 物料信息变化表.Code=物料信息表.Code and 物料信息表.TypeId=物料类型信息表.ID"
  257.         D2.Refresh
  258.     End If
  259.     TotalCount = D2.Recordset.RecordCount
  260.     ComboChange.Enabled = True
  261.     Label4.Caption = "共 " & TotalCount & " 条记录。"
  262. End Sub
  263. Private Sub ComboChange_Click()
  264.     If ComboChange.ListIndex = 0 Then
  265.         D2.RecordSource = "SELECT 物料信息变化表.Code as 物料代码,Name as 物料名称,Change as 涨跌,CVar([Volume Price] / Volume) as 价格,TypeName as 类型 FROM 物料信息变化表,物料信息表,物料类型信息表  WHERE 物料信息变化表.Day=# " & SearchDate & "# and 物料信息变化表.Change >0.1 and 物料信息变化表.Code=物料信息表.Code and 物料信息表.TypeId=物料类型信息表.ID"
  266.         D2.Refresh
  267.     ElseIf ComboChange.ListIndex = 5 Then
  268.         D2.RecordSource = "SELECT 物料信息变化表.Code as 物料代码,Name as 物料名称,Change as 涨跌,CVar([Volume Price] / Volume) as 价格,TypeName as 类型 FROM 物料信息变化表,物料信息表,物料类型信息表  WHERE 物料信息变化表.Day=# " & SearchDate & "# and 物料信息变化表.Change <= -0.1 and 物料信息变化表.Code=物料信息表.Code and 物料信息表.TypeId=物料类型信息表.ID"
  269.         D2.Refresh
  270.     Else
  271.         D2.RecordSource = "SELECT 物料信息变化表.Code as 物料代码,Name as 物料名称,Change as 涨跌,CVar([Volume Price] / Volume) as 价格,TypeName as 类型 FROM 物料信息变化表,物料信息表,物料类型信息表  WHERE 物料信息变化表.Day=# " & SearchDate & "# and 物料信息变化表.Change >" & ChangeRateSel(ComboChange.ListIndex + 1) & " and 物料信息变化表.Change <= " & ChangeRateSel(ComboChange.ListIndex) & " and 物料信息变化表.Code=物料信息表.Code and 物料信息表.TypeId=物料类型信息表.ID"
  272.         D2.Refresh
  273.     End If
  274.     TotalCount = D2.Recordset.RecordCount
  275.     ComboChange.Enabled = True
  276.     Label4.Caption = "共 " & TotalCount & " 条记录。"
  277.  End Sub
  278. Private Sub Command1_Click()
  279. Unload Me
  280. End Sub
  281. Private Sub Command2_Click()
  282.   MonthView1.Visible = True
  283.   comQuery.Enabled = False
  284. End Sub
  285. Private Sub Command3_Click()
  286.  filename = App.Path & "dbmaterialinfo2007.mdb"
  287. Set dbs = OpenDatabase(filename)
  288. Set rec = dbs.OpenRecordset("物料信息变化表")
  289. If Text2.Text = "" Then
  290.   r = MsgBox("没有输入物料代号!", 0 + 16, "提示")
  291.   Exit Sub
  292.   
  293. Else
  294.   rec.MoveFirst
  295.  If rec.Fields("Code") <> Text2.Text Then
  296.   r = MsgBox("数据库中没有这条记录!", 0 + 16, "提示")
  297.   Exit Sub
  298.   End If
  299.   Do While Not rec.EOF
  300.   
  301.  If rec.Fields("Code") = Text2.Text Then
  302.     frmAnalySingle.Show
  303.   End If
  304.   rec.MoveNext
  305.   Loop
  306.   
  307. End If
  308. End Sub
  309. Private Sub Command4_Click()
  310. frmAnalyAll.Show
  311. End Sub
  312. Private Sub comQuery_Click()
  313.     Dim arrMovAverage(3) As Integer
  314.     Dim arrChange(5) As Integer
  315.     Dim RecordStatics As Recordset
  316.     Dim i As Integer
  317. If Text1.Text = "" Then
  318.   r = MsgBox("日期不能为空!", 0 + 16, "提示")
  319.   Exit Sub
  320. End If
  321.     SearchDate = Trim(Text1.Text)
  322.     If SearchDate < MinDate Or SearchDate > MaxDate Then
  323.         r = MsgBox("输入日期必须介于" & MinDate & " 和" & MaxDate & "之间!", 0 + 16, "提示")
  324.         Text1.Text = ""
  325.         ComboPrice.Enabled = False
  326.         ComboChange.Enabled = False
  327.     Else
  328.       
  329.       D2.RecordSource = "SELECT 物料信息变化表.Code as 物料代码,Name as 物料名称,Change as 涨跌,CVar([Volume Price] / Volume) as 价格,TypeName as 物料类型 FROM 物料信息变化表,物料信息表,物料类型信息表  WHERE 物料信息变化表.Day=# " & SearchDate & "# and 物料信息变化表.Code=物料信息表.Code and 物料信息表.TypeId=物料类型信息表.ID"
  330.       D2.Refresh
  331.       
  332.       On Error Resume Next
  333.     
  334.     For i = 0 To 2
  335.       Set RecordStatics = dbs.OpenRecordset("select * from 物料信息变化表 WHERE 物料信息变化表.Day=# " & SearchDate & "#  And CVar(物料信息变化表.[Volume Price] / 物料信息变化表.Volume) > " & AverageSel(i) & " And CVar(物料信息变化表.[Volume Price] / 物料信息变化表.Volume) <= " & AverageSel(i + 1) & "")
  336.       x = RecordStatics.RecordCount
  337.       If Not RecordStatics.EOF Then
  338.         RecordStatics.MoveLast
  339.       End If
  340.       arrMovAverage(i) = RecordStatics.RecordCount
  341.     Next i
  342.     Set RecordStatics = dbs.OpenRecordset("select * from 物料信息变化表 WHERE 物料信息变化表.Day=# " & SearchDate & "#  And CVar(物料信息变化表.[Volume Price] / 物料信息变化表.Volume)>30")
  343.     If Not RecordStatics.EOF Then
  344.         RecordStatics.MoveLast
  345.       End If
  346.     arrMovAverage(3) = RecordStatics.RecordCount
  347.     
  348.     MSChartPrice.ChartData = arrMovAverage
  349.     MSChartPrice.Legend.VtFont.size = 7
  350.     MSChartPrice.Legend.VtFont.Name = "宋体"
  351.     MSChartPrice.Title.VtFont.size = 7
  352.     MSChartPrice.ShowLegend = True
  353.     MSChartPrice.Plot.SeriesCollection(1).LegendText = "0-10"
  354.     MSChartPrice.Plot.SeriesCollection(2).LegendText = "10-20"
  355.     MSChartPrice.Plot.SeriesCollection(3).LegendText = "20-30"
  356.     MSChartPrice.Plot.SeriesCollection(4).LegendText = "高于30"
  357.     
  358.     For i = 1 To 4
  359.       Set RecordStatics = dbs.OpenRecordset("select * from 物料信息变化表 WHERE 物料信息变化表.Day=# " & SearchDate & "# and 物料信息变化表.Change >" & ChangeRateSel(i + 1) & " and 物料信息变化表.Change <= " & ChangeRateSel(i) & " ")
  360.       If Not RecordStatics.EOF Then
  361.         RecordStatics.MoveLast
  362.       End If
  363.       arrChange(i) = RecordStatics.RecordCount
  364.     Next i
  365.     Set RecordStatics = dbs.OpenRecordset("select * from 物料信息变化表 WHERE 物料信息变化表.Day=# " & SearchDate & "# and 物料信息变化表.Change >0.1 ")
  366.     If Not RecordStatics.EOF Then
  367.         RecordStatics.MoveLast
  368.     End If
  369.     arrChange(0) = RecordStatics.RecordCount
  370.     Set RecordStatics = dbs.OpenRecordset("select * from 物料信息变化表 WHERE 物料信息变化表.Day=# " & SearchDate & "# and 物料信息变化表.Change <-0.1 ")
  371.     If Not RecordStatics.EOF Then
  372.         RecordStatics.MoveLast
  373.     End If
  374.     arrChange(5) = RecordStatics.RecordCount
  375.     
  376.     MSChartChange.ChartData = arrChange
  377.     MSChartChange.ShowLegend = True
  378.     MSChartChange.Legend.VtFont.size = 7
  379.    
  380.     MSChartChange.Plot.SeriesCollection(1).LegendText = "涨过10%"
  381.     MSChartChange.Plot.SeriesCollection(2).LegendText = "涨5%-10%"
  382.     MSChartChange.Plot.SeriesCollection(3).LegendText = "涨0%-5%"
  383.     MSChartChange.Plot.SeriesCollection(4).LegendText = "跌0%-5%"
  384.     MSChartChange.Plot.SeriesCollection(5).LegendText = "跌5%-10%"
  385.     MSChartChange.Plot.SeriesCollection(6).LegendText = "跌过10%"
  386.     
  387.     ComboPrice.Enabled = True
  388.     ComboChange.Enabled = True
  389.     D2.Recordset.MoveLast
  390.     TotalCount = D2.Recordset.RecordCount
  391.     ComboChange.Enabled = False
  392.     Label4.Caption = "共 " & TotalCount & " 条记录。"
  393.     End If
  394. End Sub
  395. Private Sub Form_Load()
  396.     Dim MovAverage As Variant
  397.     Dim ChangeRate As Variant
  398.     Dim RecordDate As Recordset
  399.     For i = 1 To 5
  400.       ChangeRateSel(i) = 0.15 - 0.05 * i
  401.     Next i
  402.     For i = 0 To 3
  403.        AverageSel(i) = i * 10
  404.     Next i
  405.     
  406.     MovAverage = Array("0-10", "10-20", "20-30", "高于 30")
  407.     ChangeRate = Array("涨过 10%", "涨 5%-10%", "涨 0%-5%", "跌  0%-5%", "跌  5%-10%", "跌过 10%")
  408.    
  409.     For i = 0 To 3
  410.         ComboPrice.AddItem MovAverage(i)
  411.     Next i
  412.     For i = 0 To 5
  413.        ComboChange.AddItem ChangeRate(i)
  414.     Next i
  415.     
  416.     MonthView1.Visible = False
  417.     filename = App.Path & "dbmaterialinfo2007.mdb"
  418.     Set dbs = OpenDatabase(filename)
  419.     D2.DatabaseName = filename
  420.     Set rec = dbs.OpenRecordset("物料信息表")
  421.     Text1.Text = ""
  422.     
  423.     Set RecordDate = dbs.OpenRecordset("select max(Day) as Max,min(Day) as Min from 物料信息变化表")
  424.     If Not RecordDate.BOF And Not RecordDate.EOF Then
  425.        MaxDate = RecordDate.Fields("Max")
  426.        MinDate = RecordDate.Fields("Min")
  427.     End If
  428.     grid.Cols = 5
  429.     GridInit
  430.     D2.RecordSource = "SELECT 物料信息变化表.Code as 物料代码,Name as 物料名称, Change as 涨跌,CVar([Volume Price] / Volume) as 价格,Day as 日期 FROM 物料信息变化表,物料信息表,物料类型信息表  WHERE 物料信息变化表.Code=物料信息表.Code and 物料信息表.TypeId=物料类型信息表.ID"
  431.     D2.Refresh
  432.     D2.Recordset.MoveLast
  433.     TotalCount = D2.Recordset.RecordCount
  434.     Label4.Caption = "共 " & TotalCount & " 条记录。"
  435. End Sub
  436. Private Sub GridInit()
  437.     Dim GridInfo   As Variant
  438.     GridInfo = Array("物料名称", "日耗量", "日均额", "涨跌", "平均价格")
  439.     grid.Clear
  440.     grid.Row = 0
  441.     For i = 0 To 4
  442.         grid.Col = i
  443.         grid.Text = GridInfo(i)
  444.         grid.ColAlignment(i) = 3
  445.         grid.ColWidth(i) = 800
  446.     Next i
  447.     grid.ColWidth(3) = 1000
  448.     grid.ColAlignment(2) = 8
  449.     grid.ColAlignment(3) = 6
  450.     grid.ColAlignment(4) = 6
  451. End Sub
  452. Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
  453.   Text1.Text = MonthView1.Value
  454.   MonthView1.Visible = False
  455.   comQuery.Enabled = True
  456.   comQuery_Click
  457. End Sub
  458. Private Sub Text2_KeyPress(KeyAscii As Integer)
  459.         Select Case KeyAscii
  460.         Case Asc("0") To Asc("9"), vbKeyBack
  461.                 'text Change
  462.         Case Else
  463.                 KeyAscii = 0
  464.         End Select
  465. End Sub