上传用户:zhpu1995
上传日期:2013-09-06
资源大小:61151k
文件大小:16k
源码类别:

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{D76D7128-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSOCX7.OCX"
  3. Begin VB.Form Stock_PlanBuild 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "生成采购计划"
  6.    ClientHeight    =   4575
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   6015
  10.    Icon            =   "采购计划_生成采购计划.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   4575
  15.    ScaleWidth      =   6015
  16.    ShowInTaskbar   =   0   'False
  17.    StartUpPosition =   2  '屏幕中心
  18.    Begin VB.CommandButton cmd_Ok 
  19.       Caption         =   "确定(&O)"
  20.       Height          =   300
  21.       Left            =   3540
  22.       MouseIcon       =   "采购计划_生成采购计划.frx":1042
  23.       MousePointer    =   99  'Custom
  24.       Picture         =   "采购计划_生成采购计划.frx":134C
  25.       TabIndex        =   5
  26.       Top             =   4185
  27.       Width           =   1120
  28.    End
  29.    Begin VB.CommandButton Cmd_Cancel 
  30.       Cancel          =   -1  'True
  31.       Caption         =   "退出(&E)"
  32.       Height          =   300
  33.       Left            =   4785
  34.       MouseIcon       =   "采购计划_生成采购计划.frx":1656
  35.       MousePointer    =   99  'Custom
  36.       Picture         =   "采购计划_生成采购计划.frx":1960
  37.       TabIndex        =   4
  38.       Top             =   4185
  39.       Width           =   1120
  40.    End
  41.    Begin VB.Frame Frame1 
  42.       Caption         =   "考虑因素"
  43.       Height          =   630
  44.       Left            =   60
  45.       TabIndex        =   0
  46.       Top             =   5760
  47.       Width           =   5850
  48.       Begin VB.CheckBox Check 
  49.          Caption         =   "现 有 库 存"
  50.          Height          =   357
  51.          Index           =   0
  52.          Left            =   382
  53.          TabIndex        =   3
  54.          Top             =   195
  55.          Value           =   1  'Checked
  56.          Width           =   1365
  57.       End
  58.       Begin VB.CheckBox Check 
  59.          Caption         =   "已 分 配 量"
  60.          Height          =   357
  61.          Index           =   1
  62.          Left            =   2220
  63.          TabIndex        =   2
  64.          Top             =   195
  65.          Value           =   1  'Checked
  66.          Width           =   1365
  67.       End
  68.       Begin VB.CheckBox Check 
  69.          Caption         =   "安 全 库 存"
  70.          Height          =   357
  71.          Index           =   2
  72.          Left            =   4020
  73.          TabIndex        =   1
  74.          Top             =   195
  75.          Value           =   1  'Checked
  76.          Width           =   1320
  77.       End
  78.    End
  79.    Begin VSFlex8Ctl.VSFlexGrid CxbbGrid 
  80.       Height          =   3465
  81.       Left            =   90
  82.       TabIndex        =   6
  83.       Top             =   540
  84.       Width           =   5850
  85.       _ExtentX        =   10319
  86.       _ExtentY        =   6112
  87.       Appearance      =   1
  88.       BorderStyle     =   1
  89.       Enabled         =   -1  'True
  90.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  91.          Name            =   "宋体"
  92.          Size            =   9
  93.          Charset         =   134
  94.          Weight          =   400
  95.          Underline       =   0   'False
  96.          Italic          =   0   'False
  97.          Strikethrough   =   0   'False
  98.       EndProperty
  99.       MousePointer    =   0
  100.       BackColor       =   16777215
  101.       ForeColor       =   -2147483640
  102.       BackColorFixed  =   -2147483648
  103.       ForeColorFixed  =   -2147483630
  104.       BackColorSel    =   -2147483635
  105.       ForeColorSel    =   -2147483634
  106.       BackColorBkg    =   -2147483636
  107.       BackColorAlternate=   16777215
  108.       GridColor       =   -2147483633
  109.       GridColorFixed  =   -2147483632
  110.       TreeColor       =   -2147483632
  111.       FloodColor      =   192
  112.       SheetBorder     =   -2147483642
  113.       FocusRect       =   1
  114.       HighLight       =   1
  115.       AllowSelection  =   -1  'True
  116.       AllowBigSelection=   -1  'True
  117.       AllowUserResizing=   0
  118.       SelectionMode   =   0
  119.       GridLines       =   1
  120.       GridLinesFixed  =   2
  121.       GridLineWidth   =   1
  122.       Rows            =   50
  123.       Cols            =   10
  124.       FixedRows       =   1
  125.       FixedCols       =   0
  126.       RowHeightMin    =   0
  127.       RowHeightMax    =   0
  128.       ColWidthMin     =   0
  129.       ColWidthMax     =   0
  130.       ExtendLastCol   =   0   'False
  131.       FormatString    =   ""
  132.       ScrollTrack     =   0   'False
  133.       ScrollBars      =   3
  134.       ScrollTips      =   0   'False
  135.       MergeCells      =   0
  136.       MergeCompare    =   0
  137.       AutoResize      =   -1  'True
  138.       AutoSizeMode    =   0
  139.       AutoSearch      =   0
  140.       MultiTotals     =   -1  'True
  141.       SubtotalPosition=   1
  142.       OutlineBar      =   0
  143.       OutlineCol      =   0
  144.       Ellipsis        =   0
  145.       ExplorerBar     =   0
  146.       PicturesOver    =   0   'False
  147.       FillStyle       =   0
  148.       RightToLeft     =   0   'False
  149.       PictureType     =   0
  150.       TabBehavior     =   0
  151.       OwnerDraw       =   0
  152.       Editable        =   0   'False
  153.       ShowComboButton =   -1  'True
  154.       WordWrap        =   0   'False
  155.       TextStyle       =   0
  156.       TextStyleFixed  =   0
  157.       OleDragMode     =   0
  158.       OleDropMode     =   0
  159.       DataMode        =   0
  160.       VirtualData     =   -1  'True
  161.    End
  162.    Begin VB.Label Label1 
  163.       AutoSize        =   -1  'True
  164.       Caption         =   "计划周期"
  165.       BeginProperty Font 
  166.          Name            =   "宋体"
  167.          Size            =   12
  168.          Charset         =   134
  169.          Weight          =   700
  170.          Underline       =   0   'False
  171.          Italic          =   0   'False
  172.          Strikethrough   =   0   'False
  173.       EndProperty
  174.       ForeColor       =   &H00404040&
  175.       Height          =   240
  176.       Left            =   2160
  177.       TabIndex        =   7
  178.       Top             =   90
  179.       Width           =   1020
  180.    End
  181. End
  182. Attribute VB_Name = "Stock_PlanBuild"
  183. Attribute VB_GlobalNameSpace = False
  184. Attribute VB_Creatable = False
  185. Attribute VB_PredeclaredId = True
  186. Attribute VB_Exposed = False
  187. '******************************************************************
  188. '*    模 块 名 称 :采购计划-采购计划生成
  189. '*    功 能 描 述 :采购计划生成
  190. '*    程序员姓名  :乔进
  191. '*    最后修改人  :乔进
  192. '*    最后修改时间:2001/12/20
  193. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  194. '******************************************************************
  195. Option Explicit
  196.  
  197. Dim RecTemp As New ADODB.Recordset       '需求表
  198. Dim jdzygs As Integer                    '控件焦点转移个数
  199. Dim Lrzt As Integer                      '录入状态标志(0-非录入状态 1-增加 2-修改)
  200. Dim ReportTitle As String                '报表主标题
  201. Dim Sqlstr As String                     'Sql语句字符串
  202. Dim jsqte As Integer                     '计数器
  203.   
  204. '以下为固定使用变量(网格)
  205. Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
  206. Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
  207. Dim GridCode As String                   '显示网格网格代码
  208. Dim GridInf() As Variant                 '整个网格设置信息
  209. Dim Tsxx As String                       '系统提示信息
  210. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  211. Dim Sjhgd As Double                      '网格数据行高度
  212. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  213. Dim GridStr()  As String                 '网格列信息(字符型)
  214. Dim GridInt() As Integer                 '网格列信息(整型)
  215. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  216. '******************************************************************************************************************************
  217. '*过程说明:事件
  218. '*过程名称:Form_KeyPress
  219. '*功能描述:控 制 焦 点 转 移
  220. '*参数说明:
  221. '******************************************************************************************************************************
  222. Private Sub Form_KeyPress(KeyAscii As Integer)
  223.    jdzygs = 6
  224.    Select Case KeyAscii
  225.       Case vbKeyReturn
  226.            If Kjjdzy(jdzygs) Then
  227.               KeyAscii = 0
  228.            End If
  229.       Case 39           '屏蔽"'"
  230.         KeyAscii = 0
  231.    End Select
  232. End Sub
  233. '******************************************************************************************************************************
  234. '*过程说明:事件
  235. '*过程名称:Form_Load
  236. '*功能描述:窗体载入
  237. '*参数说明:
  238. '******************************************************************************************************************************
  239. Private Sub Form_Load()
  240.    Screen.MousePointer = 11
  241.   '定义可变部分变量
  242.   '调入打印页面设置窗体
  243.   '调 入 网 格
  244.   GridCode = "MRP_BuildDepDemand"
  245.   
  246.   Call BzWgcsh(CxbbGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  247.   
  248.   Qslz = GridInf(1)
  249.   Sjhgd = GridInf(2)
  250.   Szzls = CxbbGrid.Cols - 1
  251.   
  252.   '填 充 网 格
  253.    Call Cxnrtcwg
  254.  
  255.    Screen.MousePointer = 0
  256.    Stock_PlanBuild.HelpContextID = 2416001
  257.  End Sub
  258. '******************************************************************************************************************************
  259. '*过程说明:自定义子程序
  260. '*过程名称:Cxnrtcwg
  261. '*功能描述:查 询 内 容 填 充 网 格
  262. '*参数说明:
  263. '******************************************************************************************************************************
  264. Private Sub Cxnrtcwg()
  265.     Dim Sqlstr As String
  266.     Dim jsqte As Long, sMonthCyc As String, i As Integer, iYear As Integer, iMonth As Integer
  267.     
  268.     On Error GoTo Errhand
  269.     
  270.     '列出所有的月计划
  271.     Me.CxbbGrid.Clear 1
  272.     Sqlstr = "Select * From Gy_kjrlb Where (kjYear>'" & Year(Xtrq) & "' ) or ( kjYear='" & Year(Xtrq) & "' And Period>='" & Month(Xtrq) & "' ) Order by kjYear ,Period"
  273.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  274.     If Not RecTemp.EOF Then
  275.         RecTemp.MoveLast: RecTemp.MoveFirst: jsqte = CxbbGrid.FixedRows
  276.         CxbbGrid.Rows = CxbbGrid.FixedRows + Val(RecTemp.RecordCount)
  277.         Do While Not RecTemp.EOF
  278.             CxbbGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = Trim(Str(RecTemp!kjyear)) + "." + Format(Trim(Str(RecTemp!Period)), "00")
  279.             CxbbGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = Format(RecTemp!Qsrq, "yyyy-mm-dd")
  280.             CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = Format(RecTemp!Zzrq, "yyyy-mm-dd")
  281.             CxbbGrid.TextMatrix(jsqte, Sydz("004", GridStr(), Szzls)) = Fun_GetCycState(Val(RecTemp!kjyear), Val(RecTemp!Period))
  282.             RecTemp.MoveNext
  283.             jsqte = jsqte + 1
  284.         Loop
  285.     End If
  286.     Exit Sub
  287. Errhand:
  288.     If Err.Number = "-2147217871" Then
  289.         Tsxx = "连接超时 , 请稍后重新进入!"
  290.     Else
  291.         Tsxx = "初始化过程发生未知错误,请稍后重新进入!"
  292.     End If
  293.     Me.Show
  294.     Me.Refresh
  295.     DoEvents
  296.     Call Xtxxts(Tsxx, 0, 1)
  297. End Sub
  298. '返回某个周期状态,从而知道该周期是否需要汇总
  299. Function Fun_GetCycState(iYear As Integer, iMonth As Integer) As String
  300.     Dim RecState As New ADODB.Recordset, Sqls As String
  301.     
  302.     Sqlstr = "Select Count(*) From MRP_TotalDemand Where kjYear='" & iYear & "' And Period='" & iMonth & "' And Checker<>'' And IfTransack=0 And IfComplete=0 "
  303.     Set RecState = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  304.     If RecState.Fields(0) <> 0 Then
  305.         Fun_GetCycState = "需要汇总"
  306.         Exit Function
  307.     End If
  308.     
  309.     Fun_GetCycState = "不需汇总"
  310.     Set RecState = Nothing
  311. End Function
  312. Private Sub Form_Unload(Cancel As Integer)             '窗体卸载
  313.    Set Cxnrrec = Nothing
  314.    Set RecTemp = Nothing
  315.    Unload Dyymctbl
  316. End Sub
  317. '******************************************************************************************************************************
  318. '*过程说明:自定义程序
  319. '*过程名称:cmd_Ok_Click
  320. '*功能描述:根据所选计划周期对该计划周期内的相关与独立需求进行汇总
  321. '*参数说明:
  322. '******************************************************************************************************************************
  323. Private Sub cmd_Ok_Click()
  324.     Dim sCycStr As String, iYear As Integer, iMonth As Integer, RecBOM As New ADODB.Recordset
  325.     
  326.     If CxbbGrid.Row < CxbbGrid.FixedRows Then Exit Sub
  327.     
  328.     If Trim(CxbbGrid.TextMatrix(CxbbGrid.Row, Sydz("004", GridStr(), Szzls))) = "不需汇总" Then
  329.         Tsxx = "该周期不需要汇总!"
  330.         Call Xtxxts(Tsxx, 0, 1)
  331.         Exit Sub
  332.     End If
  333.     sCycStr = CxbbGrid.TextMatrix(CxbbGrid.Row, Sydz("001", GridStr(), Szzls))
  334.     Call Sub_DivMonth(sCycStr, iYear, iMonth)
  335.      
  336.     On Error GoTo Errhand
  337.     
  338.     Cw_DataEnvi.DataConnect.Errors.Clear
  339.     Cw_DataEnvi.DataConnect.BeginTrans
  340.     
  341.     Screen.MousePointer = 11
  342.     Dim c As New ADODB.Command:     Dim p  As ADODB.Parameter
  343.     
  344.     c.ActiveConnection = Cw_DataEnvi.DataConnect
  345.     c.CommandType = adCmdStoredProc
  346.     c.CommandText = "MRP_Sp_CreateStockPlan"
  347.     Set p = c.CreateParameter("ProYear", adChar, adParamInput, 20)
  348.     c.Parameters.Append p:      p.Value = iYear
  349.     Set p = c.CreateParameter("ProMonth", adChar, adParamInput, 20)
  350.     c.Parameters.Append p:          p.Value = iMonth
  351.     Set p = c.CreateParameter("Czymc", adChar, adParamInput, 20)
  352.     c.Parameters.Append p: p.Value = Xtczy
  353.     Set p = c.CreateParameter("Czrq", adChar, adParamInput, 20)
  354.     c.Parameters.Append p: p.Value = Format(Xtrq, "yyyy-mm-dd")
  355.     Set p = c.CreateParameter("BillCode", adChar, adParamInput, 20)
  356.     c.Parameters.Append p: p.Value = "1101"
  357.     Set p = c.CreateParameter("Status", adInteger, adParamOutput)
  358.     c.Parameters.Append p
  359.     c.Execute
  360.     If c.Parameters(5) = 0 Then
  361.         Tsxx = "该周期内没有可以汇总物料!"
  362.         Call Xtxxts(Tsxx, 0, 1)
  363.         Cw_DataEnvi.DataConnect.RollbackTrans
  364.         Screen.MousePointer = 0
  365.         Exit Sub
  366.     ElseIf c.Parameters(4) = 1 Then
  367.         GoTo Errhand
  368.     End If
  369.     
  370.     Cw_DataEnvi.DataConnect.CommitTrans
  371.     Tsxx = "汇总完成!"
  372.     Call Xtxxts(Tsxx, 0, 4)
  373.     
  374.     Screen.MousePointer = 0
  375.     CxbbGrid.TextMatrix(CxbbGrid.Row, Sydz("004", GridStr(), Szzls)) = "不需汇总"
  376.     Exit Sub
  377. Errhand:
  378.     Screen.MousePointer = 0
  379.     Cw_DataEnvi.DataConnect.RollbackTrans
  380.     Tsxx = "汇总过程出现未知错误,没有进行汇总,数据恢复!"
  381.     Call Xtxxts(Tsxx, 0, 4)
  382.     Exit Sub
  383. End Sub
  384.  
  385. '******************************************************************************************************************************
  386. '*过程说明:自定义程序
  387. '*过程名称:Cmd_Cancel_Click
  388. '*功能描述:取消操作,退成汇总程序
  389. '*参数说明:
  390. '******************************************************************************************************************************
  391. Private Sub Cmd_Cancel_Click()
  392.     Unload Me
  393. End Sub
  394. '*********************通用程序****************************************
  395. Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
  396.   Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
  397.   Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
  398.   Bbxbtgs = 1                                          '报 表 小 标 题 行 数
  399.   Bbbwhgs = 0                                          '报 表 表 尾 行 数
  400.   ReDim Bbxbt(1 To Bbxbtgs)
  401.   ReDim bbxbtzzxs(1 To Bbxbtgs)
  402.   If Bbbwhgs <> 0 Then
  403.      ReDim Bbbwh(1 To Bbbwhgs)
  404.      ReDim Bbbwhzzxs(1 To Bbbwhgs)
  405.   End If
  406.   Bbzbt = ReportTitle
  407.   Bbxbt(1) = " "
  408.   bbxbtzzxs(1) = 0                                     '报表行组织形式(0-居左 1-居中 2-居右)
  409.   Call Scyxsjb(CxbbGrid)                               '生成报表数据
  410.   Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
  411.   If Not bbylte Then
  412.      Unload DY_Tybbyldy
  413.   End If
  414. End Sub
  415. Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
  416.     Select Case Button.Key
  417.         Case "bz"
  418.             Call F1bz
  419.         Case "tc"
  420.             Unload Me
  421.     End Select
  422. End Sub
  423. '拆分周期,从周期中提出年月
  424. Private Sub Sub_DivMonth(InPara As String, Out1 As Integer, Out2 As Integer)
  425.     Dim Pos1 As Integer
  426.     Pos1 = InStr(1, InPara, ".")
  427.     Out1 = Val(Left(InPara, Pos1 - 1))
  428.     Out2 = Right(InPara, Len(InPara) - Pos1)
  429. End Sub
  430. Function Fun_NumericLen(Num As Double) As Integer
  431.     Dim sNum As String
  432.     sNum = Str(Int(Num))
  433.     Fun_NumericLen = Len(Trim(sNum))
  434. End Function