+
上传用户: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 MRP_TotalDemandBuild 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "汇总物料需求"
  6.    ClientHeight    =   4560
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   6030
  10.    Icon            =   "物料需求计划_汇总需求生成.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   4560
  15.    ScaleWidth      =   6030
  16.    ShowInTaskbar   =   0   'False
  17.    StartUpPosition =   2  '屏幕中心
  18.    Begin VB.Frame Frame1 
  19.       Caption         =   "考虑因素"
  20.       Height          =   630
  21.       Left            =   60
  22.       TabIndex        =   4
  23.       Top             =   5760
  24.       Width           =   5850
  25.       Begin VB.CheckBox Check 
  26.          Caption         =   "安 全 库 存"
  27.          Height          =   357
  28.          Index           =   2
  29.          Left            =   4020
  30.          TabIndex        =   7
  31.          Top             =   195
  32.          Value           =   1  'Checked
  33.          Width           =   1320
  34.       End
  35.       Begin VB.CheckBox Check 
  36.          Caption         =   "已 分 配 量"
  37.          Height          =   357
  38.          Index           =   1
  39.          Left            =   2220
  40.          TabIndex        =   6
  41.          Top             =   195
  42.          Value           =   1  'Checked
  43.          Width           =   1365
  44.       End
  45.       Begin VB.CheckBox Check 
  46.          Caption         =   "现 有 库 存"
  47.          Height          =   357
  48.          Index           =   0
  49.          Left            =   382
  50.          TabIndex        =   5
  51.          Top             =   195
  52.          Value           =   1  'Checked
  53.          Width           =   1365
  54.       End
  55.    End
  56.    Begin VB.CommandButton Cmd_Cancel 
  57.       Cancel          =   -1  'True
  58.       Caption         =   "退出(&E)"
  59.       Height          =   300
  60.       Left            =   4785
  61.       MouseIcon       =   "物料需求计划_汇总需求生成.frx":1042
  62.       MousePointer    =   99  'Custom
  63.       Picture         =   "物料需求计划_汇总需求生成.frx":134C
  64.       TabIndex        =   1
  65.       Top             =   4185
  66.       Width           =   1120
  67.    End
  68.    Begin VB.CommandButton cmd_Ok 
  69.       Caption         =   "确定(&O)"
  70.       Height          =   300
  71.       Left            =   3540
  72.       MouseIcon       =   "物料需求计划_汇总需求生成.frx":1656
  73.       MousePointer    =   99  'Custom
  74.       Picture         =   "物料需求计划_汇总需求生成.frx":1960
  75.       TabIndex        =   0
  76.       Top             =   4185
  77.       Width           =   1120
  78.    End
  79.    Begin VSFlex8Ctl.VSFlexGrid CxbbGrid 
  80.       Height          =   3465
  81.       Left            =   90
  82.       TabIndex        =   2
  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            =   2430
  177.       TabIndex        =   3
  178.       Top             =   150
  179.       Width           =   1020
  180.    End
  181. End
  182. Attribute VB_Name = "MRP_TotalDemandBuild"
  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/10
  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.   Call BzWgcsh(CxbbGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  246.   Qslz = GridInf(1)
  247.   Sjhgd = GridInf(2)
  248.   Szzls = CxbbGrid.Cols - 1
  249.   
  250.   '填 充 网 格
  251.    Call Cxnrtcwg
  252.    Screen.MousePointer = 0
  253.    
  254.    
  255.  End Sub
  256. '******************************************************************************************************************************
  257. '*过程说明:自定义子程序
  258. '*过程名称:Cxnrtcwg
  259. '*功能描述:查 询 内 容 填 充 网 格
  260. '*参数说明:
  261. '******************************************************************************************************************************
  262. Private Sub Cxnrtcwg()
  263.     Dim Sqlstr As String
  264.     Dim jsqte As Long, sMonthCyc As String, i As Integer, iYear As Integer, iMonth As Integer
  265.     
  266.     On Error GoTo Errhand
  267.     
  268.     '列出所有的月计划
  269.     Me.CxbbGrid.Clear 1
  270.     Sqlstr = "Select * From Gy_kjrlb Where (kjYear>'" & Year(Xtrq) & "' ) or ( kjYear='" & Year(Xtrq) & "' And Period>='" & Month(Xtrq) & "' ) Order by kjYear ,Period"
  271.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  272.     If Not RecTemp.EOF Then
  273.         RecTemp.MoveLast: RecTemp.MoveFirst: jsqte = CxbbGrid.FixedRows
  274.         CxbbGrid.Rows = CxbbGrid.FixedRows + Val(RecTemp.RecordCount)
  275.         Do While Not RecTemp.EOF
  276.             CxbbGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = Trim(Str(RecTemp!kjyear)) + "." + Format(Trim(Str(RecTemp!Period)), "00")
  277.             CxbbGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = Format(RecTemp!Qsrq, "yyyy-mm-dd")
  278.             CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = Format(RecTemp!Zzrq, "yyyy-mm-dd")
  279.             CxbbGrid.TextMatrix(jsqte, Sydz("004", GridStr(), Szzls)) = Fun_GetCycState(Val(RecTemp!kjyear), Val(RecTemp!Period))
  280.             RecTemp.MoveNext
  281.             jsqte = jsqte + 1
  282.         Loop
  283.     End If
  284.     Exit Sub
  285. Errhand:
  286.     If Err.Number = "-2147217871" Then
  287.         Tsxx = "连接超时 , 请稍后重新进入!"
  288.     Else
  289.         Tsxx = "初始化过程发生未知错误,请稍后重新进入!"
  290.     End If
  291.     Me.Show
  292.     Me.Refresh
  293.     DoEvents
  294.     Call Xtxxts(Tsxx, 0, 1)
  295. End Sub
  296. '返回某个周期状态,从而知道该周期是否需要汇总
  297. Function Fun_GetCycState(iYear As Integer, iMonth As Integer) As String
  298.     Dim RecState As New ADODB.Recordset, Sqls As String
  299.     
  300.     Sqlstr = "Select Count(*) From MRP_DependentDemandMain Where kjYear='" & iYear & "' And Period='" & iMonth & "' And Checker<>'' And IfTotal=0 And IfComplete=0 "
  301.     Set RecState = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  302.     If RecState.Fields(0) <> 0 Then
  303.         Fun_GetCycState = "需要汇总"
  304.         Exit Function
  305.     End If
  306.     
  307.     Sqlstr = "Select Count(*) From MRP_IndependentDemandMain Where kjYear='" & iYear & "' And Period='" & iMonth & "' And Checker<>'' And IfTotal=0 And IfComplete=0 "
  308.     Set RecState = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  309.     If RecState.Fields(0) <> 0 Then
  310.         Fun_GetCycState = "需要汇总"
  311.         Exit Function
  312.     End If
  313.     
  314.     Fun_GetCycState = "不需汇总"
  315.     Set RecState = Nothing
  316. End Function
  317. Private Sub Form_Unload(Cancel As Integer)             '窗体卸载
  318.    Set Cxnrrec = Nothing
  319.    Set RecTemp = Nothing
  320.    Unload Dyymctbl
  321. End Sub
  322. '******************************************************************************************************************************
  323. '*过程说明:自定义程序
  324. '*过程名称:cmd_Ok_Click
  325. '*功能描述:根据所选计划周期对该计划周期内的相关与独立需求进行汇总
  326. '*参数说明:
  327. '******************************************************************************************************************************
  328. Private Sub cmd_Ok_Click()
  329.     Dim sCycStr As String, iYear As Integer, iMonth As Integer, RecBOM As New ADODB.Recordset
  330.     
  331.     If CxbbGrid.Row < CxbbGrid.FixedRows Then Exit Sub
  332.     
  333.     If Trim(CxbbGrid.TextMatrix(CxbbGrid.Row, Sydz("004", GridStr(), Szzls))) = "不需汇总" Then
  334.         Tsxx = "该周期不需要汇总!"
  335.         Call Xtxxts(Tsxx, 0, 1)
  336.         Exit Sub
  337.     End If
  338.     sCycStr = CxbbGrid.TextMatrix(CxbbGrid.Row, Sydz("001", GridStr(), Szzls))
  339.     Call Sub_DivMonth(sCycStr, iYear, iMonth)
  340.      
  341.     On Error GoTo Errhand
  342.     
  343.     Cw_DataEnvi.DataConnect.Errors.Clear
  344.     Cw_DataEnvi.DataConnect.BeginTrans
  345.     
  346.     Screen.MousePointer = 11
  347.     Dim c As New ADODB.Command:     Dim p  As ADODB.Parameter
  348.     
  349.     c.ActiveConnection = Cw_DataEnvi.DataConnect
  350.     c.CommandType = adCmdStoredProc
  351.     c.CommandText = "MRP_Sp_TotalSum"
  352.     Set p = c.CreateParameter("kjYear", adChar, adParamInput, 20)
  353.     c.Parameters.Append p:      p.Value = iYear
  354.     Set p = c.CreateParameter("Period", adChar, adParamInput, 20)
  355.     c.Parameters.Append p:          p.Value = iMonth
  356.     Set p = c.CreateParameter("Czymc", adChar, adParamInput, 20)
  357.     c.Parameters.Append p: p.Value = Xtczy
  358.     Set p = c.CreateParameter("Czrq", adChar, adParamInput, 20)
  359.     c.Parameters.Append p: p.Value = Format(Xtrq, "yyyy-mm-dd")
  360.     Set p = c.CreateParameter("BillCode", adChar, adParamInput, 20)
  361.     c.Parameters.Append p: p.Value = "2405"
  362.     Set p = c.CreateParameter("Status", adInteger, adParamOutput)
  363.     c.Parameters.Append p
  364.     c.Execute
  365.     If c.Parameters(5) = 0 Then
  366.         Tsxx = "该周期内没有可以汇总物料!"
  367.         Call Xtxxts(Tsxx, 0, 1)
  368.         Cw_DataEnvi.DataConnect.RollbackTrans
  369.         Screen.MousePointer = 0
  370.         Exit Sub
  371.     ElseIf c.Parameters(4) = 2 Then
  372.         GoTo Errhand
  373.     End If
  374.     
  375.     Cw_DataEnvi.DataConnect.CommitTrans
  376.     Tsxx = "汇总完成!"
  377.     Call Xtxxts(Tsxx, 0, 4)
  378.     
  379.     Screen.MousePointer = 0
  380.     CxbbGrid.TextMatrix(CxbbGrid.Row, Sydz("004", GridStr(), Szzls)) = "不需汇总"
  381.     Exit Sub
  382. Errhand:
  383.     Screen.MousePointer = 0
  384.     Cw_DataEnvi.DataConnect.RollbackTrans
  385.     Tsxx = "汇总过程出现未知错误,没有进行汇总,数据恢复!"
  386.     Call Xtxxts(Tsxx, 0, 4)
  387.     Exit Sub
  388. End Sub
  389.  
  390. '******************************************************************************************************************************
  391. '*过程说明:自定义程序
  392. '*过程名称:Cmd_Cancel_Click
  393. '*功能描述:取消操作,退成汇总程序
  394. '*参数说明:
  395. '******************************************************************************************************************************
  396. Private Sub Cmd_Cancel_Click()
  397.     Unload Me
  398. End Sub
  399. '*********************通用程序****************************************
  400. Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
  401.   Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
  402.   Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
  403.   Bbxbtgs = 1                                          '报 表 小 标 题 行 数
  404.   Bbbwhgs = 0                                          '报 表 表 尾 行 数
  405.   ReDim Bbxbt(1 To Bbxbtgs)
  406.   ReDim bbxbtzzxs(1 To Bbxbtgs)
  407.   If Bbbwhgs <> 0 Then
  408.      ReDim Bbbwh(1 To Bbbwhgs)
  409.      ReDim Bbbwhzzxs(1 To Bbbwhgs)
  410.   End If
  411.   Bbzbt = ReportTitle
  412.   Bbxbt(1) = " "
  413.   bbxbtzzxs(1) = 0                                     '报表行组织形式(0-居左 1-居中 2-居右)
  414.   Call Scyxsjb(CxbbGrid)                               '生成报表数据
  415.   Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
  416.   If Not bbylte Then
  417.      Unload DY_Tybbyldy
  418.   End If
  419. End Sub
  420. Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
  421.     Select Case Button.Key
  422.         Case "bz"
  423.             Call F1bz
  424.         Case "tc"
  425.             Unload Me
  426.     End Select
  427. End Sub
  428. '拆分周期,从周期中提出年月
  429. Private Sub Sub_DivMonth(InPara As String, Out1 As Integer, Out2 As Integer)
  430.     Dim Pos1 As Integer
  431.     Pos1 = InStr(1, InPara, ".")
  432.     Out1 = Val(Left(InPara, Pos1 - 1))
  433.     Out2 = Right(InPara, Len(InPara) - Pos1)
  434. End Sub
  435. Function Fun_NumericLen(Num As Double) As Integer
  436.     Dim sNum As String
  437.     sNum = Str(Int(Num))
  438.     Fun_NumericLen = Len(Trim(sNum))
  439. End Function