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

百货/超市行业

开发平台:

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_CFM 
  5.    BorderStyle     =   3  'Fixed Dialog
  6.    Caption         =   "采购单"
  7.    ClientHeight    =   5610
  8.    ClientLeft      =   45
  9.    ClientTop       =   330
  10.    ClientWidth     =   9405
  11.    Icon            =   "frm_CFM.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   5610
  16.    ScaleWidth      =   9405
  17.    ShowInTaskbar   =   0   'False
  18.    StartUpPosition =   1  '所有者中心
  19.    Begin VB.CommandButton CancelButton 
  20.       Caption         =   "取消"
  21.       Height          =   300
  22.       Left            =   8160
  23.       TabIndex        =   9
  24.       Top             =   5160
  25.       Width           =   975
  26.    End
  27.    Begin VB.CommandButton OKButton 
  28.       Caption         =   "确定"
  29.       Height          =   300
  30.       Left            =   7080
  31.       TabIndex        =   8
  32.       Top             =   5160
  33.       Width           =   975
  34.    End
  35.    Begin VB.ComboBox cboClerk 
  36.       Height          =   300
  37.       ItemData        =   "frm_CFM.frx":000C
  38.       Left            =   4560
  39.       List            =   "frm_CFM.frx":000E
  40.       Style           =   2  'Dropdown List
  41.       TabIndex        =   5
  42.       Top             =   120
  43.       Width           =   1335
  44.    End
  45.    Begin VB.TextBox txtNum 
  46.       BackColor       =   &H8000000F&
  47.       BorderStyle     =   0  'None
  48.       Enabled         =   0   'False
  49.       Height          =   225
  50.       Left            =   1080
  51.       Locked          =   -1  'True
  52.       TabIndex        =   11
  53.       Text            =   "0"
  54.       Top             =   5160
  55.       Width           =   1215
  56.    End
  57.    Begin VB.TextBox txtM 
  58.       BackColor       =   &H8000000F&
  59.       BorderStyle     =   0  'None
  60.       Enabled         =   0   'False
  61.       Height          =   225
  62.       Left            =   3360
  63.       Locked          =   -1  'True
  64.       TabIndex        =   10
  65.       Text            =   "0"
  66.       Top             =   5160
  67.       Width           =   1215
  68.    End
  69.    Begin VB.TextBox txtDATA 
  70.       BorderStyle     =   0  'None
  71.       Height          =   270
  72.       Left            =   8640
  73.       TabIndex        =   6
  74.       Top             =   600
  75.       Visible         =   0   'False
  76.       Width           =   495
  77.    End
  78.    Begin MSComCtl2.DTPicker DTP 
  79.       Height          =   300
  80.       Index           =   0
  81.       Left            =   600
  82.       TabIndex        =   1
  83.       Top             =   135
  84.       Width           =   1335
  85.       _ExtentX        =   2355
  86.       _ExtentY        =   529
  87.       _Version        =   393216
  88.       CustomFormat    =   "yyyy-MM-dd"
  89.       Format          =   25559043
  90.       CurrentDate     =   38718
  91.    End
  92.    Begin MSFlexGridLib.MSFlexGrid GD1 
  93.       Height          =   4530
  94.       Left            =   120
  95.       TabIndex        =   7
  96.       Top             =   480
  97.       Width           =   9195
  98.       _ExtentX        =   16219
  99.       _ExtentY        =   7990
  100.       _Version        =   393216
  101.       Rows            =   16
  102.       Cols            =   9
  103.       RowHeightMin    =   275
  104.       AllowBigSelection=   0   'False
  105.       HighLight       =   0
  106.       AllowUserResizing=   1
  107.       FormatString    =   "序|配件名称|规格型号|ID|单位|数量|单价|金额|备注"
  108.    End
  109.    Begin MSComCtl2.DTPicker DTP 
  110.       Height          =   300
  111.       Index           =   1
  112.       Left            =   2520
  113.       TabIndex        =   3
  114.       Top             =   120
  115.       Width           =   1335
  116.       _ExtentX        =   2355
  117.       _ExtentY        =   529
  118.       _Version        =   393216
  119.       CustomFormat    =   "HH:mm:ss"
  120.       Format          =   25559042
  121.       CurrentDate     =   38718
  122.    End
  123.    Begin VB.Label Label1 
  124.       Caption         =   "数量合计"
  125.       Height          =   195
  126.       Left            =   240
  127.       TabIndex        =   13
  128.       Top             =   5160
  129.       Width           =   735
  130.    End
  131.    Begin VB.Label Label2 
  132.       Caption         =   "金额合计"
  133.       Height          =   195
  134.       Left            =   2520
  135.       TabIndex        =   12
  136.       Top             =   5160
  137.       Width           =   735
  138.    End
  139.    Begin VB.Label lblxcd 
  140.       Caption         =   "时间"
  141.       Height          =   195
  142.       Index           =   5
  143.       Left            =   2040
  144.       TabIndex        =   2
  145.       Top             =   195
  146.       Visible         =   0   'False
  147.       Width           =   375
  148.    End
  149.    Begin VB.Label lblxcd 
  150.       Caption         =   "经手人"
  151.       Height          =   195
  152.       Index           =   2
  153.       Left            =   3960
  154.       TabIndex        =   4
  155.       Top             =   195
  156.       Width           =   615
  157.    End
  158.    Begin VB.Label lblxcd 
  159.       Caption         =   "日期"
  160.       Height          =   195
  161.       Index           =   0
  162.       Left            =   120
  163.       TabIndex        =   0
  164.       Top             =   195
  165.       Width           =   375
  166.    End
  167. End
  168. Attribute VB_Name = "frm_CFM"
  169. Attribute VB_GlobalNameSpace = False
  170. Attribute VB_Creatable = False
  171. Attribute VB_PredeclaredId = True
  172. Attribute VB_Exposed = False
  173. '****************************************************************************
  174. '人人为我,我为人人
  175. '枕善居收藏整理
  176. '发布日期:2008/01/21
  177. '描    述:汽车维修管理系统SQL2000版
  178. '网    站:http://www.Mndsoft.com/  (VB6源码博客)
  179. '网    站:http://www.VbDnet.com/   (VB.NET源码博客,主要基于.NET2005)
  180. 'e-mail  :Mndsoft@163.com
  181. 'e-mail  :Mndsoft@126.com
  182. 'OICQ    :88382850
  183. '          如果您有新的好的代码别忘记给枕善居哦!
  184. '****************************************************************************
  185. Option Explicit
  186. Const Bpname = 1
  187. Const Bguige = 2
  188. Const Bppcd = 3
  189. Const Bdw = 4
  190. Const Bnum = 5
  191. Const Bprice = 6
  192. Const Bje = 7
  193. Const Bbak = 8
  194. Public mvarViewType As gxcViewType
  195. Public mvarID As String
  196. Public OK As Boolean
  197. Private Sub CancelButton_Click()
  198. OK = False
  199. Unload Me
  200. End Sub
  201. Public Sub AllClerksToCombo(ByRef cbo As ComboBox)
  202.   Dim i As Long
  203.   Dim objTypes As New Recordset
  204.   cbo.Clear '清除当前的列表内容
  205.   Set objTypes = g_Conn.Execute("Select clkID,clkName from Clerk")
  206.   For i = 1 To objTypes.RecordCount
  207.     Call cbo.AddItem(objTypes(1), i - 1)
  208.     cbo.ItemData(i - 1) = objTypes(0)
  209.     objTypes.MoveNext
  210.   Next i
  211. End Sub
  212. Private Sub DTP_Change(Index As Integer)
  213. If Index = 0 Then DTP(1).Value = DTP(0).Value Else DTP(0).Value = DTP(1).Value
  214. End Sub
  215. Private Sub Form_Load()
  216.     With GD1
  217.         .ColWidth(0) = 300
  218.         .ColWidth(Bpname) = 1400
  219.         .ColWidth(Bguige) = 1400
  220.         .ColWidth(Bppcd) = 0
  221.         .ColWidth(Bdw) = 600
  222.         .ColWidth(Bnum) = 600
  223.         .ColWidth(Bprice) = 600
  224.         .ColWidth(Bje) = 800
  225.         .ColWidth(Bbak) = 2500
  226.     Dim i As Integer
  227.         .TextMatrix(0, 0) = "序"
  228.     For i = 1 To .Rows - 1
  229.         .TextMatrix(i, 0) = i
  230.         .Row = i
  231.         .Col = Bje
  232.         .CellBackColor = &HFFF800
  233.         .Col = Bguige
  234.         .CellBackColor = &HFFF800
  235.         .Col = Bppcd
  236.         .CellBackColor = &HFFF800
  237.         .Col = Bdw
  238.         .CellBackColor = &HFFF800
  239.     Next i
  240.         .Row = 1
  241.         .Col = 1
  242.     End With
  243. AllClerksToCombo cboClerk
  244. Select Case mvarViewType
  245.     Case vtadd
  246.         DTP(0).Value = Now()
  247.         DTP(1).Value = Now()
  248.     Case vtModify
  249.         SetDefaultValue GetID(mvarID)
  250.     Case vtinfo
  251.         SetDefaultValue GetID(mvarID)
  252.         SetStatus
  253. End Select
  254. End Sub
  255. Function SetDefaultValue(IdnStr As String)
  256. Dim RSmain, RSsub As Recordset
  257. Dim i, ii As Integer
  258. Set RSmain = g_Conn.Execute("select * from Store where ID = " & IdnStr)
  259. DTP(0) = RSmain("Fdate")
  260. DTP(1) = RSmain("Fdate")
  261.   For i = 0 To cboClerk.ListCount - 1
  262.     If cboClerk.ItemData(i) = RSmain("cID") Then
  263.       cboClerk.ListIndex = i         '客户类型Id
  264.       Exit For
  265.     End If
  266.   Next i
  267. Set RSmain = Nothing
  268. Set RSsub = g_Conn.Execute("SELECT * FROM SubStore WHERE sID = " & IdnStr)
  269. With GD1
  270. For i = 1 To GD1.Rows - 1
  271.     For ii = 1 To GD1.Cols - 1
  272.     .TextMatrix(i, ii) = ""
  273.     Next
  274. Next
  275. ii = RSsub.RecordCount
  276. For i = 1 To ii
  277.     .TextMatrix(Val(RSsub("Line")), Bpname) = GetValueByID("PeiJian", "ID", RSsub("pID"), "pName")
  278.     .TextMatrix(Val(RSsub("Line")), Bguige) = GetValueByID("PeiJian", "ID", RSsub("pID"), "pType")
  279.     .TextMatrix(Val(RSsub("Line")), Bppcd) = IdnStr
  280.     .TextMatrix(Val(RSsub("Line")), Bdw) = GetValueByID("PeiJian", "ID", RSsub("pID"), "pUnit")
  281.     .TextMatrix(Val(RSsub("Line")), Bnum) = RSsub("pNum")
  282.     .TextMatrix(Val(RSsub("Line")), Bprice) = RSsub("pPrice")
  283.     .TextMatrix(Val(RSsub("Line")), Bbak) = RSsub("pDemo")
  284.     RSsub.MoveNext
  285. Next
  286. Set RSsub = Nothing
  287. End With
  288. GD1_RowColChange
  289. End Function
  290. Private Sub SetStatus()
  291.   Dim ctl As Control
  292.   Dim intBorderStyle As Integer
  293.   Dim lngbkColor As Long
  294.   Dim boolLocked As Boolean
  295.   
  296.     intBorderStyle = 0  '3D
  297.     lngbkColor = &H8000000F
  298.     boolLocked = True
  299.   
  300.   For Each ctl In Controls
  301.     If (TypeOf ctl Is TextBox) Then
  302.       ctl.BorderStyle = intBorderStyle
  303.       ctl.BackColor = lngbkColor
  304.       ctl.Locked = boolLocked
  305.     ElseIf (TypeOf ctl Is ComboBox) Or _
  306.             (TypeOf ctl Is DTPicker) Or _
  307.             (TypeOf ctl Is CheckBox) Or _
  308.             (TypeOf ctl Is MSFlexGrid) Then
  309.       ctl.Enabled = Not boolLocked
  310.     End If
  311.   Next
  312. End Sub
  313. Private Sub GD1_Click()
  314. Select Case GD1.Col
  315. Case Bje, Bguige, Bppcd, Bdw
  316. Case Else
  317.     txtDATA = GD1
  318.     Modi
  319. End Select
  320. End Sub
  321. Private Sub GD1_KeyPress(KeyAscii As Integer)
  322. Select Case GD1.Col
  323. Case Bje, Bguige, Bppcd, Bdw
  324. Case Else
  325.     Select Case KeyAscii
  326.         Case 0 To 32
  327.             KeyAscii = 0
  328.             txtDATA = GD1
  329.             txtDATA.Move GD1.CellLeft + GD1.Left + 20, GD1.CellTop + GD1.Top + 20, GD1.CellWidth - 8, GD1.CellHeight - 8
  330.             txtDATA.Visible = True
  331.             txtDATA.SetFocus
  332.             txtDATA.SelStart = Len(txtDATA.Text)
  333.         Case Else
  334.             txtDATA = Chr(KeyAscii)
  335.             txtDATA.Move GD1.CellLeft + GD1.Left + 20, GD1.CellTop + GD1.Top + 20, GD1.CellWidth - 8, GD1.CellHeight - 8
  336.             txtDATA.Visible = True
  337.             txtDATA.SetFocus
  338.             txtDATA.SelStart = Len(txtDATA.Text)
  339.     End Select
  340. End Select
  341. End Sub
  342. Private Sub GD1_LeaveCell()
  343. If txtDATA.Visible Then
  344. Select Case GD1.Col
  345.     Case Bnum, Bprice
  346.         If Val(txtDATA) <> 0 Then GD1 = Val(txtDATA) Else GD1 = ""
  347.         txtDATA = ""
  348.     Case Bbak
  349.         GD1 = txtDATA
  350.         txtDATA.Text = ""
  351.     Case Bpname
  352.         If txtDATA = "" Then
  353.             Dim i As Integer
  354.             For i = 1 To 100
  355.                 GD1.TextMatrix(GD1.Row, 1) = ""
  356.             Next
  357.         End If
  358.     Case Else
  359.     End Select
  360.     txtDATA.Visible = False
  361. End If
  362. End Sub
  363. Private Sub GD1_RowColChange()
  364.     Dim cs, cc As Double
  365.     Dim i As Integer
  366.     cs = 0
  367.     cc = 0
  368.     For i = 1 To GD1.Rows - 1
  369.         If Val(GD1.TextMatrix(i, Bnum)) <> 0 Or Val(GD1.TextMatrix(i, Bprice)) <> 0 Then
  370.             GD1.TextMatrix(i, Bje) = Val(GD1.TextMatrix(i, Bprice)) * Val(GD1.TextMatrix(i, Bnum))
  371.         End If
  372.         cs = cs + Val(GD1.TextMatrix(i, Bnum))
  373.         cc = cc + Val(GD1.TextMatrix(i, Bje))
  374.     Next i
  375.     txtNum = cs
  376.     txtM = cc
  377. End Sub
  378. Private Sub OKButton_Click()
  379. Dim ErrMsg As String
  380. Dim i, newID As Integer
  381. On Error Resume Next
  382.   Select Case mvarViewType
  383.   Case vtadd    '添加客户
  384. If Not Chk Then Exit Sub
  385.     g_Conn.BeginTrans
  386.     newID = NextID("Store", "ID")
  387.         g_Conn.Execute ("insert into Store(ID,Type,Fdate,cID) " & _
  388.                 "Values('" & newID & "','1','" & DTP(1).Value & _
  389.                 "','" & cboClerk.ItemData(cboClerk.ListIndex) & "')")
  390.         For i = 1 To GD1.Rows - 1
  391.         If GD1.TextMatrix(i, 1) <> "" Then g_Conn.Execute ("insert into SubStore(sID,Line,pID,pNum,pPrice,pDemo) " & _
  392.                 "Values('" & newID & "','" & i & "','" & GD1.TextMatrix(i, Bppcd) & _
  393.                 "'," & Val(GD1.TextMatrix(i, Bnum)) & "," & Val(GD1.TextMatrix(i, Bprice)) & ",'" & GD1.TextMatrix(i, Bbak) & "')")
  394.         Next
  395.         If Err.Number = 0 Then g_Conn.CommitTrans Else g_Conn.RollbackTrans: MsgBox Err.Description
  396.   Case vtModify '修改客户信息
  397. If Not Chk Then Exit Sub
  398.     g_Conn.BeginTrans
  399.     newID = NextID("Store", "ID")
  400.         g_Conn.Execute ("Update Store set Fdate='" & DTP(1).Value & _
  401.                 "',cID='" & cboClerk.ItemData(cboClerk.ListIndex) & "' Where ID='" & GetID(mvarID) & "'")
  402.         For i = 1 To GD1.Rows - 1
  403.         If GD1.TextMatrix(i, 1) <> "" Then g_Conn.Execute ("Update SubStore Set pID='" & GD1.TextMatrix(i, Bppcd) & _
  404.                 "',pNum=" & Val(GD1.TextMatrix(i, Bnum)) & ",pPrice=" & Val(GD1.TextMatrix(i, Bprice)) & ",pDemo='" & GD1.TextMatrix(i, Bbak) & _
  405.                 "' Where sID='" & GetID(mvarID) & "' and Line='" & i & "'")
  406.         Next
  407.         If Err.Number = 0 Then g_Conn.CommitTrans Else g_Conn.RollbackTrans: MsgBox Err.Description
  408.   Case Else
  409.   End Select
  410.   OK = True
  411.   Unload Me
  412. End Sub
  413. Private Sub txtDATA_DblClick()
  414. Dim obj As New CpName
  415. If frmFindSP.Rel("select pName,pType,ID,pUnit,pNum from PeiJian where pName like '%" & txtDATA.Text & "%'", obj) = True Then
  416. txtDATA.Text = obj.pName
  417. GD1.TextMatrix(GD1.Row, 1) = txtDATA.Text
  418. GD1.TextMatrix(GD1.Row, 2) = obj.pType
  419. GD1.TextMatrix(GD1.Row, 3) = obj.pid
  420. GD1.TextMatrix(GD1.Row, 4) = obj.pUnit
  421. GD1.TextMatrix(GD1.Row, 5) = obj.pNum
  422. txtDATA.Visible = False
  423. GD1.SetFocus
  424. GD1.Col = 5
  425. End If
  426. End Sub
  427. Private Sub txtdata_GotFocus()
  428. txtDATA.Visible = True
  429. End Sub
  430. Private Sub txtDATA_KeyDown(KeyCode As Integer, Shift As Integer)
  431. Select Case KeyCode
  432.     Case 38 'UP
  433.         If GD1.Row > 1 Then
  434.             GD1.Row = GD1.Row - 1
  435.             MovIn
  436.         End If
  437.     Case 40 'DOWN
  438.         If GD1.Row < GD1.Rows - 1 Then
  439.             GD1.Row = GD1.Row + 1
  440.             MovIn
  441.         End If
  442.     Case 37 'LEFT
  443.         If GD1.Col > 1 Then
  444.             If txtDATA.SelStart = 0 Then
  445.                 GD1.Col = GD1.Col - 1
  446.                 MovIn
  447.             End If
  448.         End If
  449.     Case 39 'RIGHT
  450.         If txtDATA.SelStart = Len(txtDATA.Text) Then
  451.             If GD1.Col < GD1.Cols - 1 Then
  452.                 GD1.Col = GD1.Col + 1
  453.                 MovIn
  454.             Else
  455.                 If GD1.Col = GD1.Cols - 1 And GD1.Row < GD1.Rows - 1 Then
  456.                     GD1.Row = GD1.Row + 1
  457.                     GD1.Col = 1
  458.                     MovIn
  459.                 End If
  460.             End If
  461.         End If
  462.     Case 13 'ENTER
  463.         txtDATA_DblClick
  464. End Select
  465. End Sub
  466. Private Sub MovIn()
  467. txtDATA.Visible = False
  468. GD1.SetFocus
  469. End Sub
  470. Private Sub Modi()
  471. txtDATA = GD1
  472. txtDATA.Move GD1.CellLeft + GD1.Left + 20, GD1.CellTop + GD1.Top + 20, GD1.CellWidth - 8, GD1.CellHeight - 8
  473. txtDATA.Visible = True
  474. txtDATA.SetFocus
  475. txtDATA.SelStart = Len(txtDATA.Text)
  476. End Sub
  477. Function Chk() As Boolean
  478. Dim i As Integer
  479. Dim ii As Integer
  480. ii = 0
  481. If cboClerk.Text = "" Then
  482.     MsgBox "错误,经手人不能为空!"
  483.     Chk = False
  484.     Exit Function
  485. End If
  486. With GD1
  487. For i = 1 To 15
  488.     If .TextMatrix(i, Bpname) <> "" Then
  489.     ii = ii + 1
  490.         If Val(.TextMatrix(i, Bnum)) = 0 Then
  491.             MsgBox "第" & i & "行错误,数量不能为零!"
  492.             .Row = i
  493.             Chk = False
  494.             Exit Function
  495.         ElseIf Val(.TextMatrix(i, Bprice)) = 0 Then
  496.             MsgBox "第" & i & "行错误,单价不能为零!"
  497.             .Row = i
  498.             Chk = False
  499.             Exit Function
  500.         ElseIf Len(.TextMatrix(i, Bbak)) > 25 Then
  501.             MsgBox "第" & i & "行错误,备注应小于25个字符!"
  502.             .Row = i
  503.             Chk = False
  504.             Exit Function
  505.         End If
  506.     End If
  507. Next i
  508. End With
  509. If ii > 0 Then
  510.     Chk = True
  511. Else
  512.     MsgBox "没有要保存的数据!"
  513.     Chk = False
  514. End If
  515. End Function