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

企业管理

开发平台:

Visual Basic

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