+
上传用户: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 Kf_Create 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "生成领料申请单"
  6.    ClientHeight    =   4545
  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     =   4545
  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        =   2
  23.       Top             =   5760
  24.       Width           =   5850
  25.       Begin VB.CheckBox Check 
  26.          Caption         =   "安 全 库 存"
  27.          Height          =   357
  28.          Index           =   2
  29.          Left            =   4020
  30.          TabIndex        =   5
  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        =   4
  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        =   3
  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             =   4155
  66.       Width           =   1120
  67.    End
  68.    Begin VB.CommandButton cmd_Ok 
  69.       Caption         =   "确定(&O)"
  70.       Height          =   300
  71.       Left            =   3600
  72.       MouseIcon       =   "库房管理_生成领料单.frx":1656
  73.       MousePointer    =   99  'Custom
  74.       Picture         =   "库房管理_生成领料单.frx":1960
  75.       TabIndex        =   0
  76.       Top             =   4155
  77.       Width           =   1120
  78.    End
  79.    Begin VSFlex8Ctl.VSFlexGrid CxbbGrid 
  80.       Height          =   3465
  81.       Left            =   90
  82.       TabIndex        =   6
  83.       Top             =   510
  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            =   2280
  177.       TabIndex        =   7
  178.       Top             =   120
  179.       Width           =   1020
  180.    End
  181. End
  182. Attribute VB_Name = "Kf_Create"
  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/21
  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.  
  253.    Screen.MousePointer = 0
  254.    Me.HelpContextID = 2416006
  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_TotalDemand Where kjYear='" & iYear & "' And Period='" & iMonth & "' And IfSum=0  And IfAbandon=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.     Fun_GetCycState = "不需汇总"
  308.     Set RecState = Nothing
  309. End Function
  310. Private Sub Form_Unload(Cancel As Integer)             '窗体卸载
  311.    Set Cxnrrec = Nothing
  312.    Set RecTemp = Nothing
  313.    Unload Dyymctbl
  314. End Sub
  315. '******************************************************************************************************************************
  316. '*过程说明:自定义程序
  317. '*过程名称:cmd_Ok_Click
  318. '*功能描述:根据所选计划周期对该计划周期内的相关与独立需求进行汇总
  319. '*参数说明:
  320. '******************************************************************************************************************************
  321. Private Sub cmd_Ok_Click()
  322.     Dim sCycStr As String, iYear As Integer, iMonth As Integer, RecBOM As New ADODB.Recordset
  323.     
  324.     If CxbbGrid.Row < CxbbGrid.FixedRows Then Exit Sub
  325.     
  326.     If Trim(CxbbGrid.TextMatrix(CxbbGrid.Row, Sydz("004", GridStr(), Szzls))) = "不需汇总" Then
  327.         Tsxx = "该周期不需要汇总!"
  328.         Call Xtxxts(Tsxx, 0, 1)
  329.         Exit Sub
  330.     End If
  331.     sCycStr = CxbbGrid.TextMatrix(CxbbGrid.Row, Sydz("001", GridStr(), Szzls))
  332.     Call Sub_DivMonth(sCycStr, iYear, iMonth)
  333.      
  334.     On Error GoTo Errhand
  335.     
  336.     Cw_DataEnvi.DataConnect.Errors.Clear
  337.     Cw_DataEnvi.DataConnect.BeginTrans
  338.     
  339.     Screen.MousePointer = 11
  340.     Dim c As New ADODB.Command:     Dim p  As ADODB.Parameter
  341.     
  342.     c.ActiveConnection = Cw_DataEnvi.DataConnect
  343.     c.CommandType = adCmdStoredProc
  344.     c.CommandText = "MRP_Sp_CreateBillOfIssueApply"
  345.     Set p = c.CreateParameter("kjYear", adChar, adParamInput, 20)
  346.     c.Parameters.Append p:      p.Value = iYear
  347.     Set p = c.CreateParameter("Period", adChar, adParamInput, 20)
  348.     c.Parameters.Append p:          p.Value = iMonth
  349.     Set p = c.CreateParameter("Czymc", adChar, adParamInput, 20)
  350.     c.Parameters.Append p: p.Value = Xtczy
  351.     Set p = c.CreateParameter("Czrq", adChar, adParamInput, 20)
  352.     c.Parameters.Append p: p.Value = Format(Xtrq, "yyyy-mm-dd")
  353.     Set p = c.CreateParameter("BillCode", adChar, adParamInput, 20)
  354.     c.Parameters.Append p: p.Value = "1209"
  355.     Set p = c.CreateParameter("Status", adInteger, adParamOutput)
  356.     c.Parameters.Append p
  357.     c.Execute
  358.     If c.Parameters(5) = 0 Then
  359.         Tsxx = "该周期内没有可以汇总物料!"
  360.         Call Xtxxts(Tsxx, 0, 1)
  361.         Cw_DataEnvi.DataConnect.RollbackTrans
  362.         Screen.MousePointer = 0
  363.         Exit Sub
  364.     ElseIf c.Parameters(4) = 1 Then
  365.         GoTo Errhand
  366.     End If
  367.     
  368.     Cw_DataEnvi.DataConnect.CommitTrans
  369.     Tsxx = "汇总完成!"
  370.     Call Xtxxts(Tsxx, 0, 4)
  371.     
  372.     Screen.MousePointer = 0
  373.     CxbbGrid.TextMatrix(CxbbGrid.Row, Sydz("004", GridStr(), Szzls)) = "不需汇总"
  374.     Exit Sub
  375. Errhand:
  376.     Screen.MousePointer = 0
  377.     Cw_DataEnvi.DataConnect.RollbackTrans
  378.     Tsxx = "汇总过程出现未知错误,没有进行汇总,数据恢复!"
  379.     Call Xtxxts(Tsxx, 0, 4)
  380.     Exit Sub
  381. End Sub
  382.  
  383. '******************************************************************************************************************************
  384. '*过程说明:自定义程序
  385. '*过程名称:Cmd_Cancel_Click
  386. '*功能描述:取消操作,退成汇总程序
  387. '*参数说明:
  388. '******************************************************************************************************************************
  389. Private Sub Cmd_Cancel_Click()
  390.     Unload Me
  391. End Sub
  392. '*********************通用程序****************************************
  393. Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
  394.   Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
  395.   Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
  396.   Bbxbtgs = 1                                          '报 表 小 标 题 行 数
  397.   Bbbwhgs = 0                                          '报 表 表 尾 行 数
  398.   ReDim Bbxbt(1 To Bbxbtgs)
  399.   ReDim bbxbtzzxs(1 To Bbxbtgs)
  400.   If Bbbwhgs <> 0 Then
  401.      ReDim Bbbwh(1 To Bbbwhgs)
  402.      ReDim Bbbwhzzxs(1 To Bbbwhgs)
  403.   End If
  404.   Bbzbt = ReportTitle
  405.   Bbxbt(1) = " "
  406.   bbxbtzzxs(1) = 0                                     '报表行组织形式(0-居左 1-居中 2-居右)
  407.   Call Scyxsjb(CxbbGrid)                               '生成报表数据
  408.   Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
  409.   If Not bbylte Then
  410.      Unload DY_Tybbyldy
  411.   End If
  412. End Sub
  413. Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
  414.     Select Case Button.Key
  415.         Case "bz"
  416.             Call F1bz
  417.         Case "tc"
  418.             Unload Me
  419.     End Select
  420. End Sub
  421. '拆分周期,从周期中提出年月
  422. Private Sub Sub_DivMonth(InPara As String, Out1 As Integer, Out2 As Integer)
  423.     Dim Pos1 As Integer
  424.     Pos1 = InStr(1, InPara, ".")
  425.     Out1 = Val(Left(InPara, Pos1 - 1))
  426.     Out2 = Right(InPara, Len(InPara) - Pos1)
  427. End Sub
  428. Function Fun_NumericLen(Num As Double) As Integer
  429.     Dim sNum As String
  430.     sNum = Str(Int(Num))
  431.     Fun_NumericLen = Len(Trim(sNum))
  432. End Function