frm_RKD.frm
上传用户:yexiandon
上传日期:2022-07-12
资源大小:895k
文件大小:19k
源码类别:

百货/超市行业

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "Msflxgrd.ocx"
  3. Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
  4. Begin VB.Form frm_RKD 
  5.    BorderStyle     =   3  'Fixed Dialog
  6.    Caption         =   "入库单"
  7.    ClientHeight    =   6120
  8.    ClientLeft      =   45
  9.    ClientTop       =   330
  10.    ClientWidth     =   9405
  11.    Icon            =   "frm_RKD.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   6120
  16.    ScaleWidth      =   9405
  17.    ShowInTaskbar   =   0   'False
  18.    StartUpPosition =   1  '所有者中心
  19.    Begin VB.ComboBox cboClerk 
  20.       Height          =   300
  21.       ItemData        =   "frm_RKD.frx":000C
  22.       Left            =   4560
  23.       List            =   "frm_RKD.frx":000E
  24.       Style           =   2  'Dropdown List
  25.       TabIndex        =   18
  26.       Top             =   120
  27.       Width           =   1335
  28.    End
  29.    Begin VB.TextBox txtNum 
  30.       BackColor       =   &H8000000F&
  31.       BorderStyle     =   0  'None
  32.       Enabled         =   0   'False
  33.       Height          =   225
  34.       Left            =   3240
  35.       Locked          =   -1  'True
  36.       TabIndex        =   9
  37.       Text            =   "0"
  38.       Top             =   5715
  39.       Width           =   1215
  40.    End
  41.    Begin VB.TextBox txtM 
  42.       BackColor       =   &H8000000F&
  43.       BorderStyle     =   0  'None
  44.       Enabled         =   0   'False
  45.       Height          =   225
  46.       Left            =   5520
  47.       Locked          =   -1  'True
  48.       TabIndex        =   8
  49.       Text            =   "0"
  50.       Top             =   5715
  51.       Width           =   1215
  52.    End
  53.    Begin VB.TextBox txtAdmin 
  54.       BackColor       =   &H8000000F&
  55.       BorderStyle     =   0  'None
  56.       Enabled         =   0   'False
  57.       Height          =   225
  58.       Left            =   960
  59.       Locked          =   -1  'True
  60.       TabIndex        =   7
  61.       Top             =   5715
  62.       Width           =   1215
  63.    End
  64.    Begin VB.CommandButton cmdExit 
  65.       Cancel          =   -1  'True
  66.       Caption         =   "退出(&X)"
  67.       Height          =   300
  68.       Left            =   7920
  69.       TabIndex        =   3
  70.       Top             =   5670
  71.       Width           =   975
  72.    End
  73.    Begin VB.TextBox idnumber 
  74.       Appearance      =   0  'Flat
  75.       BackColor       =   &H8000000F&
  76.       Height          =   240
  77.       Left            =   7680
  78.       Locked          =   -1  'True
  79.       TabIndex        =   4
  80.       TabStop         =   0   'False
  81.       Top             =   90
  82.       Width           =   1575
  83.    End
  84.    Begin VB.TextBox txtDATA 
  85.       BorderStyle     =   0  'None
  86.       Height          =   270
  87.       Left            =   8640
  88.       TabIndex        =   2
  89.       Top             =   1125
  90.       Visible         =   0   'False
  91.       Width           =   495
  92.    End
  93.    Begin VB.TextBox txtExp 
  94.       Height          =   300
  95.       Left            =   600
  96.       TabIndex        =   1
  97.       Top             =   540
  98.       Width           =   5295
  99.    End
  100.    Begin MSFlexGridLib.MSFlexGrid GD1 
  101.       Height          =   4530
  102.       Left            =   120
  103.       TabIndex        =   6
  104.       Top             =   945
  105.       Width           =   9195
  106.       _ExtentX        =   16219
  107.       _ExtentY        =   7990
  108.       _Version        =   393216
  109.       Rows            =   16
  110.       Cols            =   9
  111.       RowHeightMin    =   275
  112.       AllowBigSelection=   0   'False
  113.       HighLight       =   0
  114.       AllowUserResizing=   1
  115.       FormatString    =   "序|食品名称|食品类别|食品属性|单位|数量|单价|金额|备注"
  116.    End
  117.    Begin MSComCtl2.DTPicker DTPicker2 
  118.       Height          =   300
  119.       Left            =   600
  120.       TabIndex        =   13
  121.       Top             =   135
  122.       Width           =   1335
  123.       _ExtentX        =   2355
  124.       _ExtentY        =   529
  125.       _Version        =   393216
  126.       CustomFormat    =   "yyyy-MM-dd"
  127.       Format          =   24903683
  128.       CurrentDate     =   38718
  129.    End
  130.    Begin MSComCtl2.DTPicker DTPicker1 
  131.       Height          =   300
  132.       Left            =   2520
  133.       TabIndex        =   17
  134.       Top             =   120
  135.       Width           =   1335
  136.       _ExtentX        =   2355
  137.       _ExtentY        =   529
  138.       _Version        =   393216
  139.       CustomFormat    =   "HH:mm:ss"
  140.       Format          =   24903682
  141.       CurrentDate     =   38718
  142.    End
  143.    Begin VB.Label lblxcd 
  144.       Caption         =   "日期"
  145.       Height          =   195
  146.       Index           =   0
  147.       Left            =   120
  148.       TabIndex        =   16
  149.       Top             =   195
  150.       Width           =   375
  151.    End
  152.    Begin VB.Label lblxcd 
  153.       Caption         =   "经手人"
  154.       Height          =   195
  155.       Index           =   2
  156.       Left            =   3960
  157.       TabIndex        =   15
  158.       Top             =   195
  159.       Width           =   615
  160.    End
  161.    Begin VB.Label lblxcd 
  162.       Caption         =   "时间"
  163.       Height          =   195
  164.       Index           =   5
  165.       Left            =   2040
  166.       TabIndex        =   14
  167.       Top             =   195
  168.       Visible         =   0   'False
  169.       Width           =   375
  170.    End
  171.    Begin VB.Label Label1 
  172.       Caption         =   "数量合计"
  173.       Height          =   195
  174.       Left            =   2400
  175.       TabIndex        =   12
  176.       Top             =   5715
  177.       Width           =   735
  178.    End
  179.    Begin VB.Label Label2 
  180.       Caption         =   "金额合计"
  181.       Height          =   195
  182.       Left            =   4680
  183.       TabIndex        =   11
  184.       Top             =   5715
  185.       Width           =   735
  186.    End
  187.    Begin VB.Label Label3 
  188.       Caption         =   "制单人"
  189.       Height          =   195
  190.       Left            =   360
  191.       TabIndex        =   10
  192.       Top             =   5715
  193.       Width           =   615
  194.    End
  195.    Begin VB.Label Label5 
  196.       Caption         =   "单号"
  197.       Height          =   165
  198.       Left            =   7320
  199.       TabIndex        =   5
  200.       Top             =   135
  201.       Width           =   375
  202.    End
  203.    Begin VB.Label lblxcd 
  204.       Caption         =   "摘要"
  205.       Height          =   195
  206.       Index           =   4
  207.       Left            =   120
  208.       TabIndex        =   0
  209.       Top             =   600
  210.       Width           =   375
  211.    End
  212. End
  213. Attribute VB_Name = "frm_RKD"
  214. Attribute VB_GlobalNameSpace = False
  215. Attribute VB_Creatable = False
  216. Attribute VB_PredeclaredId = True
  217. Attribute VB_Exposed = False
  218. Option Explicit
  219. Const Bpname = 1
  220. Const Bguige = 2
  221. Const Bppcd = 3
  222. Const Bdw = 4
  223. Const Bnum = 5
  224. Const Bprice = 6
  225. Const Bje = 7
  226. Const Bbak = 8
  227. Public Dmodi As Boolean
  228. Private Sub cmdExit_Click()
  229.     Unload Me
  230. End Sub
  231. Private Sub Form_Load()
  232.     With GD1
  233.         .ColWidth(0) = 300
  234.         .ColWidth(Bpname) = 1400
  235.         .ColWidth(Bguige) = 1400
  236.         .ColWidth(Bppcd) = 1400
  237.         .ColWidth(Bdw) = 600
  238.         .ColWidth(Bnum) = 600
  239.         .ColWidth(Bprice) = 600
  240.         .ColWidth(Bje) = 800
  241.         .ColWidth(Bbak) = 1200
  242.     Dim i As Integer
  243.         .TextMatrix(0, 0) = "序"
  244.     For i = 1 To .Rows - 1
  245.         .TextMatrix(i, 0) = i
  246.         .Row = i
  247.         .Col = Bje
  248.         .CellBackColor = &HFFF800
  249.         .Col = Bguige
  250.         .CellBackColor = &HFFF800
  251.         .Col = Bppcd
  252.         .CellBackColor = &HFFF800
  253.         .Col = Bdw
  254.         .CellBackColor = &HFFF800
  255.     Next i
  256.         .Row = 1
  257.         .Col = 1
  258.     End With
  259.     If Dmodi Then
  260.         LoadModi (Pidn)
  261.     Else
  262.         DTPicker2.Value = Gdate
  263.         idnumber = IDnum("RKD", "XCDZ")
  264.         txtAdmin = Admin
  265.     End If
  266. End Sub
  267. Private Sub Form_Unload(Cancel As Integer)
  268. If qx(0) Then
  269. Dim str As String
  270. str = MsgBox(vbCr & "请选择(是/否)保存此单据?按<ESC>放弃本次操作。" & vbCr, vbYesNoCancel, "保存提示:")
  271. Select Case str
  272.     Case "6"
  273.         If Chk Then
  274.             If Dmodi Then ModiData Else SaveData
  275.             Dmodi = False
  276.         Else
  277.             Cancel = 1
  278.             GD1.SetFocus
  279.         End If
  280.     Case "7"
  281.         Dmodi = False
  282.     Case "2"
  283.         Cancel = 1
  284. End Select
  285. End If
  286. End Sub
  287. Private Sub GD1_Click()
  288. Select Case GD1.Col
  289. Case Bje, Bguige, Bppcd, Bdw
  290. Case Else
  291.     txtDATA = GD1
  292.     Modi
  293. End Select
  294. End Sub
  295. Private Sub GD1_KeyPress(KeyAscii As Integer)
  296. Select Case GD1.Col
  297. Case Bje, Bguige, Bppcd, Bdw
  298. Case Else
  299.     Select Case KeyAscii
  300.         Case 0 To 32
  301.             KeyAscii = 0
  302.             txtDATA = GD1
  303.             txtDATA.Move GD1.CellLeft + GD1.Left + 20, GD1.CellTop + GD1.Top + 20, GD1.CellWidth - 8, GD1.CellHeight - 8
  304.             txtDATA.Visible = True
  305.             txtDATA.SetFocus
  306.             txtDATA.SelStart = Len(txtDATA.Text)
  307.         Case Else
  308.             txtDATA = Chr(KeyAscii)
  309.             txtDATA.Move GD1.CellLeft + GD1.Left + 20, GD1.CellTop + GD1.Top + 20, GD1.CellWidth - 8, GD1.CellHeight - 8
  310.             txtDATA.Visible = True
  311.             txtDATA.SetFocus
  312.             txtDATA.SelStart = Len(txtDATA.Text)
  313.     End Select
  314. End Select
  315. End Sub
  316. Private Sub GD1_LeaveCell()
  317. If txtDATA.Visible Then
  318. Select Case GD1.Col
  319.     Case Bnum, Bprice
  320.         If TOnum(txtDATA) <> 0 Then GD1 = TOnum(txtDATA) Else GD1 = ""
  321.         txtDATA = ""
  322.     Case Bbak
  323.         GD1 = txtDATA
  324.         txtDATA.Text = ""
  325.     Case Else
  326.         If txtDATA = "" Then GD1 = txtDATA: txtDATA = ""
  327.     End Select
  328.     txtDATA.Visible = False
  329. End If
  330. End Sub
  331. Private Sub GD1_RowColChange()
  332.     Dim cs, cc As Double
  333.     Dim i As Integer
  334.     cs = 0
  335.     cc = 0
  336.     For i = 1 To GD1.Rows - 1
  337.         If TOnum(GD1.TextMatrix(i, Bnum)) <> 0 Or TOnum(GD1.TextMatrix(i, Bprice)) <> 0 Then
  338.             GD1.TextMatrix(i, Bje) = TOnum(GD1.TextMatrix(i, Bprice)) * TOnum(GD1.TextMatrix(i, Bnum))
  339.         End If
  340.         cs = cs + TOnum(GD1.TextMatrix(i, Bnum))
  341.         cc = cc + TOnum(GD1.TextMatrix(i, Bje))
  342.     Next i
  343.     txtNum = cs
  344.     txtM = cc
  345. End Sub
  346. Private Sub txtDATA_DblClick()
  347. Set obj = Me
  348.     Select Case GD1.Col
  349.     Case Bpname
  350.         Tbl = "goods"
  351.     Case Else
  352.     Exit Sub
  353.     End Select
  354. frmFindSP.Show vbModal
  355. End Sub
  356. Private Sub txtdata_GotFocus()
  357. txtDATA.Visible = True
  358. End Sub
  359. Private Sub txtDATA_KeyDown(KeyCode As Integer, Shift As Integer)
  360. Select Case KeyCode
  361.     Case 38 'UP
  362.         If GD1.Row > 1 Then
  363.             GD1.Row = GD1.Row - 1
  364.             MovIn
  365.         End If
  366.     Case 40 'DOWN
  367.         If GD1.Row < GD1.Rows - 1 Then
  368.             GD1.Row = GD1.Row + 1
  369.             MovIn
  370.         End If
  371.     Case 37 'LEFT
  372.         If GD1.Col > 1 Then
  373.             If txtDATA.SelStart = 0 Then
  374.                 GD1.Col = GD1.Col - 1
  375.                 MovIn
  376.             End If
  377.         End If
  378.     Case 39 'RIGHT
  379.         If txtDATA.SelStart = Len(txtDATA.Text) Then
  380.             If GD1.Col < GD1.Cols - 1 Then
  381.                 GD1.Col = GD1.Col + 1
  382.                 MovIn
  383.             Else
  384.                 If GD1.Col = GD1.Cols - 1 And GD1.Row < GD1.Rows - 1 Then
  385.                     GD1.Row = GD1.Row + 1
  386.                     GD1.Col = 1
  387.                     MovIn
  388.                 End If
  389.             End If
  390.         End If
  391.     Case 13 'ENTER
  392.         txtDATA_DblClick
  393. End Select
  394. End Sub
  395. Private Sub txt_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
  396.     If KeyCode = vbKeyDelete Then txt(Index) = ""
  397. End Sub
  398. Private Sub txt_DblClick(Index As Integer)
  399.      Fdtxt = txt(Index)
  400.         Set obj = txt(Index)
  401.         Select Case Index
  402.         Case 1
  403.             Tbl = "kehu"
  404.         Case 3, 2
  405.             Tbl = "zhiyuan"
  406.         End Select
  407.         frmFind.Show vbModal
  408.      Fdtxt = ""
  409. End Sub
  410. Private Sub txt_KeyPress(Index As Integer, KeyAscii As Integer)
  411.     If KeyAscii = 13 Then txt_DblClick (Index)
  412. End Sub
  413. Private Sub txt_LostFocus(Index As Integer)
  414. Select Case Index
  415. Dim Rs As New ADODB.Recordset
  416. Case 1
  417. Tbl = "kehu"
  418.     Rs.Open "select bname from " & Tbl & " WHERE DEL = 0 and BNAME ='" & txt(Index) & "'", CnStr & DBName, adOpenStatic, adLockReadOnly
  419.     If Rs.EOF Then txt(Index) = ""
  420.     Rs.Close
  421. Case 2, 3
  422. Tbl = "zhiyuan"
  423.     Rs.Open "select bname from " & Tbl & " WHERE DEL = 0 and BNAME ='" & txt(Index) & "'", CnStr & DBName, adOpenStatic, adLockReadOnly
  424.     If Rs.EOF Then txt(Index) = ""
  425.     Rs.Close
  426. End Select
  427. End Sub
  428. Function LoadModi(IdnStr As String)
  429. idnumber.Text = IdnStr
  430. Dim Rsndx As New ADODB.Recordset
  431. Rsndx.Open "select * from XCDZ where idn = '" & IdnStr & "'", CnStr & DBName, adOpenDynamic, adLockPessimistic
  432. DTPicker2.Value = Rsndx("Fdate")
  433. 'txt(1).Text = TOstr(Rsndx("Fkehu"), "kehu")
  434. txt(2).Text = TOstr(Rsndx("Fjsr"), "zhiyuan")
  435. 'txt(3).Text = TOstr(Rsndx("Fbgy"), "zhiyuan")
  436. 'Combo2 = Rsndx("Ftype")
  437. 'txtAdmin.Text = toAnyStr(Rsndx("Fmanager"), "dbadmin", "dbu")
  438. 'txtNO = Rsndx("Sid")
  439. txtExp = Rsndx("Fexp")
  440. Rsndx.Close
  441. With GD1
  442. Rsndx.Open "SELECT * FROM XCDF WHERE IDN = '" & IdnStr & "'", CnStr & DBName, adOpenStatic, adLockPessimistic
  443. Dim i, ii As Integer
  444. For i = 1 To 15
  445.     For ii = 1 To 8
  446.     .TextMatrix(i, ii) = ""
  447.     Next
  448. Next
  449. ii = Rsndx.RecordCount
  450. For i = 1 To ii
  451.     .TextMatrix(TOnum(Rsndx("Fline")), Bpname) = TOstr(Rsndx("Fgoods"), "goods")
  452.     .TextMatrix(TOnum(Rsndx("Fline")), Bguige) = toAnyStr(Rsndx("Fgoods"), "goods", "Fggxh")
  453.     .TextMatrix(TOnum(Rsndx("Fline")), Bppcd) = toAnyStr(Rsndx("Fgoods"), "goods", "Fppcd")
  454.     .TextMatrix(TOnum(Rsndx("Fline")), Bdw) = TOstr(toAnyStr(Rsndx("Fgoods"), "goods", "Fdw"), "danwei")
  455.     .TextMatrix(TOnum(Rsndx("Fline")), Bnum) = Rsndx("Fnum")
  456.     .TextMatrix(TOnum(Rsndx("Fline")), Bprice) = Rsndx("Fprice")
  457.     .TextMatrix(TOnum(Rsndx("Fline")), Bje) = Rsndx("Fje")
  458.     .TextMatrix(TOnum(Rsndx("Fline")), Bbak) = Rsndx("Fbak")
  459.     Rsndx.MoveNext
  460. Next
  461. Rsndx.Close
  462. End With
  463. GD1_RowColChange
  464. End Function
  465. Private Sub MovIn()
  466. txtDATA.Visible = False
  467. GD1.SetFocus
  468. End Sub
  469. Private Sub Modi()
  470. txtDATA = GD1
  471. txtDATA.Move GD1.CellLeft + GD1.Left + 20, GD1.CellTop + GD1.Top + 20, GD1.CellWidth - 8, GD1.CellHeight - 8
  472. txtDATA.Visible = True
  473. txtDATA.SetFocus
  474. txtDATA.SelStart = Len(txtDATA.Text)
  475. End Sub
  476. Private Sub ModiData()
  477. On Error Resume Next
  478. Dim i, ii As Integer
  479. Dim cnn As New ADODB.Connection
  480. cnn.ConnectionString = CnStr & DBName
  481. cnn.CursorLocation = adUseClient
  482. cnn.Open
  483. cnn.BeginTrans
  484. With GD1
  485. For i = 1 To .Rows - 1
  486.     If TOnum(.TextMatrix(i, Bnum)) <> 0 And .TextMatrix(i, Bpname) <> "" Then
  487.         cnn.Execute ("UPDATE XCDF SET Fgoods='" & _
  488.                         TOid(.TextMatrix(i, Bpname), "goods") & "',Fnum='" & _
  489.                         TOnum(.TextMatrix(i, Bnum)) & "',Fprice='" & _
  490.                         TOnum(.TextMatrix(i, Bprice)) & "',Fbak='" & _
  491.                         .TextMatrix(i, Bbak) & "' WHERE IDN ='" & idnumber & "' AND Fline='" & i & "'")
  492.     End If
  493. Next
  494.        cnn.Execute ("UPDATE XCDZ SET Fdate='" & _
  495.                         Format(DTPicker2, "yyyy-MM-dd") & "',Fjsr='" & _
  496.                         TOid(txt(2), "zhiyuan") & "',Fexp='" & _
  497.                         txtExp & "' WHERE IDN ='" & idnumber & "'")
  498. End With
  499. If Err.Number <> 0 Then
  500.     cnn.RollbackTrans
  501.     MsgBox "修改未成功!" & vbCr & Err.Description
  502. Else
  503.     cnn.CommitTrans
  504.     MsgBox "此单据已修改成功!", , "恭喜:"
  505. End If
  506. cnn.Close
  507. End Sub
  508. Private Sub SaveData()
  509. On Error Resume Next
  510. Dim i, ii As Integer
  511. Dim cnn As New ADODB.Connection
  512. cnn.ConnectionString = CnStr & DBName
  513. cnn.CursorLocation = adUseClient
  514. cnn.Open
  515. cnn.BeginTrans
  516.     
  517. '出入库单附
  518. 'cnn.Execute ("CREATE TABLE XCDF     (ID int IDENTITY primary key," & _
  519.                                     "IDN varchar(17) not null," & _
  520.                                     "Fline int not null," & _
  521.                                     "Fgoods int not null," & _
  522.                                     "Finout int default 1," & _
  523.                                     "Fnum float(20) default 0," & _
  524.                                     "Fprice float(20) default 0," & _
  525.                                     "Fje as Fnum * Fprice," & _
  526.                                     "Fbak varchar(50))")
  527. With GD1
  528. For i = 1 To .Rows - 1
  529.     If TOnum(.TextMatrix(i, Bnum)) <> 0 And .TextMatrix(i, Bpname) <> "" Then
  530.         '客户1
  531.         cnn.Execute ("INSERT INTO XCDF " & _
  532.                 "(IDN,Fline,Fgoods,Finout,Fnum,Fprice,Fbak) " & _
  533.                 "VALUES('" & idnumber.Text & "','" & _
  534.                         i & "','" & _
  535.                         TOid(.TextMatrix(i, Bpname), "goods") & "','" & _
  536.                         1 & "','" & _
  537.                         TOnum(.TextMatrix(i, Bnum)) & "','" & _
  538.                         TOnum(.TextMatrix(i, Bprice)) & "','" & _
  539.                         .TextMatrix(i, Bbak) & "')")
  540.     End If
  541. Next
  542. '出入库单主
  543. 'cnn.Execute ("CREATE TABLE XCDZ     (ID int identity primary key," & _
  544.                                     "IDN varchar(17) not null," & _
  545.                                     "Fcls int not null," & _
  546.                                     "Fred BIT not null," & _
  547.                                     "Fdate varchar(10)," & _
  548.                                     "Fcarno int," & _
  549.                                     "Fkehu int," & _
  550.                                     "Fjsr int," & _
  551.                                     "Fbgy int," & _
  552.                                     "Fmanager int," & _
  553.                                     "Ftype varchar(10) default ''," & _
  554.                                     "Fpiao varchar(15) default ''," & _
  555.                                     "Ftotje float(20) default 0," & _
  556.                                     "Fexp varchar(50) default '')")
  557. cnn.Execute ("INSERT INTO XCDZ (IDN,Fcls,Fred,Fdate,Fjsr,Ftotje,Fexp)" & _
  558.                         " VALUES('" & idnumber.Text & "','" & _
  559.                         1 & "','" & _
  560.                         0 & "','" & _
  561.                         Format(DTPicker2.Value, "yyyy-MM-dd") & "','" & _
  562.                         TOid(txt(2), "zhiyuan") & "'," & _
  563.                         TOnum(txtM) & ",'" & _
  564.                         txtExp & "')")
  565. End With
  566. If Err.Number <> 0 Then
  567. cnn.RollbackTrans
  568. MsgBox "保存未成功!" & vbCr & Err.Description
  569. Else
  570. cnn.CommitTrans
  571. MsgBox "此单据已保存成功!", , "恭喜:"
  572. End If
  573. cnn.Close
  574. End Sub
  575. Function Chk() As Boolean
  576. Dim i As Integer
  577. Dim ii As Integer
  578. ii = 0
  579. If Trim(txt(2)) = "" Then
  580.     MsgBox "错误,经手人不能为空!"
  581.     Chk = False
  582.     Exit Function
  583. End If
  584. With GD1
  585. For i = 1 To 15
  586.     If .TextMatrix(i, Bpname) <> "" Then
  587.     ii = ii + 1
  588.         If TOnum(.TextMatrix(i, Bnum)) = 0 Then
  589.             MsgBox "第" & i & "行错误,数量不能为零!"
  590.             .Row = i
  591.             Chk = False
  592.             Exit Function
  593.         ElseIf TOnum(.TextMatrix(i, Bprice)) = 0 Then
  594.             MsgBox "第" & i & "行错误,单价不能为零!"
  595.             .Row = i
  596.             Chk = False
  597.             Exit Function
  598.         ElseIf Len(.TextMatrix(i, Bbak)) > 25 Then
  599.             MsgBox "第" & i & "行错误,备注应小于25个字符!"
  600.             .Row = i
  601.             Chk = False
  602.             Exit Function
  603.         End If
  604.     End If
  605. Next i
  606. End With
  607. If ii > 0 Then
  608.     Chk = True
  609. Else
  610.     MsgBox "没有要保存的数据!"
  611.     Chk = False
  612. End If
  613. End Function