⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmpdinput.frm

📁 通用书店管理系统
💻 FRM
📖 第 1 页 / 共 3 页
字号:
         If IsVacancy(x(i, 4)) Then
            sqlstring = "Insert into MonthlyPDInput (chrPDdate,chrBookNo,chrBookName,chrStorageNo,intAmount) values " & _
                        "(#" & Format(strDate, "yyyy-mm-dd") & "#,'" & x(i, 1) & "','" & x(i, 2) & "','" & x(i, 3) & "',0)"
         Else
            sqlstring = "Insert into MonthlyPDInput (chrPDdate,chrBookNo,chrBookName,chrStorageNo,intAmount) values " & _
                        "(#" & Format(strDate, "yyyy-mm-dd") & "#,'" & x(i, 1) & "','" & x(i, 2) & "','" & x(i, 3) & "'," & x(i, 4) & ")"
         End If
         cN.Execute sqlstring
      End If
    Next
    cN.CommitTrans
    Call clearAll
    blnIsModified = False
    setFormState (modBrowsing)
    Exit Sub
SaveErr:
    cN.RollbackTrans
    MsgBox "保存记录出错:" & err.Description, vbInformation
End Sub

Private Sub cmdSearch_Click(Index As Integer)
  Dim arrQuery
  
  Select Case Index
    Case 0
        Call g_CommonSelect("       库区号   |   库区名称   ", "select ChrStorageNo,ChrStorageName  from StorageSection  " & _
                                 " where ChrStorageNo like '%" & txtFields(0).Text & "%'", "0,1", , , , -1, arrQuery)
        If TypeName(arrQuery) = "Variant()" Then
             txtFields(0).Text = arrQuery(0, 0)
             txtFields(1).Text = arrQuery(0, 1)
        End If
    
  End Select
End Sub

Public Sub cmdUndo_Click()
   '询问是否放弃当前内容
    If blnIsModified Then
        If MsgBox("当前修改的内容会丢失。确认要取消吗?", vbOKCancel, "询问") <> vbOK Then Exit Sub
    End If
    clearAll
    setFormState (ModNormal)
    blnIsModified = False
End Sub

Private Sub Form_Activate()
  SetToolBar ("1100X01X101X111X1")
  
  If intFormState = modadd Then
    SetToolBar ("0011X00X001X111X1")
  End If
  
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Dim strBookNo As String
  Dim intNo As Integer
  On Error GoTo err
  If Shift = 2 And KeyCode = vbKeyF Then
     strBookNo = InputBox("请输入书号", "查询", strOldBookNo)
     If Trim(strBookNo) = "" Then Exit Sub
     strOldBookNo = strBookNo
     intNo = x.Find(0, 1, strBookNo, XORDER_ASCEND, XCOMP_DEFAULT)
     If intNo <> -1 Then
        tdbStorageInput.Bookmark = intNo
     Else
        MsgBox "没有书号为:" & strBookNo & " 的图书记录!", vbInformation
        tdbStorageInput.Bookmark = 0
     End If
  End If
  Exit Sub
err:
End Sub

Private Sub Form_Load()
  x.ReDim 0, -1, 0, 7
  Set tdbStorageInput.Array = x
  tdbStorageInput.ReBind
End Sub


Private Sub setFormState(intState As Integer)   '设置窗体的不同状态
    
    intFormState = intState
    Select Case intState
        Case ModNormal
            Me.Caption = "盘点信息录入"
            setTxtWritable ("10")
    
            tdbStorageInput.AllowAddNew = False
            tdbStorageInput.AllowUpdate = False
            tdbStorageInput.AllowDelete = False
            SetToolBar ("1100X01X111X111X1")
    
    
        Case modBrowsing
            Me.Caption = "盘点信息录入——浏览"
            setTxtWritable ("10")
    
            tdbStorageInput.AllowAddNew = False
            tdbStorageInput.AllowUpdate = False
            tdbStorageInput.AllowDelete = False
            SetToolBar ("1100X01X111X111X1")
        Case modadd
            Me.Caption = "盘点信息录入——新增"
    
            setTxtWritable ("10")
    
            tdbStorageInput.AllowAddNew = False
            tdbStorageInput.AllowUpdate = True
            tdbStorageInput.AllowDelete = False
            SetToolBar ("0011X00X001X111X1")
        Case modEdit
            Me.Caption = "盘点信息录入——修改"
            setTxtWritable ("10")

            tdbStorageInput.AllowAddNew = False
            tdbStorageInput.AllowUpdate = True
            tdbStorageInput.AllowDelete = False
            SetToolBar ("0011X00X001X111X1")
    End Select

End Sub

Private Sub clearAll()          '清除所有可填数据的位置
    Dim i As Integer
    
    For i = 0 To txtFields.UBound
        txtFields(i).Text = ""
    Next i
    
    x.ReDim 0, -1, 0, 7
    tdbStorageInput.ReBind

End Sub

Private Sub setTxtWritable(strIn As String)     '设置各文本框的可写属性
    Dim i As Integer
    
    For i = 0 To txtFields.UBound
        If Mid(strIn, i + 1, 1) = 1 Then
            txtFields(i).Locked = False
            txtFields(i).BackColor = RGB(255, 255, 255)
        Else
            txtFields(i).Locked = True
            txtFields(i).BackColor = gColor_LockedText
        End If
    Next i
End Sub

'--------------------------------------------------------------------------------
'功能:    设置TDBGRID列的属性 如对齐方式、是否锁定、背景色等

'参数说明:

'          intCol           列号
'          intAlignment     对齐方式  0 左对齐    1 右对齐    2 居中(默认为2)
'          blnLock          是否锁定列  TRUE 锁定  FALSE 可编辑 (默认为FALSE)
'          strBackColor     列背景色  默认为白色
'          blnVisible       是否可见

'返回值:  ()
'--------------------------------------------------------------------------------
Private Sub SetTdbGridStatus(ByVal intCol As Integer, Optional intAlignment = 2, _
                            Optional blnlock = False, Optional strBackColor = vbWhite, Optional blnVisible = True)
  On Error Resume Next

    
  tdbStorageInput.Columns(intCol).Locked = blnlock
  tdbStorageInput.Columns(intCol).Alignment = intAlignment
  tdbStorageInput.Columns(intCol).BackColor = strBackColor
  tdbStorageInput.Columns(intCol).Visible = blnVisible
End Sub

Private Sub tdbStorageInput_HeadClick(ByVal ColIndex As Integer)
  Select Case tdbStorageInput.Columns(ColIndex).Caption
    Case "书号"
      If blnOrder(1) Then
         x.QuickSort 0, x.UpperBound(1), 1, XORDER_ASCEND, XTYPE_STRING
         blnOrder(1) = False
      Else
         x.QuickSort 0, x.UpperBound(1), 1, XORDER_DESCEND, XTYPE_STRING
         blnOrder(1) = True
      End If
    Case "书名"
      If blnOrder(2) Then
         x.QuickSort 0, x.UpperBound(1), 2, XORDER_ASCEND, XTYPE_STRING
         blnOrder(2) = False
      Else
         x.QuickSort 0, x.UpperBound(1), 2, XORDER_DESCEND, XTYPE_STRING
         blnOrder(2) = True
      End If
      
    Case "数量"
      If blnOrder(4) Then
         x.QuickSort 0, x.UpperBound(1), 4, XORDER_ASCEND, XTYPE_INTEGER
         blnOrder(4) = False
      Else
         x.QuickSort 0, x.UpperBound(1), 4, XORDER_DESCEND, XTYPE_INTEGER
         blnOrder(4) = True
      End If
      
    Case "图书类型"
      If blnOrder(5) Then
         x.QuickSort 0, x.UpperBound(1), 5, XORDER_ASCEND, XTYPE_STRING
         blnOrder(5) = False
      Else
         x.QuickSort 0, x.UpperBound(1), 5, XORDER_DESCEND, XTYPE_STRING
         blnOrder(5) = True
      End If
      
    Case "出版社"
      If blnOrder(6) Then
         x.QuickSort 0, x.UpperBound(1), 6, XORDER_ASCEND, XTYPE_STRING
         blnOrder(6) = False
      Else
         x.QuickSort 0, x.UpperBound(1), 6, XORDER_DESCEND, XTYPE_STRING
         blnOrder(6) = True
      End If
      
    Case "供货商"
      If blnOrder(7) Then
         x.QuickSort 0, x.UpperBound(1), 7, XORDER_ASCEND, XTYPE_STRING
         blnOrder(7) = False
      Else
         x.QuickSort 0, x.UpperBound(1), 7, XORDER_DESCEND, XTYPE_STRING
         blnOrder(7) = True
      End If
      
  End Select
  tdbStorageInput.ReBind
End Sub

Private Sub tdbStorageInput_KeyPress(KeyAscii As Integer)
  '限制输入条件必须为数字或某些特殊字符
    Select Case tdbStorageInput.Col
      Case 4 '数量
        KeyAscii = ValiText(KeyAscii, vbExpInteger, "", tdbStorageInput.Columns(tdbStorageInput.Col).Text)
      Case Else
        Exit Sub
    End Select
End Sub


Private Sub TxtFields_Change(Index As Integer)
  Dim sqlstring As String
  Dim rstmp As New ADODB.Recordset
  
  On Error GoTo err
  Select Case Index
    Case 0
      sqlstring = "select * from StorageSection where chrStorageNo='" & Trim(txtFields(0)) & "'"
      rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
      If Not rstmp.EOF Then
        txtFields(1).Text = rstmp.Fields("chrStorageName").Value
      Else
        txtFields(1).Text = ""
      End If
      
  End Select
  
  Exit Sub
err:
  MsgBox err.Description, vbInformation
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -