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

📄 main_rcyw_tsxs.frm

📁 是基于C#语言的一个图书综合管理系统的开发案例,相当实用
💻 FRM
📖 第 1 页 / 共 3 页
字号:
  If MS1.CellWidth > 0 And MS1.CellHeight > 0 Then
   Text1.Width = MS1.CellWidth
   Text1.Height = MS1.CellHeight
   Text1.Left = MS1.CellLeft + MS1.Left
   Text1.Top = MS1.CellTop + MS1.Top
  End If
  X = MS1.TextMatrix(MS1.FixedRows, MS1.Col)
  Y = MS1.TextMatrix(MS1.Row, 0)
  p = MS1.TextMatrix(MS1.Row, MS1.Col)
  Text1.text = MS1.text
  Text1.SelStart = 0
  Text1.SelLength = Len(Text1.text)
 End If
End Sub
Private Sub MS1_RowColChange()     '格式化金额
  For i = 1 To 100
   If MS1.TextMatrix(i, 1) <> "" Then
    MS1.TextMatrix(i, 7) = Format(MS1.TextMatrix(i, 7), "#0.00")
    'Format 函数返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。
    MS1.TextMatrix(MS1.Row, 9) = Val(MS1.TextMatrix(MS1.Row, 8)) * Val(MS1.TextMatrix(MS1.Row, 7)) * Zj
    'Val 函数返回包含于字符串内的数字,字符串中是一个适当类型的数值。
    MS1.TextMatrix(i, 9) = Format(MS1.TextMatrix(i, 9), "#0.00")
   End If
  Next i
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = vbKeyReturn Then   '按回车键
   Text1.text = MS1.text
   Adodc3.RecordSource = "select * from kcb where 条形码='" + MS1.TextMatrix(MS1.Row, 2) + "'"
   Adodc3.Refresh
   If Adodc3.Recordset.RecordCount > 0 Then     '当记录大于零时
     If MS1.Col = 2 Then
      With Adodc3.Recordset
      '赋值给MS1表格
      If .Fields("书号") <> "" Then MS1.TextMatrix(MS1.Row, 1) = .Fields("书号")
      If .Fields("条形码") <> "" Then MS1.TextMatrix(MS1.Row, 2) = .Fields("条形码")
      If .Fields("书名") <> "" Then MS1.TextMatrix(MS1.Row, 3) = .Fields("书名")
      If .Fields("作者") <> "" Then MS1.TextMatrix(MS1.Row, 4) = .Fields("作者")
      If .Fields("出版社") <> "" Then MS1.TextMatrix(MS1.Row, 5) = .Fields("出版社")
      If .Fields("图书类别") <> "" Then MS1.TextMatrix(MS1.Row, 6) = .Fields("图书类别")
      If .Fields("单价") <> "" Then MS1.TextMatrix(MS1.Row, 7) = .Fields("单价")
'      If .Fields("单价") <> "" Then MS1.TextMatrix(MS1.Row, 8) = .Fields("单价")
      
      MS1.Col = 8
      Text1.SetFocus
      End With
     End If
   End If
   If Adodc1.Recordset.RecordCount > 0 Then     '当记录大于零时
     If MS1.Col = 1 Then
      With Adodc1.Recordset
      '赋值给MS1表格
      If .Fields("书号") <> "" Then MS1.TextMatrix(MS1.Row, 1) = .Fields("书号")
      If .Fields("条形码") <> "" Then MS1.TextMatrix(MS1.Row, 2) = .Fields("条形码")
      If .Fields("书名") <> "" Then MS1.TextMatrix(MS1.Row, 3) = .Fields("书名")
      If .Fields("作者") <> "" Then MS1.TextMatrix(MS1.Row, 4) = .Fields("作者")
      If .Fields("出版社") <> "" Then MS1.TextMatrix(MS1.Row, 5) = .Fields("出版社")
      If .Fields("图书类别") <> "" Then MS1.TextMatrix(MS1.Row, 6) = .Fields("图书类别")
      If .Fields("单价") <> "" Then MS1.TextMatrix(MS1.Row, 7) = .Fields("单价")
'      If .Fields("单价") <> "" Then MS1.TextMatrix(MS1.Row, 8) = .Fields("单价")

      MS1.Col = 8
      Text1.SetFocus
      End With
     End If
     Grid1.Visible = False
    If MS1.Col = 9 Then
     MS1.Row = MS1.Row + 1
     MS1.Col = 1
    Else
     If MS1.Col + 1 <= MS1.Cols - 1 Then
        MS1.Col = MS1.Col + 1
      Else
        If MS1.Row + 1 <= MS1.Rows - 1 Then
           MS1.Row = MS1.Row + 1
           MS1.Col = 1
        End If
     End If
    End If
   End If
  End If
  If KeyCode = vbKeyUp Then    '按KeyUp键
    If MS1.Row > 1 Then MS1.Row = MS1.Row - 1
  End If
  If KeyCode = vbKeyDown And (MS1.TextMatrix(MS1.Row, 1)) <> "" Then   '按KeyDown键
    If MS1.Row < 99 Then MS1.Row = MS1.Row + 1
  End If
  If KeyCode = vbKeyLeft Then   '按KeyLeft 键
   If Text1.text <> "" Then
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1.text)
    'Len 函数返回 Long,其中包含字符串内字符的数目,或是存储一变量所需的字节数。
   End If
   If MS1.Col - 9 <= MS1.Cols + 1 Then
    MS1.Col = MS1.Col - 1
    If MS1.Col = 0 Then MS1.Col = 1
   Else
    If MS1.Row + 1 <= MS1.Row - 1 Then
     MS1.Row = MS1.Row + 1
     MS1.Col = 1
    End If
   End If
  End If
  If KeyCode = vbKeyRight Then   '按KeyRight 键
   If Text1.text <> "" Then
      Text1.SelStart = 0
      Text1.SelLength = Len(Text1.text)
   End If
   If MS1.Col + 1 <= MS1.Cols - 1 Then
     MS1.Col = MS1.Col + 1
    Else
     If MS1.Row + 1 <= MS1.Rows - 1 Then
      MS1.Row = MS1.Row + 1
      MS1.Col = 1
     End If
   End If
  End If
  If KeyCode = vbKeyPageDown And MS1.Col = 1 Then     '按KeyPageDown键
   Adodc1.RecordSource = "select * from kcb order by 书号"
   Adodc1.Refresh
   Grid1.Visible = True
   Grid1.SetFocus
  End If
End Sub

Private Sub Text1_Change()
 MS1.text = Text1.text     '赋值给MS1.text
 If MS1.Col = 1 Then
  '按书号查询库存图书信息
  Adodc1.RecordSource = "select * from kcb where 书号 like +'" + Text1.text + "'+'%'order by 书号"
  Adodc1.Refresh
  If Text1.text = "" Then     '当text1.text为空时
    Grid1.Visible = False     'grid1不可见
   Else
    If Adodc1.Recordset.RecordCount > 0 Then     '当记录大于零时
      Grid1.Visible = True     'grid1可见
      Text1.Visible = True
      Text1.SetFocus
     Else
      Grid1.Visible = False
    End If
  End If
 End If
 If MS1.Col = 7 Then MS1.TextMatrix(MS1.Row, 9) = Val(MS1.TextMatrix(MS1.Row, 8)) * Val(MS1.TextMatrix(MS1.Row, 7)) * Zj
 Dim a, B As Single
For i = 1 To 101
    If IsNumeric(MS1.TextMatrix(i, 8)) And IsNumeric(MS1.TextMatrix(i, 8)) Then
        If Combo1.text = "全价" Then
            MS1.TextMatrix(i, 9) = MS1.TextMatrix(i, 8) * MS1.TextMatrix(i, 7)
        Else
            MS1.TextMatrix(i, 9) = MS1.TextMatrix(i, 8) * MS1.TextMatrix(i, 7) * (Combo1.ListIndex / 10)
        End If
    End If
   a = Val(MS1.TextMatrix(i, 9)) + a
   B = Val(MS1.TextMatrix(i, 8)) + B
   If MS1.TextMatrix(i, 1) <> "" And MS1.TextMatrix(i, 8) <> "" Then pz.Caption = i
 Next i
 hjje.Caption = a     '计算合计金额
 hjsl.Caption = B     '计算合计数量
 If Combo1.text = "" Then
  zhje.Caption = a     '计算折后金额
 Else
 Call Combo1_Click   '计算折后金额
  'Left 函数返回 Variant (String),其中包含字符串中从左边算起指定数量的字符
 End If
End Sub
Private Sub CmdReg_Click()   '登记
 '查询所有销售数据,并按票号排序
 Adodc2.RecordSource = "select * from xsb order by 票号"
 Adodc2.Refresh
 '创建销售票号
 If Adodc2.Recordset.RecordCount > 0 Then   '当记录数大于零
  If Not Adodc2.Recordset.EOF Then Adodc2.Recordset.MoveLast
   If Adodc2.Recordset.Fields("票号") <> "" Then
    lsph = Right(Trim(Adodc2.Recordset.Fields("票号")), 4) + 1
    'Trim 函数返回 Variant (String),其中包含指定字符串的拷贝,没有前导和尾随空白。
    PH.Caption = Date & "xs" & Format(lsph, "0000")
    'Format 函数返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。
   End If
  Else
   PH.Caption = Date & "xs" & "0001"
 End If
 '设置jsr有效
 jsr.Enabled = True
 'jsr获得焦点
 jsr.SetFocus
 Text1.Enabled = True
 MS1.Enabled = True
 '确定文本框在MS1表格中的位置
 Text1.Width = MS1.CellWidth
 Text1.Height = MS1.CellHeight
 Text1.Left = MS1.CellLeft + MS1.Left
 Text1.Top = MS1.CellTop + MS1.Top
 '设置控件状态
 CmdSave.Enabled = True
 CmdCancel.Enabled = True
 CmdReg.Enabled = False
 End Sub

Private Sub CmdSave_Click()  '保存
For i = 1 To 101
    If MS1.TextMatrix(i, 1) <> "" And MS1.TextMatrix(i, 2) <> "" And MS1.TextMatrix(i, 3) <> "" And MS1.TextMatrix(i, 4) <> "" _
    And MS1.TextMatrix(i, 5) <> "" And MS1.TextMatrix(i, 6) <> "" And MS1.TextMatrix(i, 7) <> "" And MS1.TextMatrix(i, 8) <> "" _
    And MS1.TextMatrix(i, 9) <> "" Then
        '查找库存图书信息
        Set rs2 = New ADODB.Recordset
        rs2.Open "select * from kcb where 书号='" + MS1.TextMatrix(i, 1) + "'", Cnn, adOpenKeyset, adLockOptimistic
        If rs2.RecordCount > 0 Then
            If Val(rs2.Fields("现存数量")) - Val(MS1.TextMatrix(i, 8)) >= 0 Then
                Cnn.Execute "insert into xsb(书号,条形码,书名,作者,出版社,图书类别,单价,销售数量,金额" & _
                ",经手人,票号,操作员,日期) values('" & MS1.TextMatrix(i, 1) & "','" & MS1.TextMatrix(i, 2) & "','" & _
                MS1.TextMatrix(i, 3) & "','" & MS1.TextMatrix(i, 4) & "','" & MS1.TextMatrix(i, 5) & "','" & MS1.TextMatrix(i, 6) & _
                "','" & MS1.TextMatrix(i, 7) & "','" & MS1.TextMatrix(i, 8) & "','" & MS1.TextMatrix(i, 9) & _
                "','" & jsr.text & "','" & PH.Caption & "','" & frm_main.St1.Panels(3).text & "','" & rq.Caption & "')   "
                '更新"kcb"表中的"现存数量"及"金额"
                Cnn.Execute "update kcb set 图书总数= '" & Val(rs2.Fields("图书总数")) - Val(MS1.TextMatrix(i, 8)) & "' where 书号='" + MS1.TextMatrix(i, 1) + "'"
                Cnn.Execute "update kcb set 现存数量= '" & Val(rs2.Fields("现存数量")) - Val(MS1.TextMatrix(i, 8)) & "' where 书号='" + MS1.TextMatrix(i, 1) + "'"
           Else
                MsgBox "图书,《" & MS1.TextMatrix(i, 3) & "》库存不足,不能进行销售!", , "图书综合管理系统"
                MS1.Clear   '清除网格信息
                For o = 1 To 101
                For p = 1 To 9
                MS1.TextMatrix(o, p) = ""
                Next p
                Next o
                '清空控件内容
                jsr.text = ""
                pz.Caption = ""
                hjsl.Caption = ""
                hjje.Caption = ""
                '设置控件状态
                Text1.Visible = False
                MS1.Enabled = False
                CmdSave.Enabled = False
                CmdReg.Enabled = True
                CmdCancel.Enabled = False
                rs2.Close   '关闭对象
                 '定义MS1表格的行数、列数
                MS1.Rows = 102
                MS1.Cols = 10
                '定义MS1表格的列宽和表头信息
                s = Array("300", "800", "800", "2600", "900", "1400", "1000", "1000", "800", "800", "800", "1000")
                Y = Array("xh", "书号", "条形码", "书名", "作者", "出版社", "类别", "单价", "销售数量", "金额")
                For w = 0 To 9
                    MS1.ColWidth(w) = s(w)
                    MS1.TextMatrix(0, w) = Y(w)
                Next w
                '定义MS1表格的行号
                For h = 1 To 101
                    MS1.TextMatrix(h, 0) = h
                Next h
                rq.Caption = Date     '设置销售日期
                Combo1.text = "全价"
                jsr.Enabled = False
                MS1.Enabled = False
                Exit Sub
            End If
        Else
            MsgBox "库中无此图书,《" & MS1.TextMatrix(i, 3) & "》不能进行销售!", , "图书综合管理系统"
            hjje.Caption = Val(hjje.Caption) - Val(MS1.TextMatrix(i, 9))
        End If
    End If
Next i
rs2.Close   '关闭对象
If PH.Caption <> "" And pz.Caption <> "" And hjsl.Caption <> "" And hjje.Caption <> "" _
And Combo1.text <> "" And zhje.Caption <> "" And jsr.text <> "" And jsr.text <> "" And rq.Caption <> "" Then
    Cnn.Execute "insert into xsph(票号,销售品种,销售数量,合计金额,折扣,折后金额,经手人,操作员,日期" & _
    ") values('" & PH.Caption & "','" & Val(pz.Caption) & " ','" & Val(hjsl.Caption) & " ','" & Val(hjje.Caption) & _
    "','" & Combo1.text & "','" & Val(zhje.Caption) & "','" & jsr.text & "','" & frm_main.St1.Panels(3).text & _
    "','" & rq.Caption & "'" & ")"
Else
    MsgBox "请选择折扣。", , ""
End If
For i = 1 To 101
For j = 1 To 9
MS1.TextMatrix(i, j) = ""
Next j
Next i
'清空控件内容
jsr.text = ""
pz.Caption = ""
hjsl.Caption = ""
hjje.Caption = ""
'设置控件状态
Text1.Visible = False
MS1.Enabled = False
CmdSave.Enabled = False
CmdReg.Enabled = True
CmdCancel.Enabled = False
End Sub
Private Sub CmdCancel_Click()      '取消操作
 '清空控件内容
 jsr.text = ""
 pz.Caption = ""
 hjsl.Caption = ""
 hjje.Caption = ""
                MS1.Rows = 102
                MS1.Cols = 10
                '定义MS1表格的列宽和表头信息
                s = Array("300", "800", "800", "2600", "900", "1400", "1000", "1000", "800", "800", "800", "1000")
                Y = Array("xh", "书号", "条形码", "书名", "作者", "出版社", "类别", "单价", "销售数量", "金额")
                For w = 0 To 9
                    MS1.ColWidth(w) = s(w)
                    MS1.TextMatrix(0, w) = Y(w)
                Next w
                '定义MS1表格的行号
                For h = 1 To 101
                    MS1.TextMatrix(h, 0) = h
                Next h
                rq.Caption = Date     '设置销售日期
                Combo1.text = "全价"
                jsr.Enabled = False
                MS1.Enabled = False

 '设置控件状态
 jsr.Enabled = False
 Text1.Enabled = False
 MS1.Enabled = False
 CmdSave.Enabled = False
 CmdCancel.Enabled = False
 CmdReg.Enabled = True
 CmdReg.SetFocus
End Sub
Private Sub CmdEnd_Click()   '退出
  frm_main.Enabled = True
  Unload Me
End Sub

⌨️ 快捷键说明

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