资源名称:ERPSYS.zip [点击查看]
上传用户:zhpu1995
上传日期:2013-09-06
资源大小:61151k
文件大小:129k
源码类别:
企业管理
开发平台:
Visual Basic
- TabIndex = 69
- Top = 0
- Width = 11640
- _ExtentX = 20532
- _ExtentY = 979
- ButtonWidth = 820
- ButtonHeight = 926
- AllowCustomize = 0 'False
- Appearance = 1
- Style = 1
- ImageList = "ImageList1"
- _Version = 393216
- BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628}
- NumButtons = 13
- BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "设置"
- Key = "ymsz"
- ImageKey = "sz"
- EndProperty
- BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "打印"
- Key = "dy"
- Object.ToolTipText = "点击或按Ctrl+P打印表格"
- ImageKey = "dy"
- EndProperty
- BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "预览"
- Key = "yl"
- ImageKey = "yl"
- EndProperty
- BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Style = 3
- EndProperty
- BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "增加"
- Key = "zj"
- Object.ToolTipText = "点击或按Ctrl+A增加记录"
- ImageKey = "xz"
- EndProperty
- BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "修改"
- Key = "xg"
- ImageKey = "xg"
- EndProperty
- BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "删除"
- Key = "sc"
- Object.ToolTipText = "点击或按Ctrl+D删除当前记录"
- ImageKey = "sc"
- EndProperty
- BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Style = 3
- EndProperty
- BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "查询"
- Key = "cx"
- ImageIndex = 24
- EndProperty
- BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "刷新"
- Key = "sx"
- ImageKey = "sx"
- EndProperty
- BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Style = 3
- EndProperty
- BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "帮助"
- Key = "bz"
- ImageKey = "bz"
- EndProperty
- BeginProperty Button13 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "退出"
- Key = "fh"
- ImageKey = "tc"
- EndProperty
- EndProperty
- BorderStyle = 1
- Begin MSComctlLib.Toolbar GsToolbar
- Height = 525
- Left = 9180
- TabIndex = 134
- Top = 0
- Width = 2475
- _ExtentX = 4366
- _ExtentY = 926
- ButtonWidth = 1455
- ButtonHeight = 926
- AllowCustomize = 0 'False
- Appearance = 1
- Style = 1
- ImageList = "ImageList1"
- _Version = 393216
- BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628}
- NumButtons = 3
- BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "保存格式"
- Key = "bcgs"
- ImageKey = "bcgs"
- EndProperty
- BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "默认列宽"
- Key = "hfmrgs"
- ImageKey = "mrlk"
- EndProperty
- BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628}
- Caption = "显示项目"
- Key = "szxsxm"
- ImageKey = "xsxm"
- EndProperty
- EndProperty
- End
- End
- Begin MSComctlLib.TreeView Tree_List
- Height = 6975
- Left = 30
- TabIndex = 132
- Top = 660
- Width = 2760
- _ExtentX = 4868
- _ExtentY = 12303
- _Version = 393217
- Indentation = 617
- Style = 7
- ImageList = "ImageList2"
- Appearance = 1
- BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
- Name = "宋体"
- Size = 9
- Charset = 134
- Weight = 400
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- End
- Begin MSComctlLib.ImageList ImageList2
- Left = 2340
- Top = 780
- _ExtentX = 1005
- _ExtentY = 1005
- BackColor = -2147483643
- ImageWidth = 16
- ImageHeight = 16
- MaskColor = 12632256
- _Version = 393216
- BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628}
- NumListImages = 4
- BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628}
- Picture = "公用_物料档案设置.frx":A0BB
- Key = "T"
- EndProperty
- BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628}
- Picture = "公用_物料档案设置.frx":A995
- Key = "C"
- EndProperty
- BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628}
- Picture = "公用_物料档案设置.frx":B26F
- Key = "Cl"
- EndProperty
- BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628}
- Picture = "公用_物料档案设置.frx":C2C1
- Key = "O"
- EndProperty
- EndProperty
- End
- Begin VB.Image imgSplitter
- Height = 6885
- Left = 2775
- MousePointer = 9 'Size W E
- Top = 750
- Width = 90
- End
- Begin VB.Label TsLabel
- AutoSize = -1 'True
- Caption = "计划价:"
- Height = 210
- Index = 35
- Left = -60
- TabIndex = 110
- Top = 30
- Width = 555
- End
- End
- Attribute VB_Name = "Gy_Material"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- '*******************************************************
- '* 模 块 名 称 :物料档案设置
- '* 功 能 描 述 :设置往来物料档案
- '* 程序员姓名 :徐强
- '* 最后修改人 :徐强
- '* 最后修改时间:2001/11/27
- '* 备 注:
- '*******************************************************
- Dim Rec_CodeSet As New ADODB.Recordset '编码设置表
- Dim jdzygs As Integer '控件焦点转移个数
- Dim Lrzt As Integer '录入状态标志(0-非录入状态 1-增加 2-修改)
- Dim ReportTitle As String '报表主标题
- Dim Str_RightEdit As String '编辑(新增、修改、删除)权限索引
- Dim kf_invsort As New ADODB.Recordset
- Dim codescheme As New ADODB.Recordset
- Dim Sqlstr As String
- Const sglSplitLimit = 1000
- Dim mbMoving As Boolean
- '以下为固定使用变量(网格)
- Dim Cxnrrec As New ADODB.Recordset '显示查询内容动态集
- Dim Dyymctbl As New DY_Dyymsz '打印页面窗体变量
- Dim GridCode As String '显示网格网格代码
- Dim GridInf() As Variant '整个网格设置信息
- Dim Tsxx As String '系统提示信息
- Dim Qslz As Long '网格隐藏(非操作显示)列数
- Dim Sjhgd As Double '网格数据行高度
- Dim GridBoolean() As Boolean '网格列信息(布尔型)
- Dim GridStr() As String '网格列信息(字符型)
- Dim GridInt() As Integer '网格列信息(整型)
- Dim Szzls As Integer '数组总列数(网格列数-1)
- '以下为固定使用变量(文本框)
- Dim Textvar() As Variant '存储变体型文本框信息
- Dim Textboolean() As Boolean '存储布尔型文本框信息
- Dim Textint() As Integer '存储整型文本框信息
- Dim Textstr() As String '存储字符型文本框信息
- Dim Max_Text_Index As Integer '最大录入文本框索引值
- Dim TextGroupCode As String '文本框录入分组编码
- Dim TextValiLock As Boolean '文本框失去焦点是否进行有效性控制判断
- Dim TextValiJudgeLock() As Boolean '文本框录入有效性判断控制锁
- Dim CurTextIndex As Integer '当前文本框索引值
- Dim TextChangeLock As Boolean '文本框内容变换控制锁
- Dim Bln_Cancel As Boolean '取消按钮信息传递
- Private Sub Form_KeyPress(KeyAscii As Integer) '控 制 焦 点 转 移
- jdzygs = 65
- Select Case KeyAscii
- Case vbKeyReturn
- If Kjjdzy(jdzygs) Then
- KeyAscii = 0
- End If
- Case 39 '屏蔽"'"
- KeyAscii = 0
- End Select
- End Sub
- Private Sub Form_Load()
- '打印报表标题信息
- ReportTitle = "物 料 档 案 设 置"
- '调入打印页面设置窗体
- XtReportCode = "Gy_material"
- Load Dyymctbl
- '以下为文本框处理程序(读入文本框录入信息)
- TextGroupCode = "Gy_material"
- Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())
- Call Wbkcsh
- '调入网格设置信息
- GridCode = "Gy_material"
- Call BzWgcsh(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
- Qslz = GridInf(1)
- Sjhgd = GridInf(2)
- Szzls = CzxsGrid.Cols - 1
- Call TreeListValue
- '填 充 网 格
- ' Call Cxnrtcwg
- '初始化toolbar,tab卡状态
- StTab.Tab = 0
- StTab.TabEnabled(1) = False
- Frame1.Enabled = False
- '设置为非录入状态
- Lrzt = 0
- Lrcomb(0).ListIndex = 0
- Lrcomb(1).ListIndex = 0
- Lrcomb(2).ListIndex = 0
- '编辑(新增、修改、删除)权限索引
- Str_RightEdit = "KF_Material_Edit"
- End Sub
- Private Sub Cxnrtcwg(Optional Sqlstr As String) '查询内容填充网格
- Dim jsqte As Long '查询临时使用变量
- '为加快显示速度,将网格刷新动作冻结
- CzxsGrid.Redraw = False
- '[>>查询连接串
- If Sqlstr = "" Then
- Sqlstr = "SELECT * FROM Gy_V_material order by MNumber"
- End If
- '<<]
- Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
- With Cxnrrec
- CzxsGrid.Rows = CzxsGrid.FixedRows
- If .EOF And .BOF Then
- CzxsGrid.Redraw = True
- Exit Sub
- End If
- jsqte = CzxsGrid.FixedRows
- Do While Not .EOF
- CzxsGrid.AddItem ""
- Call Jltcwg(Cxnrrec, jsqte) '调入填充网格子过程
- CzxsGrid.RowHeight(jsqte) = Sjhgd '设置网格高度
- .MoveNext
- jsqte = jsqte + 1
- Loop
- End With
- '将网格刷新动作解冻
- CzxsGrid.Redraw = True
- End Sub
- Private Sub Jltcwg(Jlbrec As ADODB.Recordset, Rowjsq As Long) '记录内容填充网格
- Dim i As Long
- i = Sydz("001", GridStr(), Szzls)
- '[>>以下为自定义部分
- With Jlbrec
- CzxsGrid.TextMatrix(Rowjsq, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("mnumber") & "") '物料编码
- CzxsGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("mname") & "") '物料名称
- CzxsGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = Trim(.Fields("model") & "") '规格型号
- CzxsGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("primaryunitname") & "") '主计量单位
- CzxsGrid.TextMatrix(Rowjsq, Sydz("005", GridStr(), Szzls)) = Trim(.Fields("purunitname") & "") '采购计量单位
- CzxsGrid.TextMatrix(Rowjsq, Sydz("006", GridStr(), Szzls)) = Trim(.Fields("saleunitname") & "") '销售计量单位
- CzxsGrid.TextMatrix(Rowjsq, Sydz("007", GridStr(), Szzls)) = Trim(.Fields("caizhi") & "") '材质
- CzxsGrid.TextMatrix(Rowjsq, Sydz("008", GridStr(), Szzls)) = Trim(.Fields("pursortname") & "") '所属采购分类
- CzxsGrid.TextMatrix(Rowjsq, Sydz("009", GridStr(), Szzls)) = Trim(.Fields("invsortname") & "") '所属库存分类
- CzxsGrid.TextMatrix(Rowjsq, Sydz("010", GridStr(), Szzls)) = Trim(.Fields("whname") & "") '默认分配仓库
- CzxsGrid.TextMatrix(Rowjsq, Sydz("011", GridStr(), Szzls)) = IIf(.Fields("planprice") = 0, "", .Fields("planprice")) '计划价
- CzxsGrid.TextMatrix(Rowjsq, Sydz("012", GridStr(), Szzls)) = IIf(.Fields("consultcost") = 0, "", .Fields("consultcost")) '参考成本
- CzxsGrid.TextMatrix(Rowjsq, Sydz("013", GridStr(), Szzls)) = IIf(.Fields("consultprice") = 0, "", .Fields("consultprice")) '参考售价
- CzxsGrid.TextMatrix(Rowjsq, Sydz("014", GridStr(), Szzls)) = IIf(.Fields("lowprice") = 0, "", .Fields("lowprice")) '最低售价
- CzxsGrid.TextMatrix(Rowjsq, Sydz("015", GridStr(), Szzls)) = Trim(.Fields("abcsort") & "") 'ABC分类
- CzxsGrid.TextMatrix(Rowjsq, Sydz("016", GridStr(), Szzls)) = Trim(.Fields("stopflag") & "") '停用标志
- End With
- '以上为自定义部分<<]
- End Sub
- Private Sub Form_Unload(Cancel As Integer) '窗体卸载
- Set Cxnrrec = Nothing
- Set Rec_CodeSet = Nothing
- Unload Dyymctbl
- Gy_MaterialQuery.UnloadCheck = 1
- Unload Gy_MaterialQuery
- End Sub
- Private Function Bclrsj() As Boolean '判断录入数据有效性,并保存数据
- Dim jsqte As Integer
- SSTab1.Tab = 0
- '对文本框录入内容进行为零和为空判断(固定不变)
- With Rec_CodeSet
- For jsqte = 0 To Max_Text_Index
- If Textint(jsqte, 8) = 1 Then '字段不能为空
- If Len(Trim(LrText(jsqte).Text)) = 0 Then
- Tsxx = Textstr(jsqte, 7) & "不能为空!"
- Call Xtxxts(Tsxx, 0, 1)
- LrText(jsqte).SetFocus
- Bclrsj = False
- Exit Function
- End If
- Else
- If Textint(jsqte, 8) = 2 Then '字段不能为零
- If Val(Trim(LrText(jsqte).Text)) = 0 Then
- Tsxx = Textstr(jsqte, 7) & "不能为零!"
- Call Xtxxts(Tsxx, 0, 1)
- LrText(jsqte).SetFocus
- Bclrsj = False
- Exit Function
- End If
- End If
- End If
- Next jsqte
- '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
- For jsqte = 0 To Max_Text_Index
- If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
- If Not TextYxxpd(jsqte) Then
- Exit Function
- End If
- End If
- Next jsqte
- '[<<
- If Lrcheck(0) = 0 And Lrcheck(1) = 0 And Lrcheck(2) = 0 And Lrcheck(3) = 0 And Lrcheck(4) = 0 And Lrcheck(5) = 0 Then
- Tsxx = "请选择物料属性!"
- Call Xtxxts(Tsxx, 0, 1)
- SSTab1.Tab = 0
- Lrcheck(0).SetFocus
- Bclrsj = False
- Exit Function
- End If
- If Lrcheck(6).Value = 1 And Lrcheck(7).Value = 0 Then
- Tsxx = "进行保质期管理的物料必须进行批次管理!"
- Call Xtxxts(Tsxx, 0, 1)
- SSTab1.Tab = 0
- Lrcheck(7).SetFocus
- Bclrsj = False
- Exit Function
- End If
- '>>]
- If Lrzt = 1 Then '增 加
- '[>>判断编码是否重复
- If .State = 1 Then .Close
- .Open "SELECT * FROM Gy_material WHERE MNumber= '" + Trim(LrText(0).Text) + "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
- If Not .EOF Then
- Tsxx = "物料编码重复!"
- Call Xtxxts(Tsxx, 0, 1)
- LrText(0).SetFocus
- Bclrsj = False
- Exit Function
- End If
- '判断名称是否重复
- If .State = 1 Then .Close
- .Open "SELECT * FROM Gy_material WHERE MName= '" + Trim(LrText(1).Text) + "' and model='" & Trim(LrText(2)) & "' and caizhi='" & Trim(LrText(14)) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
- If Not .EOF Then
- Tsxx = "物料名称+规格型号+材质不能重复!"
- Call Xtxxts(Tsxx, 0, 1)
- LrText(1).SetFocus
- Bclrsj = False
- Exit Function
- End If
- '判断记录内容无误后,将记录内容写入数据表
- On Error GoTo Swcwcl
- Cw_DataEnvi.DataConnect.BeginTrans
- .AddNew
- .Fields("MNumber") = Trim(LrText(0).Text) '物料编码
- .Fields("MName") = Trim(LrText(1).Text) '物料名称
- .Fields("model") = Trim(LrText(2)) '规格
- .Fields("primaryunit") = Trim(LrText(3).Tag) '主计量单位编码
- .Fields("primaryunitname") = Trim(LrText(3)) '主计量单位名称
- .Fields("purunit") = Trim(LrText(4).Tag) '采购计量单位
- .Fields("purunitname") = Trim(LrText(4).Text)
- .Fields("purinvcon1") = Val(LrText(5)) '采购换算率
- .Fields("purinvcon2") = Val(LrText(6))
- .Fields("saleunit") = Trim(LrText(7).Tag) '销售计量单位
- .Fields("saleunitname") = Trim(LrText(7))
- .Fields("saleinvcon1") = Trim(LrText(8).Text) '销售换算率
- .Fields("saleinvcon2") = Trim(LrText(9).Text)
- .Fields("pursortcode") = Trim(LrText(10).Tag) '采购分类
- .Fields("invsortcode") = Trim(LrText(11).Tag) '库存分类
- If Trim(LrText(12).Tag) <> "" Then '默认分配仓库
- .Fields("whcode") = Trim(LrText(12).Tag)
- Else
- .Fields("whcode") = Null
- End If
- .Fields("cess") = Val(LrText(13).Text) '税率
- .Fields("caizhi") = Trim(LrText(14).Text) '材质
- .Fields("planprice") = Val(LrText(17).Text) '计划价
- .Fields("consultcost") = Val(LrText(18).Text) '参考成本
- .Fields("consultprice") = Val(LrText(19).Text) '参考售价
- .Fields("lowprice") = Val(LrText(20).Text) '最低售价
- .Fields("newincost") = Val(LrText(21).Text) '最新入库成本
- .Fields("newoutcost") = Val(LrText(22).Text) '最新出库成本
- .Fields("highprice") = Val(LrText(23)) '最高价格
- .Fields("highstorage") = Val(LrText(24)) '最高库存
- .Fields("lowstorage") = Val(LrText(25)) '最低库存
- .Fields("safequan") = Val(LrText(26)) '安全库存
- .Fields("overpurstandard") = Val(LrText(27)) '积压标准
- .Fields("advcourse") = Val(LrText(34).Text) '提前期
- .Fields("batch") = Val(LrText(35).Text) '经济批量
- .Fields("techwarcode") = Trim(LrText(36).Text) '工艺路线代码
- .Fields("checktype") = Val(LrText(37).Text) '检验方式
- .Fields("unitweight") = Val(LrText(38).Text) '单位重量
- .Fields("unitbulk") = Val(LrText(39).Text) '单位体积
- .Fields("barcode") = Trim(LrText(40).Text) '条形码
- .Fields("lowlevel") = Trim(LrText(41).Text) '低位码
- .Fields("partno") = Trim(LrText(42).Text) '零件号
- .Fields("drawingno") = Trim(LrText(43)) '图号
- .Fields("batchmeas") = Trim(Lrcomb(0).Text) '批量方法
- .Fields("abcsort") = Trim(Lrcomb(1).Text) 'abc分类
- .Fields("propertyid") = Left(Trim(Lrcomb(2).Text), 1) '制造采购拖外
- .Fields("issale") = Lrcheck(0).Value '销售
- .Fields("ispurchase") = Lrcheck(1).Value '外购
- .Fields("isproduce") = Lrcheck(2).Value '自制
- .Fields("isuse") = Lrcheck(3).Value '生产耗用
- .Fields("ischarge") = Lrcheck(4).Value '劳务费用
- .Fields("issubmit") = Lrcheck(5).Value '委托加工
- .Fields("isbzqgl") = Lrcheck(6).Value '保质期
- .Fields("ispcgl") = Lrcheck(7).Value '批次管理
- .Fields("isfew") = Lrcheck(8).Value '亏吨
- .Fields("ischeck") = Lrcheck(9).Value '检验
- .Fields("isbpbj") = Lrcheck(10).Value '备品备件
- .Fields("stopflag") = Lrcheck(11).Value '停用标志
- .Update
- Cw_DataEnvi.DataConnect.CommitTrans
- '将记录加入网格
- Sqlstr = "SELECT * FROM Gy_V_material WHERE MNumber= '" + Trim(LrText(0).Text) + "'"
- Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
- With CzxsGrid
- .AddItem ""
- .RowHeight(.Rows - 1) = Sjhgd
- .Select .Rows - 1, Qslz
- Call Jltcwg(Cxnrrec, .Rows - 1)
- End With
- Tsxx = "保存完毕!"
- Call Xtxxts(Tsxx, 0, 4)
- Call Cshlrxx(1)
- LrText(0).SetFocus
- '将网格按编码排序
- With CzxsGrid
- .Col = Sydz("001", GridStr(), Szzls)
- CzxsGrid.Sort = flexSortStringAscending
- End With
- '<<]
- Else '否则为修改记录
- If .State = 1 Then .Close
- .Open "SELECT * FROM Gy_material WHERE MName= '" + Trim(LrText(1).Text) + "' and model='" & Trim(LrText(2)) & "' and caizhi='" & Trim(LrText(14)) & "' and mnumber<>'" & Trim(LrText(0)) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
- If Not .EOF Then
- Tsxx = "物料名称+规格型号+材质不能重复!"
- Call Xtxxts(Tsxx, 0, 1)
- LrText(1).SetFocus
- Bclrsj = False
- Exit Function
- End If
- On Error GoTo Swcwcl
- Cw_DataEnvi.DataConnect.BeginTrans
- If .State = 1 Then .Close
- .Open "SELECT * FROM Gy_material WHERE MNumber= '" + Trim(LrText(0).Text) + "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
- If Not .EOF Then
- .Fields("MName") = Trim(LrText(1).Text) '物料名称
- .Fields("model") = Trim(LrText(2)) '规格
- .Fields("primaryunit") = Trim(LrText(3).Tag) '主计量单位编码
- .Fields("primaryunitname") = Trim(LrText(3)) '主计量单位名称
- .Fields("purunit") = Trim(LrText(4).Tag) '采购计量单位
- .Fields("purunitname") = Trim(LrText(4).Text)
- .Fields("purinvcon1") = Val(LrText(5)) '采购换算率
- .Fields("purinvcon2") = Val(LrText(6))
- .Fields("saleunit") = Trim(LrText(7).Tag) '销售计量单位
- .Fields("saleunitname") = Trim(LrText(7))
- .Fields("saleinvcon1") = Trim(LrText(8).Text) '销售换算率
- .Fields("saleinvcon2") = Trim(LrText(9).Text)
- .Fields("pursortcode") = Trim(LrText(10).Tag) '采购分类
- .Fields("invsortcode") = Trim(LrText(11).Tag) '库存分类
- If Trim(LrText(12).Tag) <> "" Then '默认分配仓库
- .Fields("whcode") = Trim(LrText(12).Tag)
- Else
- .Fields("whcode") = Null
- End If
- .Fields("cess") = Val(LrText(13).Text) '税率
- .Fields("caizhi") = Trim(LrText(14).Text) '材质
- .Fields("planprice") = Val(LrText(17).Text) '计划价
- .Fields("consultcost") = Val(LrText(18).Text) '参考成本
- .Fields("consultprice") = Val(LrText(19).Text) '参考售价
- .Fields("lowprice") = Val(LrText(20).Text) '最低售价
- .Fields("newincost") = Val(LrText(21).Text) '最新入库成本
- .Fields("newoutcost") = Val(LrText(22).Text) '最新出库成本
- .Fields("highprice") = Val(LrText(23)) '最高价格
- .Fields("highstorage") = Val(LrText(24)) '最高库存
- .Fields("lowstorage") = Val(LrText(25)) '最低库存
- .Fields("safequan") = Val(LrText(26)) '安全库存
- .Fields("overpurstandard") = Val(LrText(27)) '积压标准
- .Fields("advcourse") = Val(LrText(34).Text) '提前期
- .Fields("batch") = Val(LrText(35).Text) '经济批量
- .Fields("techwarcode") = Trim(LrText(36).Text) '工艺路线代码
- .Fields("checktype") = Val(LrText(37).Text) '检验方式
- .Fields("unitweight") = Val(LrText(38).Text) '单位重量
- .Fields("unitbulk") = Val(LrText(39).Text) '单位体积
- .Fields("barcode") = Trim(LrText(40).Text) '条形码
- .Fields("lowlevel") = Trim(LrText(41).Text) '低位码
- .Fields("partno") = Trim(LrText(42).Text) '零件号
- .Fields("drawingno") = Trim(LrText(43)) '图号
- .Fields("batchmeas") = Trim(Lrcomb(0).Text) '批量方法
- .Fields("abcsort") = Trim(Lrcomb(1).Text) 'abc分类
- .Fields("propertyid") = Left(Trim(Lrcomb(2).Text), 1) '制造采购拖外
- .Fields("issale") = Lrcheck(0).Value '销售
- .Fields("ispurchase") = Lrcheck(1).Value '外购
- .Fields("isproduce") = Lrcheck(2).Value '自制
- .Fields("isuse") = Lrcheck(3).Value '生产耗用
- .Fields("ischarge") = Lrcheck(4).Value '劳务费用
- .Fields("issubmit") = Lrcheck(5).Value '委托加工
- .Fields("isbzqgl") = Lrcheck(6).Value '保质期
- .Fields("ispcgl") = Lrcheck(7).Value '批次管理
- .Fields("isfew") = Lrcheck(8).Value '亏吨
- .Fields("ischeck") = Lrcheck(9).Value '检验
- .Fields("isbpbj") = Lrcheck(10).Value '备品备件
- .Fields("stopflag") = Lrcheck(11).Value '停用标志
- .Update
- End If
- Cw_DataEnvi.DataConnect.CommitTrans
- '刷新当前网格
- Sqlstr = "SELECT * FROM Gy_V_material WHERE MNumber= '" + Trim(LrText(0).Text) + "'"
- Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
- With CzxsGrid
- Call Jltcwg(Cxnrrec, .Row)
- End With
- End If
- '保存记录成功,函数返回真值
- Bclrsj = True
- Exit Function
- End With
- Swcwcl:
- Cw_DataEnvi.DataConnect.RollbackTrans
- Set Rec_CodeSet = Nothing
- If Err.Number = -2147217887 Then
- Tsxx = "录入数据超出允许范围!"
- Call Xtxxts(Tsxx, 0, 1)
- Exit Function
- Else
- Tsxx = "存盘过程中出现错误,程序自动恢复保存前状态!"
- Call Xtxxts(Tsxx, 0, 1)
- Exit Function
- End If
- End Function
- Private Function Cshlrxx(lrztxx As Integer) As Boolean '初始化录入字段信息
- Dim RecTemp As New ADODB.Recordset
- TextChangeLock = True '关闭文本框Chang事件
- Call mmkn
- lblMsg.Visible = False
- If lrztxx = 1 Then
- SSTab1.Tab = 0
- Call EditEnable(True)
- '增加新记录时将文本框清空
- For jsqte = 0 To Max_Text_Index
- If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
- LrText(jsqte).Text = ""
- LrText(jsqte).Tag = ""
- End If
- TextValiJudgeLock(jsqte) = True
- Next jsqte
- '[>>
- For jsqte = 0 To 10
- Lrcheck(0).Value = 0
- Next
- Lrcomb(0).ListIndex = 0
- Lrcomb(1).ListIndex = 0
- Lrcomb(2).ListIndex = 0
- LrText(5) = 1
- LrText(6) = 1
- LrText(8) = 1
- LrText(9) = 1
- LrText(13) = 17
- '在此处可添加新增记录时初始化设置
- '<<]
- Else
- '修改记录时根据记录关键字(编码)从数据表中读入其他字段内容
- With RecTemp
- Sqlstr = "SELECT * FROM Gy_V_material Where MNumber='" & Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))) & "'"
- Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
- '记录如存在则读入其内容,否则提示记录已被其他人删除
- If Not RecTemp.EOF Then
- Call ShowData(RecTemp)
- '****************************************************已使用物料只能修改部分属性
- '如果删除产生异常,说明记录已被引用
- On Error GoTo ErrMsg
- Cw_DataEnvi.DataConnect.BeginTrans
- Cw_DataEnvi.DataConnect.Execute "delete Gy_material where MNumber = '" + Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))) + "'"
- Cw_DataEnvi.DataConnect.RollbackTrans
- Call EditEnable(True)
- Cshlrxx = True
- TextChangeLock = False
- Exit Function
- ErrMsg:
- Cw_DataEnvi.DataConnect.RollbackTrans
- If Err.Number = -2147217873 Then '(-2147217873 为SQL Server 2000通过建立外键产生的错误号)
- Call EditEnable(False)
- lblMsg.Visible = True
- TextChangeLock = False
- Cshlrxx = True
- Exit Function
- Else
- Tsxx = "出现未知情况,请重新进入系统再试!"
- Call Xtxxts(Tsxx, 0, 4)
- Call Cancel
- TextChangeLock = False
- Exit Function
- End If
- '***************************************************
- Else
- Tsxx = "该记录已经被其他人删除,请刷新当前数据!"
- Call Xtxxts(Tsxx, 0, 4)
- Call Cancel
- TextChangeLock = False
- Exit Function
- End If
- End With
- End If
- Cshlrxx = True
- TextChangeLock = False
- End Function
- Private Sub EditEnable(bln_T As Boolean) '记录已经使用,以下字段不能修改
- LrText(3).Enabled = bln_T
- Ydcommand1(3).Enabled = bln_T
- LrText(4).Enabled = bln_T
- Ydcommand1(4).Enabled = bln_T
- LrText(5).Enabled = bln_T
- LrText(6).Enabled = bln_T
- LrText(8).Enabled = bln_T
- LrText(9).Enabled = bln_T
- LrText(7).Enabled = bln_T
- Ydcommand1(7).Enabled = bln_T
- LrText(17).Enabled = bln_T
- Lrcheck(0).Enabled = bln_T
- Lrcheck(1).Enabled = bln_T
- Lrcheck(2).Enabled = bln_T
- Lrcheck(3).Enabled = bln_T
- Lrcheck(4).Enabled = bln_T
- Lrcheck(5).Enabled = bln_T
- Lrcheck(6).Enabled = bln_T
- Lrcheck(7).Enabled = bln_T
- End Sub
- Private Sub ShowData(rs As ADODB.Recordset)
- With rs
- LrText(0).Text = Trim(.Fields("MNumber") & "") '物料编码
- LrText(1).Text = Trim(.Fields("MName") & "") '物料名称
- LrText(2) = Trim(.Fields("model") & "") '规格型号
- LrText(3).Tag = Trim(.Fields("primaryunit") & "") '主计量单位
- LrText(3) = Trim(.Fields("primaryunitname") & "")
- LrText(4).Tag = Trim(.Fields("purunit") & "") '采购计量单位
- LrText(4) = Trim(.Fields("purunitname") & "")
- LrText(5) = Trim(.Fields("purinvcon1") & "") '采购换算率分子
- LrText(6) = Trim(.Fields("purinvcon2") & "") '采购换算率分母
- LrText(7).Tag = Trim(.Fields("saleunit") & "") '销售计量单位
- LrText(7) = Trim(.Fields("saleunitname") & "")
- LrText(8) = Trim(.Fields("saleinvcon1") & "") '销售换算率分子
- LrText(9) = Trim(.Fields("saleinvcon2") & "") '销售换算率分母
- LrText(10).Tag = Trim(.Fields("pursortcode") & "") '所属采购分类
- LrText(10) = Trim(.Fields("pursortname") & "")
- LrText(11).Tag = Trim(.Fields("invsortcode") & "") '所属库存分类
- LrText(11) = Trim(.Fields("invsortname") & "")
- LrText(12).Tag = Trim(.Fields("whcode") & "") '默认分配仓库
- LrText(12) = Trim(.Fields("whname") & "")
- LrText(13) = Trim(.Fields("cess") & "") '税率
- LrText(14) = Trim(.Fields("caizhi") & "") '材质
- LrText(15) = Trim(.Fields("sellaccname") & "") '销售收入科目
- LrText(16) = Trim(.Fields("selltaxaccname") & "") '增值税科目
- LrText(17) = Val(.Fields("planprice") & "") '计划价
- LrText(18) = Val(.Fields("consultcost") & "") '参考成本
- LrText(19) = Val(.Fields("consultprice") & "") '参考售价
- LrText(20) = Val(.Fields("lowprice") & "") '最低售价
- LrText(21) = Val(.Fields("newincost") & "") '最新入库成本
- LrText(22) = Val(.Fields("newoutcost") & "") '最新出库成本
- LrText(23) = Val(.Fields("highprice") & "") '最高价格
- LrText(24) = Val(.Fields("highstorage")) '最高库存
- LrText(25) = Val(.Fields("lowstorage") & "") '最低库存
- LrText(26) = Val(.Fields("safequan") & "") '安全库存
- LrText(27) = Val(.Fields("overpurstandard") & "") '积压标准
- LrText(28) = Val(.Fields("colligatestorage") & "") '综合库存量
- LrText(29) = Val(.Fields("nowstorage") & "") '现有库存量
- LrText(30) = Val(.Fields("allocatestorage") & "") '已分配库存量
- LrText(31) = Val(.Fields("usestorage") & "") '可用库存
- LrText(32) = Val(.Fields("speakquan") & "") '在订量
- LrText(33) = Val(.Fields("waitaccpetquan") & "") '待验量
- LrText(34) = Trim(.Fields("advcourse") & "") '提前期
- LrText(35) = Trim(.Fields("batch") & "") '经济批量
- LrText(36) = Trim(.Fields("techwarcode") & "") '工艺路线代码
- LrText(37) = Trim(.Fields("checktype")) '检验方式
- LrText(38) = Trim(.Fields("unitweight")) '单位重量
- LrText(39) = Trim(.Fields("unitbulk")) '单位体积
- LrText(40) = Trim(.Fields("barcode")) '条形码
- LrText(41) = Trim(.Fields("lowlevel") & "") '低位吗
- LrText(42) = Trim(.Fields("partno") & "") '零件号
- LrText(43) = Trim(.Fields("drawingno") & "") '图号
- LrText(44) = Trim(.Fields("puraccname") & "") '原材料科目
- LrText(45) = Trim(.Fields("purtaxaccname") & "") '进项增值税科目
- If .Fields("issale") Then '销售
- Lrcheck(0).Value = 1
- Else
- Lrcheck(0).Value = 0
- End If
- If .Fields("ispurchase") Then '外购
- Lrcheck(1).Value = 1
- Else
- Lrcheck(1).Value = 0
- End If
- If .Fields("isproduce") Then '自制
- Lrcheck(2).Value = 1
- Else
- Lrcheck(2).Value = 0
- End If
- If .Fields("isuse") Then '生产耗用
- Lrcheck(3).Value = 1
- Else
- Lrcheck(3).Value = 0
- End If
- If .Fields("ischarge") Then '劳务费用
- Lrcheck(4).Value = 1
- Else
- Lrcheck(4).Value = 0
- End If
- If .Fields("issubmit") Then '委托加工
- Lrcheck(5).Value = 1
- Else
- Lrcheck(5).Value = 0
- End If
- If .Fields("isbzqgl") Then '保质期
- Lrcheck(6).Value = 1
- Else
- Lrcheck(6).Value = 0
- End If
- If .Fields("ispcgl") Then '批次
- Lrcheck(7).Value = 1
- Else
- Lrcheck(7).Value = 0
- End If
- If .Fields("isfew") Then '亏吨
- Lrcheck(8).Value = 1
- Else
- Lrcheck(8).Value = 0
- End If
- If .Fields("ischeck") Then '检验
- Lrcheck(9).Value = 1
- Else
- Lrcheck(9).Value = 0
- End If
- If .Fields("isbpbj") Then '备品备件
- Lrcheck(10).Value = 1
- Else
- Lrcheck(10).Value = 0
- End If
- If .Fields("stopflag") Then '停用标志
- Lrcheck(11).Value = 1
- Else
- Lrcheck(11).Value = 0
- End If
- If Trim(.Fields("batchmeas") & "") <> "" Then '批量方法
- Lrcomb(0).Text = Trim(.Fields("batchmeas"))
- Else
- Lrcomb(0).ListIndex = 0
- End If
- If Trim(.Fields("abcsort") & "") <> "" Then 'abc分类
- Lrcomb(1).Text = Trim(.Fields("abcsort"))
- Else
- Lrcomb(1).ListIndex = 0
- End If
- If Trim(.Fields("propertyid") & "") = "P" Then '制造采购拖外
- Lrcomb(2).ListIndex = 1
- ElseIf Trim(.Fields("propertyid") & "") = "M" Then
- Lrcomb(2).ListIndex = 0
- ElseIf Trim(.Fields("propertyid") & "") = "C" Then
- Lrcomb(2).ListIndex = 2
- Else
- Lrcomb(2).ListIndex = 0
- End If
- End With
- End Sub
- Private Sub Scdqjl() '删 除 当 前 记 录
- Dim Yhanswer As Integer
- '判断用户是否有此功能执行权限,如有则写上机日志(进入)
- If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
- Exit Sub
- End If
- '非数据行不能删除
- If CzxsGrid.Row < CzxsGrid.FixedRows Then
- Exit Sub
- End If
- '用户确认是否删除记录
- Tsxx = "请确认是否删除当前记录?"
- Yhanswer = Xtxxts(Tsxx, 2, 2)
- If Yhanswer = 2 Then
- Exit Sub
- End If
- On Error GoTo Cwcl
- Cw_DataEnvi.DataConnect.BeginTrans
- '[>>以下需自定义部分
- Cw_DataEnvi.DataConnect.Execute "delete Gy_material where MNumber = '" + Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))) + "'"
- '以上为自定义部分<<]
- Cw_DataEnvi.DataConnect.CommitTrans
- CzxsGrid.RemoveItem CzxsGrid.Row
- Exit Sub
- Cwcl:
- Cw_DataEnvi.DataConnect.RollbackTrans
- If Err.Number = -2147217873 Then '(-2147217873 为SQL Server 2000通过建立外键产生的错误号)
- Tsxx = "此物料已经被使用,不能删除!"
- Call Xtxxts(Tsxx, 0, 1)
- Exit Sub
- Else
- Tsxx = "出现未知情况,此物料不能被删除!"
- Call Xtxxts(Tsxx, 0, 1)
- Exit Sub
- End If
- End Sub
- '*******************以下区域为编写自定义过程区域**********************
- '*******************以上区域为编写自定义过程区域**********************
- '******************以下为基本处理程序(固定不变)************************'
- Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) '支持热键操作
- If Shift = 2 Then
- Select Case UCase(Chr(KeyCode))
- Case "P" 'Ctrl+P 打印
- If SzToolbar.Buttons("dy").Visible And SzToolbar.Buttons("dy").Enabled Then
- Call bbyl(False)
- End If
- Case "A" 'Ctrl+A 增加
- '判断用户是否有此功能执行权限,如有则写上机日志(进入)
- If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
- Exit Sub
- End If
- If SzToolbar.Buttons("zj").Visible And SzToolbar.Buttons("zj").Enabled Then
- Call Toolbjzt
- Lrzt = 1
- Call Cshlrxx(Lrzt)
- LrText(0).Enabled = True
- LrText(0).SetFocus
- End If
- Case "D" 'Ctrl+D 删除
- If SzToolbar.Buttons("sc").Visible And SzToolbar.Buttons("sc").Enabled Then
- Call Scdqjl
- End If
- End Select
- End If
- End Sub
- Private Sub LrCheck_Click(Index As Integer)
- If Index = 6 And Lrcheck(6).Value = 1 Then
- Lrcheck(7).Value = 1
- End If
- If Index = 7 And Lrcheck(7).Value = 0 Then
- Lrcheck(6).Value = 0
- End If
- End Sub
- Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
- Select Case Button.Key
- Case "ymsz" '页面设置
- Dyymctbl.Show 1
- Case "yl" '预 览
- Call bbyl(True)
- Case "dy" '打 印
- Call bbyl(False)
- Case "zj" '增 加
- '判断用户是否有此功能执行权限,如有则写上机日志(进入)
- If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
- Exit Sub
- End If
- Call Toolbjzt
- Lrzt = 1
- Call Cshlrxx(Lrzt)
- LrText(0).Enabled = True
- LrText(0).SetFocus
- Case "xg" '修 改
- Call Xgdqjl
- Case "sc" '删 除
- Call Scdqjl '查询
- Case "cx"
- Gy_MaterialQuery.Show 1
- Case "sx" '刷 新
- Call Cxnrtcwg
- Case "bz" '帮 助
- Call F1bz
- Case "fh" '退 出
- Unload Me
- End Select
- End Sub
- Private Sub CzxsGrid_DblClick() '修改当前编码记录
- Call Xgdqjl
- End Sub
- Private Sub Xgdqjl() '修改当前编码记录
- Dim bln_tmp As Boolean
- '判断用户是否有此功能执行权限,如有则写上机日志(进入)
- If Not Security_Log(Str_RightEdit, Xtczybm, 1, True, False) Then
- BcCommand.Enabled = False
- End If
- If CzxsGrid.Row < CzxsGrid.FixedRows Then
- Exit Sub
- End If
- Lrzt = 2
- bln_tmp = Cshlrxx(Lrzt)
- Call Toolbjzt
- If bln_tmp Then
- LrText(1).SetFocus
- LrText(0).Enabled = False
- End If
- End Sub
- Private Sub Toolbjzt() 'Toolbar状态(编辑状态)
- StTab.TabEnabled(1) = True
- StTab.Tab = 1
- Frame1.Enabled = True
- StTab.TabEnabled(0) = False
- CzxsGrid.Enabled = False
- With SzToolbar
- .Buttons("ymsz").Enabled = False
- .Buttons("dy").Enabled = False
- .Buttons("yl").Enabled = False
- .Buttons("zj").Enabled = False
- .Buttons("xg").Enabled = False
- .Buttons("sc").Enabled = False
- .Buttons("sx").Enabled = False
- .Buttons("cx").Enabled = False
- End With
- End Sub
- Private Sub Toolfbjzt() 'Toolbar状态(非编辑状态)
- StTab.TabEnabled(0) = True
- StTab.Tab = 0
- CzxsGrid.Enabled = True
- Frame1.Enabled = False
- StTab.TabEnabled(1) = False
- Lrzt = 0
- With SzToolbar
- .Buttons("ymsz").Enabled = True
- .Buttons("dy").Enabled = True
- .Buttons("yl").Enabled = True
- .Buttons("zj").Enabled = True
- .Buttons("xg").Enabled = True
- .Buttons("sc").Enabled = True
- .Buttons("sx").Enabled = True
- .Buttons("cx").Enabled = True
- End With
- End Sub
- Private Sub BcCommand_Click() '保 存
- If Not Bclrsj Then
- Exit Sub
- End If
- If Lrzt = 2 Then
- Call Toolfbjzt
- End If
- End Sub
- Private Sub QxCommand_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) '取消
- '避免执行Click程序
- Bln_Cancel = True
- Call Cancel
- End Sub
- Private Sub QxCommand_Click() '取消
- If Bln_Cancel Then
- Bln_Cancel = False
- Exit Sub
- End If
- Call Cancel
- End Sub
- Private Sub Cancel() '取消
- '文本框加锁
- For jsqte = 0 To Max_Text_Index
- TextValiJudgeLock(jsqte) = True
- Next jsqte
- Call Toolfbjzt
- End Sub
- Private Sub CzxsGrid_BeforeMoveColumn(ByVal Col As Long, Position As Long) '网格列发生移动时自动交换网格索引信息
- FnBln_RefreshArray Col, Position, GridStr(), GridInf()
- End Sub
- Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button) '表格格式设置(通用)
- Select Case Button.Key
- Case "bcgs" '保存表格格式
- Call Bcwggs(CzxsGrid, GridCode, GridStr())
- Case "hfmrgs" '恢复默认格式
- Call Hfmrgs(CzxsGrid, GridCode, GridStr())
- Case "szxsxm" '设置显示项目
- Call Szxsxm(CzxsGrid, GridCode)
- End Select
- End Sub
- Private Sub bbyl(bbylte As Boolean) '报表打印预览
- Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
- Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
- Bbxbtgs = 1 '报 表 小 标 题 行 数
- Bbbwhgs = 0 '报 表 表 尾 行 数
- ReDim Bbxbt(1 To Bbxbtgs)
- ReDim bbxbtzzxs(1 To Bbxbtgs)
- If Bbbwhgs <> 0 Then
- ReDim Bbbwh(1 To Bbbwhgs)
- ReDim Bbbwhzzxs(1 To Bbbwhgs)
- End If
- Bbzbt = ReportTitle
- Bbxbt(1) = " "
- bbxbtzzxs(1) = 0 '报表行组织形式(0-居左 1-居中 2-居右)
- Call Scyxsjb(CzxsGrid) '生成报表数据
- Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
- If Not bbylte Then
- Unload DY_Tybbyldy
- End If
- End Sub
- '************以下为文本框录入处理程序(固定不变部分)*************'
- Private Sub Wbklrwbcl(Index As Integer) '文本框录入事后处理程序
- '以下为依据实际情况自定义部分[
- '在此填写文本框录入事后处理程序
- ']以上为依据实际情况自定义部分
- End Sub
- Private Sub LrText_Change(Index As Integer)
- '屏蔽程序改变控制
- If TextChangeLock Then
- Exit Sub
- End If
- TextValiJudgeLock(Index) = False '打开有效性判断锁
- '限制字段录入长度
- TextChangeLock = True '加锁(防止执行Lrtext_Change)
- Call TextChangeLimit(LrText(Index), Textint(Index, 1)) '去掉无效字符
- Select Case Textint(Index, 1)
- Case 8, 11 '金额型
- Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
- Case 9, 12 '数量型
- Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
- Case 10 '单价型
- Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
- Case Else '其他小数类型控制
- If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
- Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
- End If
- End Select
- '[<<
- If Index = 3 Then
- LrText(4) = LrText(3)
- LrText(4).Tag = LrText(3).Tag
- LrText(7) = LrText(3)
- LrText(7).Tag = LrText(3).Tag
- End If
- '>>]
- TextChangeLock = False '解锁
- End Sub
- Private Sub LrText_GotFocus(Index As Integer) '文本框得到焦点,显示相应信息
- Call TextShow(Index)
- CurTextIndex = Index
- LrText(Index).SelStart = Len(LrText(Index))
- End Sub
- Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer) '字段按F2键提供帮助
- Select Case KeyCode
- Case vbKeyF2
- Call Text_Help(Index)
- End Select
- End Sub
- Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer) '文本框录入事中控制
- Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
- End Sub
- Private Sub LrText_LostFocus(Index As Integer) '文本框失去焦点
- Dim RecTemp As New ADODB.Recordset
- '显示相应信息但不能进行有效性判断
- '[>>
- If Index = 0 And Lrzt = 1 Then '增加时,用户输入物料编码,显示此物料编码对应的记录
- Sqlstr = "SELECT * FROM Gy_V_material Where MNumber='" & Trim(LrText(0)) & "'"
- Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
- '记录如存在则读入其内容,否则提示记录已被其他人删除
- If Not RecTemp.EOF Then
- Call ShowData(RecTemp)
- End If
- End If
- '<<]
- End Sub
- Private Sub Timer1_Timer()
- Dim Sqlstr As String
- Timer1.Enabled = False
- ' Xt_Wait.Show
- ' Xt_Wait.Refresh
- '加快显示速度
- CzxsGrid.Redraw = False
- '生成查询结果
- Dim Str_QueryCondi As String
- Dim jsqte As Integer
- With Gy_MaterialQuery
- Str_QueryCondi = " where 1=1 "
- For jsqte = 0 To 5
- Select Case jsqte
- Case 0 '物料编码
- If Trim(.LrText(0).Text) <> "" Then
- Str_QueryCondi = Str_QueryCondi & " and MNumber like'%" & Trim(.LrText(0)) & "%'"
- End If
- Case 1 '物料名称
- If Trim(.LrText(1).Text) <> "" Then
- Str_QueryCondi = Str_QueryCondi & " and mname like'%" & Trim(.LrText(1)) & "%'"
- End If
- Case 2 '规格型号
- If Trim(.LrText(2).Text) <> "" Then
- Str_QueryCondi = Str_QueryCondi & " and model like'%" & Trim(.LrText(2)) & "%'"
- End If
- Case 3 '采购分类
- If Trim(.LrText(3).Text) <> "" Then
- Str_QueryCondi = Str_QueryCondi & " and pursortcode= '" & Trim(.LrText(3).Tag) & "'"
- End If
- Case 4 '库存分类
- If Trim(.LrText(4).Text) <> "" Then
- Str_QueryCondi = Str_QueryCondi & " and invsortcode= '" & Trim(.LrText(4).Tag) & "'"
- End If
- Case 5 '仓库分类
- If Trim(.LrText(5).Text) <> "" Then
- Str_QueryCondi = Str_QueryCondi & " and whcode= '" & Trim(.LrText(5).Tag) & "'"
- End If
- End Select
- Next
- If .Lrcomb(0).ListIndex = 1 Then
- Str_QueryCondi = Str_QueryCondi & " and stopflag=1 "
- ElseIf .Lrcomb(0).ListIndex = 2 Then
- Str_QueryCondi = Str_QueryCondi & " and stopflag=0 "
- End If
- If .Lrcomb(1).ListIndex > 0 Then
- Str_QueryCondi = Str_QueryCondi & " and abcsort='" & Trim(.Lrcomb(1).Text) & "'"
- End If
- '查询连接串
- Sqlstr = "SELECT * from Gy_v_material " & Str_QueryCondi & " order by MNumber"
- Call Cxnrtcwg(Sqlstr)
- End With
- CzxsGrid.Redraw = True
- '
- ' Xt_Wait.Hide
- End Sub
- Private Sub Tree_List_NodeClick(ByVal Node As MSComctlLib.Node)
- Dim sqlstringvalue As String
- sqlstringvalue = "SELECT * FROM Gy_V_material "
- If Tree_List.SelectedItem.Key = "r" Then
- Sqlstr = sqlstringvalue & " order by MNumber"
- Else
- Sqlstr = sqlstringvalue + " where invsortcode like '" & Trim(Mid(Tree_List.SelectedItem.Key, 2)) & "%'" & " order by MNumber"
- End If
- Call Cxnrtcwg(Sqlstr)
- End Sub
- Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single) '按钮提供帮助
- Call Text_Help(Index)
- End Sub
- Private Sub Text_Help(Index As Integer) '录入字段帮助
- If Not Textboolean(Index, 1) Then
- Exit Sub
- End If
- '调用帮助
- If Textint(Index, 2) <> 1 Then
- strHlpR = FunHlpR(Trim(Textstr(Index, 4)), "whcode", Trim(LrText(0).Tag))
- End If
- Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
- '根据设置选择显示编码和名称,并进行存储
- If Len(Xtfhcs) <> 0 Then
- If Textint(Index, 3) = 1 Then
- LrText(Index).Text = Xtfhcsfz
- LrText(Index).Tag = Xtfhcs
- Else
- LrText(Index).Text = Xtfhcs
- LrText(Index).Tag = Xtfhcsfz
- End If
- End If
- LrText(Index).SetFocus
- End Sub
- Private Sub TextShow(Index As Integer) '文本框得到焦点,显示相应信息
- '填写文本框得到焦点,进行相应信息处理程序
- End Sub
- Private Sub Wbkcsh() '录入文本框初始化
- Dim jsqte As Integer
- '最大录入文本框索引值
- Max_Text_Index = Textvar(1)
- ReDim TextValiJudgeLock(Max_Text_Index)
- For jsqte = 0 To Max_Text_Index
- If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
- If Textboolean(jsqte, 1) Then
- If jsqte <> 0 And Not Textboolean(jsqte, 3) Then
- Load Ydcommand1(jsqte)
- End If
- Ydcommand1(jsqte).Visible = True
- Ydcommand1(jsqte).Move LrText(jsqte).Left + LrText(jsqte).Width, LrText(jsqte).Top
- End If
- TextChangeLock = True
- LrText(jsqte).Text = ""
- LrText(jsqte).Tag = ""
- If Textint(jsqte, 5) <> 0 Then
- LrText(jsqte).MaxLength = Textint(jsqte, 5)
- End If
- TextChangeLock = False
- End If
- TextValiJudgeLock(jsqte) = True
- Next jsqte
- End Sub
- Private Function TextYxxpd(Index As Integer) As Boolean '文本框有效性判断
- Dim Sqlstr As String
- Dim Findrec As ADODB.Recordset
- '文本框内容未曾改变不进行有效性判断
- If TextValiJudgeLock(Index) Then
- TextYxxpd = True
- Exit Function
- End If
- '文本框内容为空认为有效,并清空其Tag值
- If Trim(LrText(Index)) = "" Then
- LrText(Index).Tag = ""
- Call Wbklrwbcl(Index)
- TextValiJudgeLock(Index) = True
- TextYxxpd = True
- Exit Function
- End If
- '可在此加入不做有效性判断的理由
- Select Case Textint(Index, 4)
- Case 1 '编码型
- Sqlstr = Trim(Textstr(Index, 5))
- Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
- Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
- If Findrec.EOF Then
- Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
- LrText(Index).SetFocus
- Exit Function
- Else
- Select Case Textint(Index, 3)
- Case 0
- If Len(Trim(Textstr(Index, 2))) <> 0 Then
- LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
- End If
- If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
- LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
- End If
- Case 1
- If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
- LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
- End If
- If Len(Trim(Textstr(Index, 2))) <> 0 Then
- LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
- End If
- End Select
- End If
- Case 2 '日期型
- If IsDate(LrText(Index).Text) Then
- LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
- If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
- LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
- End If
- Else
- Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
- Call Xtxxts(Tsxx, 0, 1)
- LrText(Index).SetFocus
- Exit Function
- End If
- Case 3 '其他类型
- End Select
- '如果有效则加锁,用户不改变内容则不再进行有效性判断
- TextValiJudgeLock(Index) = True
- '调用文本框事后处理程序
- Call Wbklrwbcl(Index)
- '有效性判断通过则返回True
- TextYxxpd = True
- End Function
- '[<<
- Private Sub Command1_Click()
- CzxsGrid.Row = CzxsGrid.FixedRows
- Call mmkn
- Lrzt = 2
- If Cshlrxx(Lrzt) Then
- LrText(1).SetFocus
- LrText(0).Enabled = False
- End If
- End Sub
- Private Sub Command2_Click()
- If CzxsGrid.Row = CzxsGrid.FixedRows Then
- Exit Sub
- Else
- CzxsGrid.Row = CzxsGrid.Row - 1
- End If
- Call mmkn
- Lrzt = 2
- If Cshlrxx(Lrzt) Then
- LrText(1).SetFocus
- LrText(0).Enabled = False
- End If
- End Sub
- Private Sub Command3_Click()
- If CzxsGrid.Row = CzxsGrid.Rows - 1 Then
- Exit Sub
- Else
- CzxsGrid.Row = CzxsGrid.Row + 1
- End If
- Call mmkn
- Lrzt = 2
- If Cshlrxx(Lrzt) Then
- LrText(1).SetFocus
- LrText(0).Enabled = False
- End If
- End Sub
- Private Sub Command4_Click()
- CzxsGrid.Row = CzxsGrid.Rows - 1
- Call mmkn
- Lrzt = 2
- If Cshlrxx(Lrzt) Then
- LrText(1).SetFocus
- LrText(0).Enabled = False
- End If
- End Sub
- Private Sub mmkn()
- If CzxsGrid.Rows = CzxsGrid.FixedRows Then
- Command1.Enabled = False '首张
- Command2.Enabled = False '上张
- Command3.Enabled = False '下张
- Command4.Enabled = False '末张
- ElseIf CzxsGrid.Rows - 1 = CzxsGrid.FixedRows Then
- Command1.Enabled = False '首张
- Command2.Enabled = False '上张
- Command3.Enabled = False '下张
- Command4.Enabled = False '末张
- ElseIf CzxsGrid.Row = CzxsGrid.Rows - 1 Then
- Command1.Enabled = True '首张
- Command2.Enabled = True '上张
- Command3.Enabled = False '下张
- Command4.Enabled = False '末张
- ElseIf CzxsGrid.Row = CzxsGrid.FixedRows Then
- Command1.Enabled = False '首张
- Command2.Enabled = False '上张
- Command3.Enabled = True '下张
- Command4.Enabled = True '末张
- ElseIf CzxsGrid.Row <> CzxsGrid.Rows - 1 And CzxsGrid.Row <> CzxsGrid.FixedRows Then
- Command1.Enabled = True '首张
- Command2.Enabled = True '上张
- Command3.Enabled = True '下张
- Command4.Enabled = True '末张
- End If
- End Sub
- '>>]
- Private Sub Tree_List_BeforeLabelEdit(Cancel As Integer)
- Cancel = 1
- End Sub
- Private Sub TreeListValue()
- Dim aDo_Sort As New Recordset
- Tree_List.Nodes.Clear
- Tree_List.Nodes.Add , 4, "T", "库存物料分类", "T"
- Set aDo_Sort = Cw_DataEnvi.DataConnect.Execute("select * from kf_invsort order by invsortcode")
- With aDo_Sort
- Do While Not .EOF
- If Trim("" & aDo_Sort!ParentCode) = "" Then
- Set nodX = Tree_List.Nodes.Add("T", 4, "T" & Trim(.Fields("invsortCode")), "(" & Trim(.Fields("invsortCode")) & ")" & Trim(.Fields("invsortName")), "C")
- Else
- Set nodX = Tree_List.Nodes.Add("T" & Trim(!ParentCode), 4, "T" & Trim(.Fields("invsortCode")), "(" & Trim(.Fields("invsortCode")) & ")" & Trim(.Fields("invsortName")), "C")
- End If
- nodX.EnsureVisible
- .MoveNext
- Loop
- End With
- End Sub
- Private Sub imgSplitter_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
- With imgSplitter
- picSplitter.Move .Left, .Top, .Width 2, .Height - 20
- End With
- picSplitter.Visible = True
- mbMoving = True
- End Sub
- Private Sub imgSplitter_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
- Dim sglPos As Single
- If mbMoving Then
- sglPos = x + imgSplitter.Left
- If sglPos < sglSplitLimit Then
- picSplitter.Left = sglSplitLimit
- ElseIf sglPos > Me.Width - sglSplitLimit Then
- picSplitter.Left = Me.Width - sglSplitLimit
- Else
- picSplitter.Left = sglPos
- End If
- End If
- End Sub
- Private Sub imgSplitter_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
- SizeControls picSplitter.Left
- picSplitter.Visible = False
- mbMoving = False
- End Sub
- Sub SizeControls(x As Single)
- Dim St_tab As Integer
- On Error Resume Next
- '设置 Width 属性
- If x < 2000 Then x = 2000
- If x > (Me.Width - 5000) Then x = Me.Width - 5000
- Tree_List.Width = x - 100
- imgSplitter.Left = x
- StTab.Left = x + 40
- StTab.Width = Me.Width - (Tree_List.Width + 300)
- StTab.Top = Tree_List.Top
- St_tab = StTab.Tab
- StTab.Tab = 0
- CzxsGrid.Width = StTab.Width - CzxsGrid.Left * 2
- Frame1.Width = StTab.Width - CzxsGrid.Left * 2
- StTab.Tab = St_tab
- imgSplitter.Top = Tree_List.Top
- imgSplitter.Height = Tree_List.Height
- End Sub