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

企业管理

开发平台:

Visual Basic

  1.       Style           =   1
  2.       ImageList       =   "ImageList1"
  3.       _Version        =   393216
  4.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  5.          NumButtons      =   13
  6.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  7.             Caption         =   "设置"
  8.             Key             =   "ymsz"
  9.             ImageKey        =   "sz"
  10.          EndProperty
  11.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  12.             Caption         =   "打印"
  13.             Key             =   "dy"
  14.             Object.ToolTipText     =   "点击或按Ctrl+P打印表格"
  15.             ImageKey        =   "dy"
  16.          EndProperty
  17.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  18.             Caption         =   "预览"
  19.             Key             =   "yl"
  20.             ImageKey        =   "yl"
  21.          EndProperty
  22.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  23.             Style           =   3
  24.          EndProperty
  25.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  26.             Caption         =   "增加"
  27.             Key             =   "zj"
  28.             Object.ToolTipText     =   "点击或按Ctrl+A增加记录"
  29.             ImageKey        =   "xz"
  30.          EndProperty
  31.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  32.             Caption         =   "修改"
  33.             Key             =   "xg"
  34.             ImageKey        =   "xg"
  35.          EndProperty
  36.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  37.             Caption         =   "删除"
  38.             Key             =   "sc"
  39.             Object.ToolTipText     =   "点击或按Ctrl+D删除当前记录"
  40.             ImageKey        =   "sc"
  41.          EndProperty
  42.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  43.             Style           =   3
  44.          EndProperty
  45.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  46.             Caption         =   "查询"
  47.             Key             =   "cx"
  48.             ImageIndex      =   24
  49.          EndProperty
  50.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  51.             Caption         =   "刷新"
  52.             Key             =   "sx"
  53.             ImageKey        =   "sx"
  54.          EndProperty
  55.          BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  56.             Style           =   3
  57.          EndProperty
  58.          BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  59.             Caption         =   "帮助"
  60.             Key             =   "bz"
  61.             ImageKey        =   "bz"
  62.          EndProperty
  63.          BeginProperty Button13 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  64.             Caption         =   "退出"
  65.             Key             =   "fh"
  66.             ImageKey        =   "tc"
  67.          EndProperty
  68.       EndProperty
  69.       BorderStyle     =   1
  70.       Begin MSComctlLib.Toolbar GsToolbar 
  71.          Height          =   525
  72.          Left            =   9180
  73.          TabIndex        =   134
  74.          Top             =   0
  75.          Width           =   2475
  76.          _ExtentX        =   4366
  77.          _ExtentY        =   926
  78.          ButtonWidth     =   1455
  79.          ButtonHeight    =   926
  80.          AllowCustomize  =   0   'False
  81.          Appearance      =   1
  82.          Style           =   1
  83.          ImageList       =   "ImageList1"
  84.          _Version        =   393216
  85.          BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  86.             NumButtons      =   3
  87.             BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  88.                Caption         =   "保存格式"
  89.                Key             =   "bcgs"
  90.                ImageKey        =   "bcgs"
  91.             EndProperty
  92.             BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  93.                Caption         =   "默认列宽"
  94.                Key             =   "hfmrgs"
  95.                ImageKey        =   "mrlk"
  96.             EndProperty
  97.             BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  98.                Caption         =   "显示项目"
  99.                Key             =   "szxsxm"
  100.                ImageKey        =   "xsxm"
  101.             EndProperty
  102.          EndProperty
  103.       End
  104.    End
  105.    Begin MSComctlLib.TreeView Tree_List 
  106.       Height          =   6975
  107.       Left            =   30
  108.       TabIndex        =   132
  109.       Top             =   660
  110.       Width           =   2760
  111.       _ExtentX        =   4868
  112.       _ExtentY        =   12303
  113.       _Version        =   393217
  114.       Indentation     =   617
  115.       Style           =   7
  116.       ImageList       =   "ImageList2"
  117.       Appearance      =   1
  118.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  119.          Name            =   "宋体"
  120.          Size            =   9
  121.          Charset         =   134
  122.          Weight          =   400
  123.          Underline       =   0   'False
  124.          Italic          =   0   'False
  125.          Strikethrough   =   0   'False
  126.       EndProperty
  127.    End
  128.    Begin MSComctlLib.ImageList ImageList2 
  129.       Left            =   2340
  130.       Top             =   780
  131.       _ExtentX        =   1005
  132.       _ExtentY        =   1005
  133.       BackColor       =   -2147483643
  134.       ImageWidth      =   16
  135.       ImageHeight     =   16
  136.       MaskColor       =   12632256
  137.       _Version        =   393216
  138.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  139.          NumListImages   =   4
  140.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  141.             Picture         =   "公用_物料档案设置.frx":98A6
  142.             Key             =   "T"
  143.          EndProperty
  144.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  145.             Picture         =   "公用_物料档案设置.frx":A180
  146.             Key             =   "C"
  147.          EndProperty
  148.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  149.             Picture         =   "公用_物料档案设置.frx":AA5A
  150.             Key             =   "Cl"
  151.          EndProperty
  152.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  153.             Picture         =   "公用_物料档案设置.frx":BAAC
  154.             Key             =   "O"
  155.          EndProperty
  156.       EndProperty
  157.    End
  158.    Begin VB.Image imgSplitter 
  159.       Height          =   6885
  160.       Left            =   2775
  161.       MousePointer    =   9  'Size W E
  162.       Top             =   750
  163.       Width           =   90
  164.    End
  165.    Begin VB.Label TsLabel 
  166.       AutoSize        =   -1  'True
  167.       Caption         =   "计划价:"
  168.       Height          =   210
  169.       Index           =   35
  170.       Left            =   -60
  171.       TabIndex        =   110
  172.       Top             =   30
  173.       Width           =   555
  174.    End
  175. End
  176. Attribute VB_Name = "Gy_Material"
  177. Attribute VB_GlobalNameSpace = False
  178. Attribute VB_Creatable = False
  179. Attribute VB_PredeclaredId = True
  180. Attribute VB_Exposed = False
  181. '*******************************************************
  182. '*    模 块 名 称 :物料档案设置
  183. '*    功 能 描 述 :设置往来物料档案
  184. '*    程序员姓名  :徐强
  185. '*    最后修改人  :徐强
  186. '*    最后修改时间:2001/11/27
  187. '*    备        注:
  188. '*******************************************************
  189. Dim Rec_CodeSet As New ADODB.Recordset   '编码设置表
  190. Dim jdzygs As Integer                    '控件焦点转移个数
  191. Dim Lrzt As Integer                      '录入状态标志(0-非录入状态 1-增加 2-修改)
  192. Dim ReportTitle As String                '报表主标题
  193. Dim Str_RightEdit As String              '编辑(新增、修改、删除)权限索引
  194. Dim kf_invsort As New ADODB.Recordset
  195. Dim codescheme As New ADODB.Recordset
  196. Dim Sqlstr As String
  197. Const sglSplitLimit = 1000
  198. Dim mbMoving As Boolean
  199. '以下为固定使用变量(网格)
  200. Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
  201. Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
  202. Dim GridCode As String                   '显示网格网格代码
  203. Dim GridInf() As Variant                 '整个网格设置信息
  204. Dim Tsxx As String                       '系统提示信息
  205. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  206. Dim Sjhgd As Double                      '网格数据行高度
  207. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  208. Dim GridStr()  As String                 '网格列信息(字符型)
  209. Dim GridInt() As Integer                 '网格列信息(整型)
  210. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  211. '以下为固定使用变量(文本框)
  212. Dim Textvar() As Variant                 '存储变体型文本框信息
  213. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  214. Dim Textint() As Integer                 '存储整型文本框信息
  215. Dim Textstr() As String                  '存储字符型文本框信息
  216. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  217. Dim TextGroupCode As String              '文本框录入分组编码
  218. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  219. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  220. Dim CurTextIndex As Integer              '当前文本框索引值
  221. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  222. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  223. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  224.     jdzygs = 65
  225.     
  226.     Select Case KeyAscii
  227.         Case vbKeyReturn
  228.             If Kjjdzy(jdzygs) Then
  229.                 KeyAscii = 0
  230.             End If
  231.         Case 39           '屏蔽"'"
  232.             KeyAscii = 0
  233.    End Select
  234.    
  235. End Sub
  236. Private Sub Form_Load()
  237.   
  238.     '打印报表标题信息
  239.     ReportTitle = "物 料 档 案 设 置"
  240.      
  241.     '调入打印页面设置窗体
  242.     XtReportCode = "Gy_material"
  243.     Load Dyymctbl
  244.     
  245.     '以下为文本框处理程序(读入文本框录入信息)
  246.     TextGroupCode = "Gy_material"
  247.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())
  248.     Call Wbkcsh
  249.     
  250.     '调入网格设置信息
  251.     GridCode = "Gy_material"
  252.     Call BzWgcsh(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  253.     Qslz = GridInf(1)
  254.     Sjhgd = GridInf(2)
  255.     Szzls = CzxsGrid.Cols - 1
  256.      Call TreeListValue
  257.     '填 充 网 格
  258. '    Call Cxnrtcwg
  259.        
  260.     '初始化toolbar,tab卡状态
  261.     StTab.Tab = 0
  262.     StTab.TabEnabled(1) = False
  263.     Frame1.Enabled = False
  264.      
  265.     '设置为非录入状态
  266.     Lrzt = 0
  267.         
  268.     '编辑(新增、修改、删除)权限索引
  269.     Str_RightEdit = "Gy_material_Edit"
  270.     
  271.     '初始化comblist
  272.     Dim rs As New ADODB.Recordset
  273.     
  274.     Set rs = Cw_DataEnvi.DataConnect.Execute("select * from Xt_ComboList where combo_code='Gy_batchmeas' order by item_index")
  275.     Do While Not rs.EOF
  276.         Lrcomb(0).AddItem Trim(rs("item_content"))
  277.         rs.MoveNext
  278.     Loop
  279.     rs.Close
  280.     Set rs = Cw_DataEnvi.DataConnect.Execute("select * from Xt_ComboList where combo_code='Gy_abcsort' order by item_index")
  281.     Do While Not rs.EOF
  282.         Lrcomb(1).AddItem Trim(rs("item_content"))
  283.         rs.MoveNext
  284.     Loop
  285.     rs.Close
  286.     Set rs = Cw_DataEnvi.DataConnect.Execute("select * from Xt_ComboList where combo_code='Gy_propertyid' order by item_index")
  287.     Do While Not rs.EOF
  288.         Lrcomb(2).AddItem Trim(rs("item_content"))
  289.         rs.MoveNext
  290.     Loop
  291.     
  292.     Lrcomb(0).ListIndex = 0
  293.     Lrcomb(1).ListIndex = 0
  294.     Lrcomb(2).ListIndex = 0
  295. End Sub
  296.  
  297. Private Sub Cxnrtcwg(Optional Sqlstr As String)                                '查询内容填充网格
  298.     Dim jsqte As Long                '查询临时使用变量
  299.   
  300.     '为加快显示速度,将网格刷新动作冻结
  301.     CzxsGrid.Redraw = False
  302.   
  303.     '[>>查询连接串
  304.     If Sqlstr = "" Then
  305.         Sqlstr = "SELECT * FROM Gy_V_material order by MNumber"
  306.     End If
  307.     '<<]
  308.     Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  309.     
  310.     With Cxnrrec
  311.         CzxsGrid.Rows = CzxsGrid.FixedRows
  312.         If .EOF And .BOF Then
  313.             CzxsGrid.Redraw = True
  314.             Exit Sub
  315.         End If
  316.         
  317.         jsqte = CzxsGrid.FixedRows
  318.         
  319.         Do While Not .EOF
  320.             CzxsGrid.AddItem ""
  321.             Call Jltcwg(Cxnrrec, jsqte)                              '调入填充网格子过程
  322.             CzxsGrid.RowHeight(jsqte) = Sjhgd                        '设置网格高度
  323.             .MoveNext
  324.             jsqte = jsqte + 1
  325.         Loop
  326.     End With
  327.   
  328.     '将网格刷新动作解冻
  329.     CzxsGrid.Redraw = True
  330.     
  331. End Sub
  332. Private Sub Jltcwg(Jlbrec As ADODB.Recordset, Rowjsq As Long)           '记录内容填充网格
  333.     Dim i As Long
  334.     i = Sydz("001", GridStr(), Szzls)
  335.     '[>>以下为自定义部分
  336.     With Jlbrec
  337.         CzxsGrid.TextMatrix(Rowjsq, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("mnumber") & "")         '物料编码
  338.         CzxsGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("mname") & "")           '物料名称
  339.         CzxsGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = Trim(.Fields("model") & "")           '规格型号
  340.         CzxsGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("primaryunitname") & "") '主计量单位
  341.         CzxsGrid.TextMatrix(Rowjsq, Sydz("005", GridStr(), Szzls)) = Trim(.Fields("purunitname") & "")     '采购计量单位
  342.         CzxsGrid.TextMatrix(Rowjsq, Sydz("006", GridStr(), Szzls)) = Trim(.Fields("saleunitname") & "")    '销售计量单位
  343.         CzxsGrid.TextMatrix(Rowjsq, Sydz("007", GridStr(), Szzls)) = Trim(.Fields("caizhi") & "")          '材质
  344.         CzxsGrid.TextMatrix(Rowjsq, Sydz("008", GridStr(), Szzls)) = Trim(.Fields("pursortname") & "")     '所属采购分类
  345.         CzxsGrid.TextMatrix(Rowjsq, Sydz("009", GridStr(), Szzls)) = Trim(.Fields("invsortname") & "")     '所属库存分类
  346.         CzxsGrid.TextMatrix(Rowjsq, Sydz("010", GridStr(), Szzls)) = Trim(.Fields("whname") & "")          '默认分配仓库
  347.         CzxsGrid.TextMatrix(Rowjsq, Sydz("011", GridStr(), Szzls)) = IIf(.Fields("planprice") = 0, "", .Fields("planprice"))   '计划价
  348.         CzxsGrid.TextMatrix(Rowjsq, Sydz("012", GridStr(), Szzls)) = IIf(.Fields("consultcost") = 0, "", .Fields("consultcost"))  '参考成本
  349.         CzxsGrid.TextMatrix(Rowjsq, Sydz("013", GridStr(), Szzls)) = IIf(.Fields("consultprice") = 0, "", .Fields("consultprice")) '参考售价
  350.         CzxsGrid.TextMatrix(Rowjsq, Sydz("014", GridStr(), Szzls)) = IIf(.Fields("lowprice") = 0, "", .Fields("lowprice"))     '最低售价
  351.         CzxsGrid.TextMatrix(Rowjsq, Sydz("015", GridStr(), Szzls)) = Trim(.Fields("abcsort") & "")         'ABC分类
  352.         CzxsGrid.TextMatrix(Rowjsq, Sydz("016", GridStr(), Szzls)) = Trim(.Fields("stopflag") & "")        '停用标志
  353.     End With
  354.     
  355.     '以上为自定义部分<<]
  356.     
  357. End Sub
  358. Private Sub Form_Unload(Cancel As Integer)             '窗体卸载
  359.     Set Cxnrrec = Nothing
  360.     Set Rec_CodeSet = Nothing
  361.     Unload Dyymctbl
  362.     Gy_MaterialQuery.UnloadCheck = 1
  363.     Unload Gy_MaterialQuery
  364. End Sub
  365. Private Function Bclrsj() As Boolean                   '判断录入数据有效性,并保存数据
  366.     Dim jsqte As Integer
  367.     SSTab1.Tab = 0
  368.     '对文本框录入内容进行为零和为空判断(固定不变)
  369.     With Rec_CodeSet
  370.     
  371.         For jsqte = 0 To Max_Text_Index
  372.             If Textint(jsqte, 8) = 1 Then     '字段不能为空
  373.                 If Len(Trim(LrText(jsqte).Text)) = 0 Then
  374.                     Tsxx = Textstr(jsqte, 7) & "不能为空!"
  375.                     Call Xtxxts(Tsxx, 0, 1)
  376.                     LrText(jsqte).SetFocus
  377.                     Bclrsj = False
  378.                     Exit Function
  379.                 End If
  380.             Else
  381.                 If Textint(jsqte, 8) = 2 Then   '字段不能为零
  382.                     If Val(Trim(LrText(jsqte).Text)) = 0 Then
  383.                         Tsxx = Textstr(jsqte, 7) & "不能为零!"
  384.                         Call Xtxxts(Tsxx, 0, 1)
  385.                         LrText(jsqte).SetFocus
  386.                         Bclrsj = False
  387.                         Exit Function
  388.                     End If
  389.                 End If
  390.             End If
  391.         Next jsqte
  392.     
  393.         '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  394.         For jsqte = 0 To Max_Text_Index
  395.             If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
  396.                 If Not TextYxxpd(jsqte) Then
  397.                     Exit Function
  398.                 End If
  399.             End If
  400.         Next jsqte
  401.         '[<<
  402.         
  403.         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
  404.             Tsxx = "请选择物料属性!"
  405.             Call Xtxxts(Tsxx, 0, 1)
  406.             SSTab1.Tab = 0
  407.             LrCheck(0).SetFocus
  408.             Bclrsj = False
  409.             Exit Function
  410.         End If
  411.         If LrCheck(6).Value = 1 And LrCheck(7).Value = 0 Then
  412.             Tsxx = "进行保质期管理的物料必须进行批次管理!"
  413.             Call Xtxxts(Tsxx, 0, 1)
  414.             SSTab1.Tab = 0
  415.             LrCheck(7).SetFocus
  416.             Bclrsj = False
  417.             Exit Function
  418.         End If
  419.         
  420.         '>>]
  421.         If Lrzt = 1 Then  '增 加
  422.         
  423.             '[>>判断编码是否重复
  424.             If .State = 1 Then .Close
  425.             .Open "SELECT * FROM Gy_material WHERE MNumber= '" + Trim(LrText(0).Text) + "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  426.     
  427.             If Not .EOF Then
  428.                 Tsxx = "物料编码重复!"
  429.                 Call Xtxxts(Tsxx, 0, 1)
  430.                 LrText(0).SetFocus
  431.                 Bclrsj = False
  432.                 Exit Function
  433.             End If
  434.     
  435.             '判断名称是否重复
  436.             If .State = 1 Then .Close
  437.             .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
  438.             If Not .EOF Then
  439.                 Tsxx = "物料名称+规格型号+材质不能重复!"
  440.                 Call Xtxxts(Tsxx, 0, 1)
  441.                 LrText(1).SetFocus
  442.                 Bclrsj = False
  443.                 Exit Function
  444.             End If
  445.             '判断记录内容无误后,将记录内容写入数据表
  446.             On Error GoTo Swcwcl
  447.     
  448.             Cw_DataEnvi.DataConnect.BeginTrans
  449.    
  450.             .AddNew
  451.             .Fields("MNumber") = Trim(LrText(0).Text)       '物料编码
  452.             .Fields("MName") = Trim(LrText(1).Text)         '物料名称
  453.             .Fields("model") = Trim(LrText(2))              '规格
  454.             .Fields("primaryunit") = Trim(LrText(3).Tag)    '主计量单位编码
  455.             .Fields("primaryunitname") = Trim(LrText(3))    '主计量单位名称
  456.             .Fields("purunit") = Trim(LrText(4).Tag)        '采购计量单位
  457.             .Fields("purunitname") = Trim(LrText(4).Text)
  458.             
  459.             .Fields("purinvcon1") = Val(LrText(5))          '采购换算率
  460.             .Fields("purinvcon2") = Val(LrText(6))
  461.             .Fields("saleunit") = Trim(LrText(7).Tag)       '销售计量单位
  462.             .Fields("saleunitname") = Trim(LrText(7))
  463.             .Fields("saleinvcon1") = Trim(LrText(8).Text)   '销售换算率
  464.             .Fields("saleinvcon2") = Trim(LrText(9).Text)
  465.             .Fields("pursortcode") = Trim(LrText(10).Tag)   '采购分类
  466.             .Fields("invsortcode") = Trim(LrText(11).Tag)   '库存分类
  467.             If Trim(LrText(12).Tag) <> "" Then              '默认分配仓库
  468.                 .Fields("whcode") = Trim(LrText(12).Tag)
  469.             Else
  470.                 .Fields("whcode") = Null
  471.             End If
  472.             .Fields("cess") = Val(LrText(13).Text)           '税率
  473.             .Fields("caizhi") = Trim(LrText(14).Text)        '材质
  474.             
  475.             .Fields("planprice") = Val(LrText(17).Text)      '计划价
  476.             .Fields("consultcost") = Val(LrText(18).Text)    '参考成本
  477.             .Fields("consultprice") = Val(LrText(19).Text)   '参考售价
  478.             .Fields("lowprice") = Val(LrText(20).Text)       '最低售价
  479.             .Fields("newincost") = Val(LrText(21).Text)      '最新入库成本
  480.             .Fields("newoutcost") = Val(LrText(22).Text)     '最新出库成本
  481.             .Fields("highprice") = Val(LrText(23))           '最高价格
  482.             
  483.             .Fields("highstorage") = Val(LrText(24))         '最高库存
  484.             .Fields("lowstorage") = Val(LrText(25))          '最低库存
  485.             .Fields("safequan") = Val(LrText(26))            '安全库存
  486.             .Fields("overpurstandard") = Val(LrText(27))     '积压标准
  487.                    
  488.             .Fields("advcourse") = Val(LrText(34).Text)      '提前期
  489.             .Fields("batch") = Val(LrText(35).Text)          '经济批量
  490.             .Fields("techwarcode") = Trim(LrText(36).Text)   '工艺路线代码
  491.             .Fields("checktype") = Val(LrText(37).Text)      '检验方式
  492.             .Fields("unitweight") = Val(LrText(38).Text)     '单位重量
  493.             .Fields("unitbulk") = Val(LrText(39).Text)       '单位体积
  494.             .Fields("barcode") = Trim(LrText(40).Text)       '条形码
  495.             .Fields("lowlevel") = Trim(LrText(41).Text)      '低位码
  496.             .Fields("partno") = Trim(LrText(42).Text)        '零件号
  497.             .Fields("drawingno") = Trim(LrText(43))          '图号
  498.             
  499.             .Fields("batchmeas") = Trim(Lrcomb(0).Text)      '批量方法
  500.             .Fields("abcsort") = Trim(Lrcomb(1).Text)        'abc分类
  501.             .Fields("propertyid") = Left(Trim(Lrcomb(2).Text), 1) '制造采购拖外
  502.             .Fields("issale") = LrCheck(0).Value             '销售
  503.             .Fields("ispurchase") = LrCheck(1).Value         '外购
  504.             .Fields("isproduce") = LrCheck(2).Value          '自制
  505.             .Fields("isuse") = LrCheck(3).Value              '生产耗用
  506.             .Fields("ischarge") = LrCheck(4).Value           '劳务费用
  507.             .Fields("issubmit") = LrCheck(5).Value           '委托加工
  508.             
  509.             .Fields("isbzqgl") = LrCheck(6).Value            '保质期
  510.             .Fields("ispcgl") = LrCheck(7).Value             '批次管理
  511.             .Fields("isfew") = LrCheck(8).Value              '亏吨
  512.             .Fields("ischeck") = LrCheck(9).Value            '检验
  513.             .Fields("isbpbj") = LrCheck(10).Value            '备品备件
  514.             .Fields("stopflag") = LrCheck(11).Value          '停用标志
  515.             
  516.             .Update
  517.             Cw_DataEnvi.DataConnect.CommitTrans
  518.             '将记录加入网格
  519.             Sqlstr = "SELECT * FROM Gy_V_material WHERE MNumber= '" + Trim(LrText(0).Text) + "'"
  520.             Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  521.    
  522.             With CzxsGrid
  523.                 .AddItem ""
  524.                 .RowHeight(.Rows - 1) = Sjhgd
  525.                 .Select .Rows - 1, Qslz
  526.                 Call Jltcwg(Cxnrrec, .Rows - 1)
  527.             End With
  528.             Tsxx = "保存完毕!"
  529.             Call Xtxxts(Tsxx, 0, 4)
  530.             
  531.             Call Cshlrxx(1)
  532.             LrText(0).SetFocus
  533.             '将网格按编码排序
  534.             With CzxsGrid
  535.                 .Col = Sydz("001", GridStr(), Szzls)
  536.                 CzxsGrid.Sort = flexSortStringAscending
  537.             End With
  538.             '<<]
  539.     
  540.         Else  '否则为修改记录
  541.  
  542.             If .State = 1 Then .Close
  543.             .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
  544.             If Not .EOF Then
  545.                 Tsxx = "物料名称+规格型号+材质不能重复!"
  546.                 Call Xtxxts(Tsxx, 0, 1)
  547.                 LrText(1).SetFocus
  548.                 Bclrsj = False
  549.                 Exit Function
  550.             End If
  551.             On Error GoTo Swcwcl
  552.             Cw_DataEnvi.DataConnect.BeginTrans
  553.             If .State = 1 Then .Close
  554.             .Open "SELECT * FROM Gy_material WHERE MNumber= '" + Trim(LrText(0).Text) + "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  555.      
  556.             If Not .EOF Then
  557.                 .Fields("MName") = Trim(LrText(1).Text)         '物料名称
  558.                 .Fields("model") = Trim(LrText(2))              '规格
  559.                 .Fields("primaryunit") = Trim(LrText(3).Tag)    '主计量单位编码
  560.                 .Fields("primaryunitname") = Trim(LrText(3))    '主计量单位名称
  561.                 .Fields("purunit") = Trim(LrText(4).Tag)        '采购计量单位
  562.                 .Fields("purunitname") = Trim(LrText(4).Text)
  563.                 
  564.                 .Fields("purinvcon1") = Val(LrText(5))          '采购换算率
  565.                 .Fields("purinvcon2") = Val(LrText(6))
  566.                 .Fields("saleunit") = Trim(LrText(7).Tag)       '销售计量单位
  567.                 .Fields("saleunitname") = Trim(LrText(7))
  568.                 .Fields("saleinvcon1") = Val(LrText(8).Text)   '销售换算率
  569.                 .Fields("saleinvcon2") = Val(LrText(9).Text)
  570.                 .Fields("pursortcode") = Trim(LrText(10).Tag)   '采购分类
  571.                 .Fields("invsortcode") = Trim(LrText(11).Tag)   '库存分类
  572.                 If Trim(LrText(12).Tag) <> "" Then              '默认分配仓库
  573.                     .Fields("whcode") = Trim(LrText(12).Tag)
  574.                 Else
  575.                     .Fields("whcode") = Null
  576.                 End If
  577.                 .Fields("cess") = Val(LrText(13).Text)           '税率
  578.                 .Fields("caizhi") = Trim(LrText(14).Text)        '材质
  579.                 
  580.                 .Fields("planprice") = Val(LrText(17).Text)      '计划价
  581.                 .Fields("consultcost") = Val(LrText(18).Text)    '参考成本
  582.                 .Fields("consultprice") = Val(LrText(19).Text)   '参考售价
  583.                 .Fields("lowprice") = Val(LrText(20).Text)       '最低售价
  584.                 .Fields("newincost") = Val(LrText(21).Text)      '最新入库成本
  585.                 .Fields("newoutcost") = Val(LrText(22).Text)     '最新出库成本
  586.                 .Fields("highprice") = Val(LrText(23))           '最高价格
  587.                 
  588.                 .Fields("highstorage") = Val(LrText(24))         '最高库存
  589.                 .Fields("lowstorage") = Val(LrText(25))          '最低库存
  590.                 .Fields("safequan") = Val(LrText(26))            '安全库存
  591.                 .Fields("overpurstandard") = Val(LrText(27))     '积压标准
  592.                        
  593.                 .Fields("advcourse") = Val(LrText(34).Text)      '提前期
  594.                 .Fields("batch") = Val(LrText(35).Text)          '经济批量
  595.                 .Fields("techwarcode") = Trim(LrText(36).Text)   '工艺路线代码
  596.                 .Fields("checktype") = Val(LrText(37).Text)      '检验方式
  597.                 .Fields("unitweight") = Val(LrText(38).Text)     '单位重量
  598.                 .Fields("unitbulk") = Val(LrText(39).Text)       '单位体积
  599.                 .Fields("barcode") = Trim(LrText(40).Text)       '条形码
  600.                 .Fields("lowlevel") = Trim(LrText(41).Text)      '低位码
  601.                 .Fields("partno") = Trim(LrText(42).Text)        '零件号
  602.                 .Fields("drawingno") = Trim(LrText(43))          '图号
  603.                 
  604.                 .Fields("batchmeas") = Trim(Lrcomb(0).Text)      '批量方法
  605.                 .Fields("abcsort") = Trim(Lrcomb(1).Text)        'abc分类
  606.                 .Fields("propertyid") = Left(Trim(Lrcomb(2).Text), 1) '制造采购拖外
  607.     
  608.                 .Fields("issale") = LrCheck(0).Value             '销售
  609.                 .Fields("ispurchase") = LrCheck(1).Value         '外购
  610.                 .Fields("isproduce") = LrCheck(2).Value          '自制
  611.                 .Fields("isuse") = LrCheck(3).Value              '生产耗用
  612.                 .Fields("ischarge") = LrCheck(4).Value           '劳务费用
  613.                 .Fields("issubmit") = LrCheck(5).Value           '委托加工
  614.                 
  615.                 .Fields("isbzqgl") = LrCheck(6).Value            '保质期
  616.                 .Fields("ispcgl") = LrCheck(7).Value             '批次管理
  617.                 .Fields("isfew") = LrCheck(8).Value              '亏吨
  618.                 .Fields("ischeck") = LrCheck(9).Value            '检验
  619.                 .Fields("isbpbj") = LrCheck(10).Value            '备品备件
  620.                 .Fields("stopflag") = LrCheck(11).Value          '停用标志
  621.                 .Update
  622.             End If
  623.              Cw_DataEnvi.DataConnect.CommitTrans
  624.    
  625.             '刷新当前网格
  626.             Sqlstr = "SELECT * FROM Gy_V_material WHERE MNumber= '" + Trim(LrText(0).Text) + "'"
  627.             Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  628.    
  629.             With CzxsGrid
  630.                 Call Jltcwg(Cxnrrec, .Row)
  631.             End With
  632.    
  633.         End If
  634.      
  635.         '保存记录成功,函数返回真值
  636.         Bclrsj = True
  637.         Exit Function
  638.         
  639.     End With
  640.  
  641. Swcwcl:
  642.      Cw_DataEnvi.DataConnect.RollbackTrans
  643.      Set Rec_CodeSet = Nothing
  644.      If Err.Number = -2147217887 Then
  645.         Tsxx = "录入数据超出允许范围!"
  646.         Call Xtxxts(Tsxx, 0, 1)
  647.         Exit Function
  648.      Else
  649.         Tsxx = "存盘过程中出现错误,程序自动恢复保存前状态!"
  650.         Call Xtxxts(Tsxx, 0, 1)
  651.         Exit Function
  652.      End If
  653. End Function
  654. Private Function Cshlrxx(lrztxx As Integer) As Boolean              '初始化录入字段信息
  655.     Dim RecTemp As New ADODB.Recordset
  656.     TextChangeLock = True       '关闭文本框Chang事件
  657.     Call mmkn
  658.     
  659.     lblMsg.Visible = False
  660.     If lrztxx = 1 Then
  661.         SSTab1.Tab = 0
  662.         Call EditEnable(True)
  663.         '增加新记录时将文本框清空
  664.         For jsqte = 0 To Max_Text_Index
  665.             If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  666.                 LrText(jsqte).Text = ""
  667.                 LrText(jsqte).Tag = ""
  668.             End If
  669.             TextValiJudgeLock(jsqte) = True
  670.         Next jsqte
  671.     
  672.         '[>>
  673.         For jsqte = 0 To 10
  674.             LrCheck(0).Value = 0
  675.         Next
  676.         Lrcomb(0).ListIndex = 0
  677.         Lrcomb(1).ListIndex = 0
  678.         Lrcomb(2).ListIndex = 0
  679.         
  680.         LrText(5) = 1
  681.         LrText(6) = 1
  682.         LrText(8) = 1
  683.         LrText(9) = 1
  684.         LrText(13) = 17
  685.         '在此处可添加新增记录时初始化设置
  686.         '<<]
  687.     Else
  688.     
  689.         '修改记录时根据记录关键字(编码)从数据表中读入其他字段内容
  690.         With RecTemp
  691.             Sqlstr = "SELECT * FROM Gy_V_material Where MNumber='" & Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))) & "'"
  692.   
  693.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  694.        
  695.             '记录如存在则读入其内容,否则提示记录已被其他人删除
  696.             If Not RecTemp.EOF Then
  697.                 Call ShowData(RecTemp)
  698. '****************************************************已使用物料只能修改部分属性
  699. '如果删除产生异常,说明记录已被引用
  700. On Error GoTo ErrMsg
  701.                 Cw_DataEnvi.DataConnect.BeginTrans
  702.                 Cw_DataEnvi.DataConnect.Execute "delete Gy_material where MNumber = '" + Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))) + "'"
  703.                 Cw_DataEnvi.DataConnect.RollbackTrans
  704.                 Call EditEnable(True)
  705.                 Cshlrxx = True
  706.                 TextChangeLock = False
  707.                 Exit Function
  708. ErrMsg:
  709.                 Cw_DataEnvi.DataConnect.RollbackTrans
  710.                 If Err.Number = -2147217873 Then                '(-2147217873 为SQL Server 2000通过建立外键产生的错误号)
  711.                     Call EditEnable(False)
  712.                     lblMsg.Visible = True
  713.                     TextChangeLock = False
  714.                     Cshlrxx = True
  715.                     Exit Function
  716.                 Else
  717.                     Tsxx = "出现未知情况,请重新进入系统再试!"
  718.                     Call Xtxxts(Tsxx, 0, 4)
  719.                     Call Cancel
  720.                     TextChangeLock = False
  721.                     Exit Function
  722.                 End If
  723. '***************************************************
  724.             Else
  725.                 Tsxx = "该记录已经被其他人删除,请刷新当前数据!"
  726.                 Call Xtxxts(Tsxx, 0, 4)
  727.                 Call Cancel
  728.                 TextChangeLock = False
  729.                 Exit Function
  730.             End If
  731.         End With
  732.     End If
  733.     
  734.     Cshlrxx = True
  735.     TextChangeLock = False
  736.     
  737. End Function
  738. Private Sub EditEnable(bln_T As Boolean) '记录已经使用,以下字段不能修改
  739.     LrText(3).Enabled = bln_T
  740.     Ydcommand1(3).Enabled = bln_T
  741.     LrText(4).Enabled = bln_T
  742.     Ydcommand1(4).Enabled = bln_T
  743.     LrText(5).Enabled = bln_T
  744.     LrText(6).Enabled = bln_T
  745.     LrText(8).Enabled = bln_T
  746.     LrText(9).Enabled = bln_T
  747.     LrText(7).Enabled = bln_T
  748.     Ydcommand1(7).Enabled = bln_T
  749.     LrText(17).Enabled = bln_T
  750.     
  751.     LrCheck(0).Enabled = bln_T
  752.     LrCheck(1).Enabled = bln_T
  753.     LrCheck(2).Enabled = bln_T
  754.     LrCheck(3).Enabled = bln_T
  755.     LrCheck(4).Enabled = bln_T
  756.     LrCheck(5).Enabled = bln_T
  757.     LrCheck(6).Enabled = bln_T
  758.     LrCheck(7).Enabled = bln_T
  759. End Sub
  760. Private Sub ShowData(rs As ADODB.Recordset)
  761.     With rs
  762.         LrText(0).Text = Trim(.Fields("MNumber") & "")          '物料编码
  763.         LrText(1).Text = Trim(.Fields("MName") & "")            '物料名称
  764.         LrText(2) = Trim(.Fields("model") & "")                 '规格型号
  765.         LrText(3).Tag = Trim(.Fields("primaryunit") & "")       '主计量单位
  766.         LrText(3) = Trim(.Fields("primaryunitname") & "")
  767.         LrText(4).Tag = Trim(.Fields("purunit") & "")           '采购计量单位
  768.         LrText(4) = Trim(.Fields("purunitname") & "")
  769.         LrText(5) = Trim(.Fields("purinvcon1") & "")            '采购换算率分子
  770.         LrText(6) = Trim(.Fields("purinvcon2") & "")            '采购换算率分母
  771.         LrText(7).Tag = Trim(.Fields("saleunit") & "")          '销售计量单位
  772.         LrText(7) = Trim(.Fields("saleunitname") & "")
  773.         LrText(8) = Trim(.Fields("saleinvcon1") & "")           '销售换算率分子
  774.         LrText(9) = Trim(.Fields("saleinvcon2") & "")           '销售换算率分母
  775.         LrText(10).Tag = Trim(.Fields("pursortcode") & "")      '所属采购分类
  776.         LrText(10) = Trim(.Fields("pursortname") & "")
  777.         LrText(11).Tag = Trim(.Fields("invsortcode") & "")      '所属库存分类
  778.         LrText(11) = Trim(.Fields("invsortname") & "")
  779.         LrText(12).Tag = Trim(.Fields("whcode") & "")           '默认分配仓库
  780.         LrText(12) = Trim(.Fields("whname") & "")
  781.         LrText(13) = Trim(.Fields("cess") & "")                 '税率
  782.         LrText(14) = Trim(.Fields("caizhi") & "")               '材质
  783.         LrText(15) = Trim(.Fields("sellaccname") & "")          '销售收入科目
  784.         LrText(16) = Trim(.Fields("selltaxaccname") & "")       '增值税科目
  785.         
  786.         LrText(17) = Val(.Fields("planprice") & "")            '计划价
  787.         LrText(18) = Val(.Fields("consultcost") & "")          '参考成本
  788.         LrText(19) = Val(.Fields("consultprice") & "")         '参考售价
  789.         LrText(20) = Val(.Fields("lowprice"))                  '最低售价
  790.         LrText(21) = Val(.Fields("newincost"))                 '最新入库成本
  791.         LrText(22) = Val(.Fields("newoutcost"))                '最新出库成本
  792.         LrText(23) = Val(.Fields("highprice"))                 '最高价格
  793.         
  794.         LrText(24) = Val(.Fields("highstorage"))               '最高库存
  795.         LrText(25) = Val(.Fields("lowstorage") & "")           '最低库存
  796.         LrText(26) = Val(.Fields("safequan") & "")             '安全库存
  797.         LrText(27) = Val(.Fields("overpurstandard") & "")      '积压标准
  798.         LrText(28) = Val(.Fields("colligatestorage") & "")     '综合库存量
  799.         LrText(29) = Val(.Fields("nowstorage") & "")           '现有库存量
  800.         LrText(30) = Val(.Fields("allocatestorage") & "")      '已分配库存量
  801.         LrText(31) = Val(.Fields("usestorage") & "")           '可用库存
  802.         LrText(32) = Val(.Fields("speakquan") & "")            '在订量
  803.         LrText(33) = Val(.Fields("waitaccpetquan") & "")       '待验量
  804.         
  805.         LrText(34) = Val(.Fields("advcourse") & "")             '提前期
  806.         LrText(35) = Val(.Fields("batch") & "")                 '经济批量
  807.         LrText(36) = Trim(.Fields("techwarcode") & "")          '工艺路线代码
  808.         LrText(37) = Trim(.Fields("checktype") & "")            '检验方式
  809.         LrText(38) = Trim(.Fields("unitweight") & "")           '单位重量
  810.         LrText(39) = Trim(.Fields("unitbulk") & "")             '单位体积
  811.         LrText(40) = Trim(.Fields("barcode") & "")              '条形码
  812.         LrText(41) = Trim(.Fields("lowlevel") & "")             '低位吗
  813.         LrText(42) = Trim(.Fields("partno") & "")               '零件号
  814.         LrText(43) = Trim(.Fields("drawingno") & "")            '图号
  815.         
  816.         LrText(44) = Trim(.Fields("puraccname") & "")           '原材料科目
  817.         LrText(45) = Trim(.Fields("purtaxaccname") & "")        '进项增值税科目
  818.         
  819.         If .Fields("issale") Then         '销售
  820.             LrCheck(0).Value = 1
  821.         Else
  822.             LrCheck(0).Value = 0
  823.         End If
  824.         If .Fields("ispurchase") Then     '外购
  825.             LrCheck(1).Value = 1
  826.         Else
  827.             LrCheck(1).Value = 0
  828.         End If
  829.         If .Fields("isproduce") Then      '自制
  830.             LrCheck(2).Value = 1
  831.         Else
  832.             LrCheck(2).Value = 0
  833.         End If
  834.         If .Fields("isuse") Then          '生产耗用
  835.             LrCheck(3).Value = 1
  836.         Else
  837.             LrCheck(3).Value = 0
  838.         End If
  839.         If .Fields("ischarge") Then       '劳务费用
  840.             LrCheck(4).Value = 1
  841.         Else
  842.             LrCheck(4).Value = 0
  843.         End If
  844.         If .Fields("issubmit") Then       '委托加工
  845.             LrCheck(5).Value = 1
  846.         Else
  847.             LrCheck(5).Value = 0
  848.         End If
  849.         If .Fields("isbzqgl") Then        '保质期
  850.             LrCheck(6).Value = 1
  851.         Else
  852.             LrCheck(6).Value = 0
  853.         End If
  854.         If .Fields("ispcgl") Then         '批次
  855.             LrCheck(7).Value = 1
  856.         Else
  857.             LrCheck(7).Value = 0
  858.         End If
  859.         If .Fields("isfew") Then          '亏吨
  860.             LrCheck(8).Value = 1
  861.         Else
  862.             LrCheck(8).Value = 0
  863.         End If
  864.         If .Fields("ischeck") Then        '检验
  865.             LrCheck(9).Value = 1
  866.         Else
  867.             LrCheck(9).Value = 0
  868.         End If
  869.         If .Fields("isbpbj") Then         '备品备件
  870.             LrCheck(10).Value = 1
  871.         Else
  872.             LrCheck(10).Value = 0
  873.         End If
  874.         If .Fields("stopflag") Then       '停用标志
  875.             LrCheck(11).Value = 1
  876.         Else
  877.             LrCheck(11).Value = 0
  878.         End If
  879.         
  880.         If Trim(.Fields("batchmeas") & "") <> "" Then     '批量方法
  881.             Lrcomb(0).Text = Trim(.Fields("batchmeas"))
  882.         Else
  883.             Lrcomb(0).ListIndex = 0
  884.         End If
  885.         If Trim(.Fields("abcsort") & "") <> "" Then       'abc分类
  886.             Lrcomb(1).Text = Trim(.Fields("abcsort"))
  887.         Else
  888.             Lrcomb(1).ListIndex = 0
  889.         End If
  890.         If Trim(.Fields("propertyid") & "") = "P" Then    '制造采购拖外
  891.             Lrcomb(2).ListIndex = 1
  892.         ElseIf Trim(.Fields("propertyid") & "") = "M" Then
  893.             Lrcomb(2).ListIndex = 0
  894.         ElseIf Trim(.Fields("propertyid") & "") = "C" Then
  895.             Lrcomb(2).ListIndex = 2
  896.         Else
  897.             Lrcomb(2).ListIndex = 0
  898.         End If
  899.     End With
  900. End Sub
  901. Private Sub Scdqjl()                 '删 除 当 前 记 录
  902.     Dim Yhanswer As Integer
  903.     
  904.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  905.     If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  906.         Exit Sub
  907.     End If
  908.             
  909.     '非数据行不能删除
  910.     If CzxsGrid.Row < CzxsGrid.FixedRows Then
  911.         Exit Sub
  912.     End If
  913.   
  914.     '用户确认是否删除记录
  915.     Tsxx = "请确认是否删除当前记录?"
  916.     Yhanswer = Xtxxts(Tsxx, 2, 2)
  917.     
  918.     If Yhanswer = 2 Then
  919.         Exit Sub
  920.     End If
  921.     On Error GoTo Cwcl
  922.   
  923.     Cw_DataEnvi.DataConnect.BeginTrans
  924.     '[>>以下需自定义部分
  925.     Cw_DataEnvi.DataConnect.Execute "delete Gy_material where MNumber = '" + Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls))) + "'"
  926.     '以上为自定义部分<<]
  927.   
  928.     Cw_DataEnvi.DataConnect.CommitTrans
  929.     CzxsGrid.RemoveItem CzxsGrid.Row
  930.     Exit Sub
  931.   
  932. Cwcl:
  933.     Cw_DataEnvi.DataConnect.RollbackTrans
  934.     
  935.     If Err.Number = -2147217873 Then                '(-2147217873 为SQL Server 2000通过建立外键产生的错误号)
  936.         Tsxx = "此物料已经被使用,不能删除!"
  937.         Call Xtxxts(Tsxx, 0, 1)
  938.         Exit Sub
  939.     Else
  940.         Tsxx = "出现未知情况,此物料不能被删除!"
  941.         Call Xtxxts(Tsxx, 0, 1)
  942.         Exit Sub
  943.     End If
  944.     
  945. End Sub
  946. '*******************以下区域为编写自定义过程区域**********************
  947. '*******************以上区域为编写自定义过程区域**********************
  948. '******************以下为基本处理程序(固定不变)************************'
  949. Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)        '支持热键操作
  950.     If Shift = 2 Then
  951.         Select Case UCase(Chr(KeyCode))
  952.             Case "P"                                                                          'Ctrl+P 打印
  953.                 If SzToolbar.Buttons("dy").Visible And SzToolbar.Buttons("dy").Enabled Then
  954.                     Call bbyl(False)
  955.                 End If
  956.             Case "A"                                                                          'Ctrl+A 增加
  957.                 '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  958.                 If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  959.                     Exit Sub
  960.                 End If
  961.                 If SzToolbar.Buttons("zj").Visible And SzToolbar.Buttons("zj").Enabled Then
  962.                     Call Toolbjzt
  963.                     Lrzt = 1
  964.                     Call Cshlrxx(Lrzt)
  965.                     LrText(0).Enabled = True
  966.                     LrText(0).SetFocus
  967.                 End If
  968.             Case "D"                                                                          'Ctrl+D 删除
  969.                 If SzToolbar.Buttons("sc").Visible And SzToolbar.Buttons("sc").Enabled Then
  970.                     Call Scdqjl
  971.                 End If
  972.         End Select
  973.     End If
  974.     
  975. End Sub
  976. Private Sub LrCheck_Click(Index As Integer)
  977.     If Index = 6 And LrCheck(6).Value = 1 Then
  978.         LrCheck(7).Value = 1
  979.     End If
  980.     If Index = 7 And LrCheck(7).Value = 0 Then
  981.         LrCheck(6).Value = 0
  982.     End If
  983.     
  984. End Sub
  985. Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
  986.    
  987.     Select Case Button.Key
  988.         Case "ymsz"                                          '页面设置
  989.             Dyymctbl.Show 1
  990.         Case "yl"                                            '预 览
  991.             Call bbyl(True)
  992.         Case "dy"                                            '打 印
  993.             Call bbyl(False)
  994.         Case "zj"                                            '增 加
  995.             '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  996.             If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  997.                 Exit Sub
  998.             End If
  999.             Call Toolbjzt
  1000.             Lrzt = 1
  1001.             Call Cshlrxx(Lrzt)
  1002.             
  1003.             LrText(0).Enabled = True
  1004.             LrText(0).SetFocus
  1005.         Case "xg"                                            '修 改
  1006.             Call Xgdqjl
  1007.         Case "sc"                                            '删 除
  1008.             Call Scdqjl                                      '查询
  1009.         Case "cx"
  1010.             Gy_MaterialQuery.Show 1
  1011.         Case "sx"                                            '刷 新
  1012.             Call Cxnrtcwg
  1013.         Case "bz"                                            '帮 助
  1014.             Call F1bz
  1015.         Case "fh"                                            '退 出
  1016.             Unload Me
  1017.         End Select
  1018.         
  1019. End Sub
  1020. Private Sub CzxsGrid_DblClick()                            '修改当前编码记录
  1021.     Call Xgdqjl
  1022.   
  1023. End Sub
  1024. Private Sub Xgdqjl()                                       '修改当前编码记录
  1025.     Dim bln_tmp As Boolean
  1026.     
  1027.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  1028.     If Not Security_Log(Str_RightEdit, Xtczybm, 1, True, False) Then
  1029.         BcCommand.Enabled = False
  1030.     End If
  1031.     
  1032.     If CzxsGrid.Row < CzxsGrid.FixedRows Then
  1033.         Exit Sub
  1034.     End If
  1035.     
  1036.     Lrzt = 2
  1037.     bln_tmp = Cshlrxx(Lrzt)
  1038.     
  1039.     Call Toolbjzt
  1040.     
  1041.     If bln_tmp Then
  1042.         LrText(1).SetFocus
  1043.         LrText(0).Enabled = False
  1044.     End If
  1045. End Sub
  1046. Private Sub Toolbjzt()                                     'Toolbar状态(编辑状态)
  1047.     StTab.TabEnabled(1) = True
  1048.     StTab.Tab = 1
  1049.     Frame1.Enabled = True
  1050.     StTab.TabEnabled(0) = False
  1051.     CzxsGrid.Enabled = False
  1052.   
  1053.     With SzToolbar
  1054.         .Buttons("ymsz").Enabled = False
  1055.         .Buttons("dy").Enabled = False
  1056.         .Buttons("yl").Enabled = False
  1057.         .Buttons("zj").Enabled = False
  1058.         .Buttons("xg").Enabled = False
  1059.         .Buttons("sc").Enabled = False
  1060.         .Buttons("sx").Enabled = False
  1061.         .Buttons("cx").Enabled = False
  1062.     End With
  1063.   
  1064. End Sub
  1065. Private Sub Toolfbjzt()                                    'Toolbar状态(非编辑状态)
  1066.     StTab.TabEnabled(0) = True
  1067.     StTab.Tab = 0
  1068.     CzxsGrid.Enabled = True
  1069.     Frame1.Enabled = False
  1070.     StTab.TabEnabled(1) = False
  1071.     Lrzt = 0
  1072.     
  1073.     With SzToolbar
  1074.         .Buttons("ymsz").Enabled = True
  1075.         .Buttons("dy").Enabled = True
  1076.         .Buttons("yl").Enabled = True
  1077.         .Buttons("zj").Enabled = True
  1078.         .Buttons("xg").Enabled = True
  1079.         .Buttons("sc").Enabled = True
  1080.         .Buttons("sx").Enabled = True
  1081.         .Buttons("cx").Enabled = True
  1082.     End With
  1083.   
  1084. End Sub
  1085. Private Sub BcCommand_Click()                                           '保 存
  1086.     If Not Bclrsj Then
  1087.         Exit Sub
  1088.     End If
  1089.   
  1090.     If Lrzt = 2 Then
  1091.         Call Toolfbjzt
  1092.     End If
  1093.   
  1094. End Sub
  1095. Private Sub QxCommand_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)       '取消
  1096.   
  1097.     '避免执行Click程序
  1098.     Bln_Cancel = True
  1099.   
  1100.     Call Cancel
  1101.     
  1102. End Sub
  1103. Private Sub QxCommand_Click()                                                                         '取消
  1104.  
  1105.     If Bln_Cancel Then
  1106.         Bln_Cancel = False
  1107.         Exit Sub
  1108.     End If
  1109.  
  1110.     Call Cancel
  1111.     
  1112. End Sub
  1113. Private Sub Cancel()                                                                                  '取消
  1114.   
  1115.     '文本框加锁
  1116.     For jsqte = 0 To Max_Text_Index
  1117.         TextValiJudgeLock(jsqte) = True
  1118.     Next jsqte
  1119.   
  1120.     Call Toolfbjzt
  1121.     
  1122. End Sub
  1123. Private Sub CzxsGrid_BeforeMoveColumn(ByVal Col As Long, Position As Long)           '网格列发生移动时自动交换网格索引信息
  1124.     
  1125.     FnBln_RefreshArray Col, Position, GridStr(), GridInf()
  1126. End Sub
  1127. Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)   '表格格式设置(通用)
  1128.     
  1129.     Select Case Button.Key
  1130.         Case "bcgs"                                       '保存表格格式
  1131.             Call Bcwggs(CzxsGrid, GridCode, GridStr())
  1132.         Case "hfmrgs"                                     '恢复默认格式
  1133.             Call Hfmrgs(CzxsGrid, GridCode, GridStr())
  1134.         Case "szxsxm"                                     '设置显示项目
  1135.             Call Szxsxm(CzxsGrid, GridCode)
  1136.     End Select
  1137.     
  1138. End Sub
  1139. Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
  1140.     Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
  1141.     Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
  1142.     Bbxbtgs = 1                                          '报 表 小 标 题 行 数
  1143.     Bbbwhgs = 0                                          '报 表 表 尾 行 数
  1144.     ReDim Bbxbt(1 To Bbxbtgs)
  1145.     ReDim bbxbtzzxs(1 To Bbxbtgs)
  1146.     
  1147.     If Bbbwhgs <> 0 Then
  1148.         ReDim Bbbwh(1 To Bbbwhgs)
  1149.         ReDim Bbbwhzzxs(1 To Bbbwhgs)
  1150.     End If
  1151.     
  1152.     Bbzbt = ReportTitle
  1153.     Bbxbt(1) = " "
  1154.     bbxbtzzxs(1) = 0                                     '报表行组织形式(0-居左 1-居中 2-居右)
  1155.     
  1156.     Call Scyxsjb(CzxsGrid)                               '生成报表数据
  1157.     Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
  1158.   
  1159.     If Not bbylte Then
  1160.         Unload DY_Tybbyldy
  1161.     End If
  1162.     
  1163. End Sub
  1164. '************以下为文本框录入处理程序(固定不变部分)*************'
  1165. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  1166.     '以下为依据实际情况自定义部分[
  1167.   
  1168.         '在此填写文本框录入事后处理程序
  1169.    
  1170.     ']以上为依据实际情况自定义部分
  1171.     
  1172. End Sub
  1173. Private Sub LrText_Change(Index As Integer)
  1174.     '屏蔽程序改变控制
  1175.     If TextChangeLock Then
  1176.         Exit Sub
  1177.     End If
  1178.     
  1179.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  1180.     
  1181.     '限制字段录入长度
  1182.           
  1183.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  1184.     Call TextChangeLimit(LrText(Index), Textint(Index, 1))  '去掉无效字符
  1185.     Select Case Textint(Index, 1)
  1186.         Case 8, 11      '金额型
  1187.             Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  1188.         Case 9, 12      '数量型
  1189.             Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  1190.         Case 10          '单价型
  1191.             Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  1192.         Case Else        '其他小数类型控制
  1193.             If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  1194.                 Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  1195.             End If
  1196.     End Select
  1197.     '[<<
  1198.         If Index = 3 Then
  1199.             LrText(4) = LrText(3)
  1200.             LrText(4).Tag = LrText(3).Tag
  1201.             LrText(7) = LrText(3)
  1202.             LrText(7).Tag = LrText(3).Tag
  1203.         End If
  1204.     '>>]
  1205.     TextChangeLock = False '解锁
  1206.     
  1207. End Sub
  1208. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  1209.    
  1210.     Call TextShow(Index)
  1211.     CurTextIndex = Index
  1212.     LrText(Index).SelStart = Len(LrText(Index))
  1213.    
  1214. End Sub
  1215. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  1216.    
  1217.     Select Case KeyCode
  1218.          Case vbKeyF2
  1219.              Call Text_Help(Index)
  1220.     End Select
  1221.    
  1222. End Sub
  1223. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  1224.    
  1225.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  1226. End Sub
  1227. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点
  1228.     Dim RecTemp As New ADODB.Recordset
  1229.     '显示相应信息但不能进行有效性判断
  1230.     '[>>
  1231.     If Index = 0 And Lrzt = 1 Then '增加时,用户输入物料编码,显示此物料编码对应的记录
  1232.         Sqlstr = "SELECT * FROM Gy_V_material Where MNumber='" & Trim(LrText(0)) & "'"
  1233.         
  1234.         Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1235.         
  1236.         '记录如存在则读入其内容,否则提示记录已被其他人删除
  1237.         If Not RecTemp.EOF Then
  1238.             Call ShowData(RecTemp)
  1239.         End If
  1240.     End If
  1241.     '<<]
  1242. End Sub
  1243. Private Sub Timer1_Timer()
  1244.      Dim Sqlstr As String
  1245.      Timer1.Enabled = False
  1246.      Xt_Wait.Show
  1247.      Xt_Wait.Refresh
  1248.     
  1249.      '加快显示速度
  1250.      CzxsGrid.Redraw = False
  1251.     
  1252.      '生成查询结果
  1253.      Dim Str_QueryCondi As String
  1254.      Dim jsqte As Integer
  1255.     
  1256.      With Gy_MaterialQuery
  1257.          Str_QueryCondi = " where 1=1 "
  1258.          For jsqte = 0 To 5
  1259.             Select Case jsqte
  1260.               Case 0  '物料编码
  1261.                 If Trim(.LrText(0).Text) <> "" Then
  1262.                  Str_QueryCondi = Str_QueryCondi & " and MNumber like'%" & Trim(.LrText(0)) & "%'"
  1263.                 End If
  1264.               Case 1  '物料名称
  1265.                 If Trim(.LrText(1).Text) <> "" Then
  1266.                  Str_QueryCondi = Str_QueryCondi & " and mname like'%" & Trim(.LrText(1)) & "%'"
  1267.                 End If
  1268.               Case 2   '规格型号
  1269.                  If Trim(.LrText(2).Text) <> "" Then
  1270.                     Str_QueryCondi = Str_QueryCondi & " and model like'%" & Trim(.LrText(2)) & "%'"
  1271.                  End If
  1272.               Case 3    '采购分类
  1273.                 If Trim(.LrText(3).Text) <> "" Then
  1274.                     Str_QueryCondi = Str_QueryCondi & " and pursortcode= '" & Trim(.LrText(3).Tag) & "'"
  1275.                 End If
  1276.               Case 4    '库存分类
  1277.                 If Trim(.LrText(4).Text) <> "" Then
  1278.                     Str_QueryCondi = Str_QueryCondi & " and invsortcode= '" & Trim(.LrText(4).Tag) & "'"
  1279.                 End If
  1280.               Case 5    '仓库分类
  1281.                 If Trim(.LrText(5).Text) <> "" Then
  1282.                     Str_QueryCondi = Str_QueryCondi & " and whcode= '" & Trim(.LrText(5).Tag) & "'"
  1283.                 End If
  1284.             End Select
  1285.     
  1286.         Next
  1287.         If .Lrcomb(0).ListIndex = 1 Then
  1288.             Str_QueryCondi = Str_QueryCondi & " and stopflag=1 "
  1289.         ElseIf .Lrcomb(0).ListIndex = 2 Then
  1290.             Str_QueryCondi = Str_QueryCondi & " and stopflag=0 "
  1291.         End If
  1292.         If .Lrcomb(1).ListIndex > 0 Then
  1293.             Str_QueryCondi = Str_QueryCondi & " and abcsort='" & Trim(.Lrcomb(1).Text) & "'"
  1294.         End If
  1295.         
  1296.        '查询连接串
  1297.       Sqlstr = "SELECT * from Gy_v_material  " & Str_QueryCondi & " order by MNumber"
  1298.     
  1299.        Call Cxnrtcwg(Sqlstr)
  1300.       
  1301.      End With
  1302.    
  1303.     CzxsGrid.Redraw = True
  1304.     Xt_Wait.Hide
  1305. End Sub
  1306. Private Sub Tree_List_NodeClick(ByVal Node As MSComctlLib.Node)
  1307.     Dim sqlstringvalue As String
  1308.     sqlstringvalue = "SELECT * FROM Gy_V_material "
  1309.     If Tree_List.SelectedItem.Key = "r" Then
  1310.         Sqlstr = sqlstringvalue & " order by MNumber"
  1311.     Else
  1312.        Sqlstr = sqlstringvalue + " where  invsortcode like '" & Trim(Mid(Tree_List.SelectedItem.Key, 2)) & "%'" & " order by MNumber"
  1313.     End If
  1314.     Call Cxnrtcwg(Sqlstr)
  1315. End Sub
  1316. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)     '按钮提供帮助
  1317.     
  1318.     Call Text_Help(Index)
  1319.     
  1320. End Sub
  1321. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  1322.   
  1323.     If Not Textboolean(Index, 1) Then
  1324.         Exit Sub
  1325.     End If
  1326.    
  1327.     '调用帮助
  1328.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  1329.   
  1330.     '根据设置选择显示编码和名称,并进行存储
  1331.     If Len(Xtfhcs) <> 0 Then
  1332.         If Textint(Index, 3) = 1 Then
  1333.             LrText(Index).Text = Xtfhcsfz
  1334.             LrText(Index).Tag = Xtfhcs
  1335.         Else
  1336.             LrText(Index).Text = Xtfhcs
  1337.             LrText(Index).Tag = Xtfhcsfz
  1338.         End If
  1339.     End If
  1340.    
  1341.     LrText(Index).SetFocus
  1342.     
  1343. End Sub
  1344. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  1345.     '填写文本框得到焦点,进行相应信息处理程序
  1346.    
  1347. End Sub
  1348. Private Sub Wbkcsh()                          '录入文本框初始化
  1349.     Dim jsqte As Integer
  1350.   
  1351.     '最大录入文本框索引值
  1352.     Max_Text_Index = Textvar(1)
  1353.   
  1354.     ReDim TextValiJudgeLock(Max_Text_Index)
  1355.     
  1356.     For jsqte = 0 To Max_Text_Index
  1357.      
  1358.         If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  1359.             If Textboolean(jsqte, 1) Then
  1360.                 If jsqte <> 0 And Not Textboolean(jsqte, 3) Then
  1361.                     Load Ydcommand1(jsqte)
  1362.                 End If
  1363.                 Ydcommand1(jsqte).Visible = True
  1364.                 Ydcommand1(jsqte).Move LrText(jsqte).Left + LrText(jsqte).Width, LrText(jsqte).Top
  1365.             End If
  1366.             TextChangeLock = True
  1367.             LrText(jsqte).Text = ""
  1368.             LrText(jsqte).Tag = ""
  1369.             
  1370.             If Textint(jsqte, 5) <> 0 Then
  1371.                 LrText(jsqte).MaxLength = Textint(jsqte, 5)
  1372.             End If
  1373.             
  1374.             TextChangeLock = False
  1375.         End If
  1376.         
  1377.         TextValiJudgeLock(jsqte) = True
  1378.     Next jsqte
  1379.     
  1380. End Sub
  1381. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  1382.     Dim Sqlstr As String
  1383.     Dim Findrec As ADODB.Recordset
  1384.   
  1385.     '文本框内容未曾改变不进行有效性判断
  1386.     If TextValiJudgeLock(Index) Then
  1387.         TextYxxpd = True
  1388.         Exit Function
  1389.     End If
  1390.   
  1391.     '文本框内容为空认为有效,并清空其Tag值
  1392.     If Trim(LrText(Index)) = "" Then
  1393.         LrText(Index).Tag = ""
  1394.         Call Wbklrwbcl(Index)
  1395.         TextValiJudgeLock(Index) = True
  1396.         TextYxxpd = True
  1397.         Exit Function
  1398.     End If
  1399.   
  1400.     '可在此加入不做有效性判断的理由
  1401.   
  1402.     Select Case Textint(Index, 4)
  1403.         Case 1      '编码型
  1404.             Sqlstr = Trim(Textstr(Index, 5))
  1405.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  1406.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1407.          
  1408.             If Findrec.EOF Then
  1409.                 Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  1410.                 LrText(Index).SetFocus
  1411.                 Exit Function
  1412.             Else
  1413.                 Select Case Textint(Index, 3)
  1414.                     Case 0
  1415.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1416.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1417.                         End If
  1418.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1419.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1420.                         End If
  1421.                     Case 1
  1422.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1423.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1424.                         End If
  1425.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1426.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1427.                         End If
  1428.                 End Select
  1429.             End If
  1430.             
  1431.         Case 2      '日期型
  1432.             If IsDate(LrText(Index).Text) Then
  1433.                 LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  1434.                 If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  1435.                     LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  1436.                 End If
  1437.             Else
  1438.                 Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  1439.                 Call Xtxxts(Tsxx, 0, 1)
  1440.                 LrText(Index).SetFocus
  1441.                 Exit Function
  1442.             End If
  1443.             
  1444.         Case 3      '其他类型
  1445.         
  1446.     End Select
  1447.     
  1448.     '如果有效则加锁,用户不改变内容则不再进行有效性判断
  1449.     TextValiJudgeLock(Index) = True
  1450.     '调用文本框事后处理程序
  1451.     Call Wbklrwbcl(Index)
  1452.    
  1453.     '有效性判断通过则返回True
  1454.     TextYxxpd = True
  1455.    
  1456. End Function
  1457. '[<<
  1458. Private Sub Command1_Click()
  1459.     CzxsGrid.Row = CzxsGrid.FixedRows
  1460.     Call mmkn
  1461.     Lrzt = 2
  1462.     If Cshlrxx(Lrzt) Then
  1463.         LrText(1).SetFocus
  1464.         LrText(0).Enabled = False
  1465.     End If
  1466. End Sub
  1467. Private Sub Command2_Click()
  1468.     If CzxsGrid.Row = CzxsGrid.FixedRows Then
  1469.         Exit Sub
  1470.     Else
  1471.         CzxsGrid.Row = CzxsGrid.Row - 1
  1472.     End If
  1473.     Call mmkn
  1474.     Lrzt = 2
  1475.     If Cshlrxx(Lrzt) Then
  1476.         LrText(1).SetFocus
  1477.         LrText(0).Enabled = False
  1478.     End If
  1479. End Sub
  1480. Private Sub Command3_Click()
  1481.     If CzxsGrid.Row = CzxsGrid.Rows - 1 Then
  1482.         Exit Sub
  1483.     Else
  1484.         CzxsGrid.Row = CzxsGrid.Row + 1
  1485.     End If
  1486.     Call mmkn
  1487.     Lrzt = 2
  1488.     If Cshlrxx(Lrzt) Then
  1489.         LrText(1).SetFocus
  1490.         LrText(0).Enabled = False
  1491.     End If
  1492. End Sub
  1493. Private Sub Command4_Click()
  1494.     CzxsGrid.Row = CzxsGrid.Rows - 1
  1495.     Call mmkn
  1496.     Lrzt = 2
  1497.     If Cshlrxx(Lrzt) Then
  1498.         LrText(1).SetFocus
  1499.         LrText(0).Enabled = False
  1500.     End If
  1501. End Sub
  1502. Private Sub mmkn()
  1503.             If CzxsGrid.Rows = CzxsGrid.FixedRows Then
  1504.                Command1.Enabled = False    '首张
  1505.                Command2.Enabled = False     '上张
  1506.                Command3.Enabled = False     '下张
  1507.                Command4.Enabled = False     '末张
  1508.             ElseIf CzxsGrid.Rows - 1 = CzxsGrid.FixedRows Then
  1509.                Command1.Enabled = False    '首张
  1510.                Command2.Enabled = False     '上张
  1511.                Command3.Enabled = False     '下张
  1512.                Command4.Enabled = False     '末张
  1513.             ElseIf CzxsGrid.Row = CzxsGrid.Rows - 1 Then
  1514.                Command1.Enabled = True     '首张
  1515.                Command2.Enabled = True      '上张
  1516.                Command3.Enabled = False     '下张
  1517.                Command4.Enabled = False     '末张
  1518.             ElseIf CzxsGrid.Row = CzxsGrid.FixedRows Then
  1519.                Command1.Enabled = False    '首张
  1520.                Command2.Enabled = False     '上张
  1521.                Command3.Enabled = True      '下张
  1522.                Command4.Enabled = True     '末张
  1523.             ElseIf CzxsGrid.Row <> CzxsGrid.Rows - 1 And CzxsGrid.Row <> CzxsGrid.FixedRows Then
  1524.                Command1.Enabled = True   '首张
  1525.                Command2.Enabled = True     '上张
  1526.                Command3.Enabled = True     '下张
  1527.                Command4.Enabled = True     '末张
  1528.             End If
  1529. End Sub
  1530. '>>]
  1531. Private Sub Tree_List_BeforeLabelEdit(Cancel As Integer)
  1532.     Cancel = 1
  1533. End Sub
  1534. Private Sub TreeListValue()
  1535.     Dim aDo_Sort As New Recordset
  1536.     Tree_List.Nodes.Clear
  1537.     Tree_List.Nodes.Add , 4, "T", "库存物料分类", "T"
  1538.     Set aDo_Sort = Cw_DataEnvi.DataConnect.Execute("select * from kf_invsort     order by invsortcode")
  1539.     With aDo_Sort
  1540.         Do While Not .EOF
  1541.             If Trim("" & aDo_Sort!ParentCode) = "" Then
  1542.                 Set nodX = Tree_List.Nodes.Add("T", 4, "T" & Trim(.Fields("invsortCode")), "(" & Trim(.Fields("invsortCode")) & ")" & Trim(.Fields("invsortName")), "C")
  1543.             Else
  1544.                 Set nodX = Tree_List.Nodes.Add("T" & Trim(!ParentCode), 4, "T" & Trim(.Fields("invsortCode")), "(" & Trim(.Fields("invsortCode")) & ")" & Trim(.Fields("invsortName")), "C")
  1545.             End If
  1546.             nodX.EnsureVisible
  1547.             .MoveNext
  1548.         Loop
  1549.     End With
  1550. End Sub
  1551. Private Sub imgSplitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  1552.     
  1553.     With imgSplitter
  1554.         picSplitter.Move .Left, .Top, .Width / 2, .Height - 20
  1555.     End With
  1556.     picSplitter.Visible = True
  1557.     mbMoving = True
  1558. End Sub
  1559. Private Sub imgSplitter_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  1560.     
  1561.     Dim sglPos As Single
  1562.     If mbMoving Then
  1563.         sglPos = X + imgSplitter.Left
  1564.         If sglPos < sglSplitLimit Then
  1565.             picSplitter.Left = sglSplitLimit
  1566.         ElseIf sglPos > Me.Width - sglSplitLimit Then
  1567.             picSplitter.Left = Me.Width - sglSplitLimit
  1568.         Else
  1569.             picSplitter.Left = sglPos
  1570.         End If
  1571.     End If
  1572. End Sub
  1573. Private Sub imgSplitter_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  1574.     
  1575.     SizeControls picSplitter.Left
  1576.     picSplitter.Visible = False
  1577.     mbMoving = False
  1578. End Sub
  1579.  Sub SizeControls(X As Single)
  1580.     Dim St_tab As Integer
  1581.     On Error Resume Next
  1582.     '设置 Width 属性
  1583.     If X < 2000 Then X = 2000
  1584.     If X > (Me.Width - 5000) Then X = Me.Width - 5000
  1585.     Tree_List.Width = X - 100
  1586.     imgSplitter.Left = X
  1587.     StTab.Left = X + 40
  1588.     StTab.Width = Me.Width - (Tree_List.Width + 300)
  1589.     StTab.Top = Tree_List.Top
  1590.     St_tab = StTab.Tab
  1591.     StTab.Tab = 0
  1592.     CzxsGrid.Width = StTab.Width - CzxsGrid.Left * 2
  1593.     Frame1.Width = StTab.Width - CzxsGrid.Left * 2
  1594.     StTab.Tab = St_tab
  1595.     imgSplitter.Top = Tree_List.Top
  1596.     imgSplitter.Height = Tree_List.Height
  1597. End Sub